File trigona_be6dfedd91e1ebc81d58a61b05b0ef93322425b247636a0f7f5c3eeebbc52edd.exe
Function:
    00404700
    00404700fn_404700:
    00404700push rbp
    00404701push rdi
    00404702push rsi
    00404703push rbx
    00404704sub rsp, 72
    00404708mov rbp, rsp
    0040470bmov rbx, rcx
    0040470emov rsi, rdx
    00404711cmp [rip+0x60980], 0
    00404718je 0x4047b8
    0040471emov ecx, -12
    00404723call GetStdHandle
    00404728mov rdi, rax
    0040472bmov rcx, rsi
    0040472ecall fn_40c580
    00404733mov rcx, rdi
    00404736mov rdx, rsi
    00404739mov r8l, eax
    0040473clea r9, [rbp+60]
    00404740mov [rsp+32], 0
    00404749call WriteFile
    0040474emov ecx, -12
    00404753call GetStdHandle
    00404758mov rsi, rax
    0040475bmov rcx, [rip+0x54956]
    00404762call fn_40c580
    00404767mov rcx, rsi
    0040476amov rdx, [rip+0x54947]
    00404771mov r8l, eax
    00404774lea r9, [rbp+60]
    00404778mov [rsp+32], 0
    00404781call WriteFile
    00404786mov ecx, -12
    0040478bcall GetStdHandle
    00404790mov rsi, rax
    00404793mov rcx, rbx
    00404796call fn_40c580
    0040479bmov rcx, rsi
    0040479emov rdx, rbx
    004047a1mov r8l, eax
    004047a4lea r9, [rbp+60]
    004047a8mov [rsp+32], 0
    004047b1call WriteFile
    004047b6jmp 0x4047cb
    004047b8
    004047b8loc_4047b8:
    004047b8xor ecx, ecx
    004047bamov rdx, rbx
    004047bdmov r8, rsi
    004047c0mov r9l, 8208
    004047c6call MessageBoxA
    004047cb
    004047cbloc_4047cb:
    004047cblea rsp, [rbp+72]
    004047cfpop rbx
    004047d0pop rsi
    004047d1pop rdi
    004047d2pop rbp
    004047d3ret
    00404700
    004047d4
    004047d4 // align 0x10
    004047e0
    004047e0fn_4047e0:
    004047e0mov rax, rcx
    004047e3mov ecx, [rax-8]
    004047e6and ecx, -16
    004047e9mov ecx, ecx
    004047eblea rax, [rax+rcx]
    004047efmov ecx, [rax-8]
    004047f2and ecx, -16
    004047f5test ecx, ecx
    004047f7jne 0x4047fb
    004047f9xor eax, eax
    004047fb
    004047fbloc_4047fb:
    004047fbret
    004047e0
    004047fc
    004047fc // align 0x10
    00404800
    00404800fn_404800:
    00404800cmp [rip+0x613a1], 0
    00404807je 0x404822
    00404809cmp [rip+0x61390], rcx
    00404810jb 0x404822
    00404812lea rax, [rcx+0x13fff0]
    00404819cmp [rip+0x61380], rax
    00404820jbe 0x404828
    00404822
    00404822loc_404822:
    00404822lea rax, [rcx+32]
    00404826jmp 0x40483f
    00404828
    00404828loc_404828:
    00404828cmp [rip+0x61376], 0x13ffd0
    00404832je 0x40483d
    00404834mov rax, [rip+0x61365]
    0040483bjmp 0x40483f
    0040483d
    0040483dloc_40483d:
    0040483dxor eax, eax
    0040483f
    0040483floc_40483f:
    0040483fret
    00404800
    00404840
    00404840fn_404840:
    00404840lea rax, [rcx+48]
    00404844mov [rdx], rax
    00404847mov rdx, [rcx]
    0040484acmp [rdx+40], rcx
    0040484ejne 0x40485a
    00404850mov rax, [rdx+24]
    00404854cmp rax, [rdx+32]
    00404858jbe 0x404873
    0040485a
    0040485aloc_40485a:
    0040485amov eax, [rcx-8]
    0040485dand eax, -16
    00404860mov eax, eax
    00404862lea rax, [rcx+rax]
    00404866movzx rcx, [rdx+2]
    0040486bsub rax, rcx
    0040486emov [r8], rax
    00404871jmp 0x40487e
    00404873
    00404873loc_404873:
    00404873mov rax, [rdx+24]
    00404877lea rax, [rax-1]
    0040487bmov [r8], rax
    0040487e
    0040487eloc_40487e:
    0040487eret
    00404840
    0040487f
    0040487f // align 0x10
    00404880
    00404880fn_404880:
    00404880push rbp
    00404881push rsi
    00404882push rbx
    00404883sub rsp, 64
    00404887mov rbp, rsp
    0040488amov rax, rcx
    0040488dmov rbx, rdx
    00404890xor ecx, ecx
    00404892
    00404892loc_404892:
    00404892mov r8, rax
    00404895mov r9l, 10
    0040489bxor edx, edx
    0040489ddiv r9
    004048a0mov rdx, rax
    004048a3add rdx, rdx
    004048a6lea rdx, [rdx+4*rdx]
    004048aasub r8, rdx
    004048adadd ecx, 1
    004048b0mov edx, 20
    004048b5sub edx, ecx
    004048b7mov edx, edx
    004048b9lea r8, [r8+48]
    004048bdmov [rbp+rdx+44], r8b
    004048c2test rax, rax
    004048c5jne 0x404892
    004048c7mov esi, ecx
    004048c9lea rcx, [rdx+rbp+44]
    004048cemov rdx, rbx
    004048d1mov r8, rsi
    004048d4call fn_405ac0
    004048d9lea rax, [rbx+rsi]
    004048ddlea rsp, [rbp+64]
    004048e1pop rbx
    004048e2pop rsi
    004048e3pop rbp
    004048e4ret
    00404880
    004048e5
    004048e5 // align 0x10
    004048f0
    004048f0fn_4048f0:
    004048f0push rsi
    004048f1push rbx
    004048f2sub rsp, 40
    004048f6mov rbx, rdx
    004048f9mov esi, r8l
    004048fcmov rdx, rbx
    004048ffmov r8, rsi
    00404902call fn_405ac0
    00404907lea rax, [rbx+rsi]
    0040490badd rsp, 40
    0040490fpop rbx
    00404910pop rsi
    00404911ret
    004048f0
    00404912
    00404912 // align 0x10
    00404920
    00404920fn_404920:
    00404920push rbx
    00404921sub rsp, 32
    00404925mov rbx, rdx
    00404928test rcx, rcx
    0040492bje 0x404946
    0040492dmov rax, [rcx-136]
    00404934lea rcx, [rax+1]
    00404938mov rdx, rbx
    0040493bmovzx r8, [rax]
    0040493fcall fn_4048f0
    00404944jmp 0x404964
    00404946
    00404946loc_404946:
    00404946mov rcx, [rip+0x54753]
    0040494dcall fn_40c580
    00404952mov rcx, [rip+0x54747]
    00404959mov rdx, rbx
    0040495cmov r8l, eax
    0040495fcall fn_4048f0
    00404964
    00404964loc_404964:
    00404964add rsp, 32
    00404968pop rbx
    00404969ret
    00404920
    0040496a
    0040496a // align 0x10
    00404970
    00404970fn_404970:
    00404970push rbp
    00404971push rbx
    00404972sub rsp, 40
    00404976mov rbp, rsp
    00404979mov rbx, rcx
    0040497cmov rax, rdx
    0040497fcmp rax, 65535
    00404986jbe 0x4049f6
    00404988test rax, 3
    0040498fjne 0x4049f6
    00404991mov rax, [rbx+32]
    00404995mov rcx, rdx
    00404998cmp rax, rcx
    0040499bja 0x4049ae
    0040499dmov r8, [rbx+56]
    004049a1lea rax, [rax+r8]
    004049a5lea rcx, [rcx+8]
    004049a9cmp rax, rcx
    004049acjae 0x4049c8
    004049ae
    004049aeloc_4049ae:
    004049aemov [rbx+56], 0
    004049b6mov rcx, rdx
    004049b9lea rdx, [rbx+32]
    004049bdmov r8l, 48
    004049c3call VirtualQuery
    004049c8
    004049c8loc_4049c8:
    004049c8cmp [rbx+56], 8
    004049cdjb 0x4049ee
    004049cfcmp [rbx+64], 4096
    004049d6jne 0x4049ee
    004049d8mov eax, [rbx+68]
    004049dbtest eax, 246
    004049e1je 0x4049ee
    004049e3mov eax, [rbx+68]
    004049e6test eax, 256
    004049ecje 0x4049f2
    004049ee
    004049eeloc_4049ee:
    004049eexor eax, eax
    004049f0jmp 0x4049f8
    004049f2
    004049f2loc_4049f2:
    004049f2mov al, 1
    004049f4jmp 0x4049f8
    004049f6
    004049f6loc_4049f6:
    004049f6xor eax, eax
    004049f8
    004049f8loc_4049f8:
    004049f8lea rsp, [rbp+40]
    004049fcpop rbx
    004049fdpop rbp
    004049feret
    00404970
    004049ff
    004049ff // align 0x10
    00404a00
    00404a00fn_404a00:
    00404a00push rbp
    00404a01push r13
    00404a03push rdi
    00404a04push rsi
    00404a05push rbx
    00404a06sub rsp, 32
    00404a0amov rbp, rsp
    00404a0dmov rbx, rcx
    00404a10mov rsi, rdx
    00404a13mov edi, r8l
    00404a16cmp edi, 1000
    00404a1cjge 0x404a81
    00404a1emov rcx, rbx
    00404a21lea rdx, [rsi-200]
    00404a28call fn_404970
    00404a2dtest al, al
    00404a2fje 0x404a81
    00404a31mov rcx, rbx
    00404a34lea rdx, [rsi-120]
    00404a38call fn_404970
    00404a3dtest al, al
    00404a3fje 0x404a81
    00404a41mov r13, [rsi-120]
    00404a45cmp [rsi-200], rsi
    00404a4cjne 0x404a79
    00404a4etest r13, r13
    00404a51je 0x404a7d
    00404a53mov rcx, rbx
    00404a56mov rdx, r13
    00404a59call fn_404970
    00404a5etest al, al
    00404a60je 0x404a79
    00404a62mov rcx, rbx
    00404a65mov rdx, [r13]
    00404a69mov r8l, edi
    00404a6cadd r8l, 1
    00404a70call fn_404a00
    00404a75test al, al
    00404a77jne 0x404a7d
    00404a79
    00404a79loc_404a79:
    00404a79xor eax, eax
    00404a7bjmp 0x404a83
    00404a7d
    00404a7dloc_404a7d:
    00404a7dmov al, 1
    00404a7fjmp 0x404a83
    00404a81
    00404a81loc_404a81:
    00404a81xor eax, eax
    00404a83
    00404a83loc_404a83:
    00404a83lea rsp, [rbp+32]
    00404a87pop rbx
    00404a88pop rsi
    00404a89pop rdi
    00404a8apop r13
    00404a8cpop rbp
    00404a8dret
    00404a00
    00404a8e
    00404a8e // align 0x10
    00404a90
    00404a90fn_404a90:
    00404a90push rbp
    00404a91push rbx
    00404a92sub rsp, 88
    00404a96mov rbp, rsp
    00404a99mov rbx, [rcx]
    00404a9cmov [rbp+56], 0
    00404aa4mov rcx, rbp
    00404aa7mov rdx, rbx
    00404aaaxor r8, r8
    00404aadcall fn_404a00
    00404ab2test al, al
    00404ab4jne 0x404ab8
    00404ab6xor ebx, ebx
    00404ab8
    00404ab8loc_404ab8:
    00404ab8mov rax, rbx
    00404abblea rsp, [rbp+88]
    00404abfpop rbx
    00404ac0pop rbp
    00404ac1ret
    00404a90
    00404ac2
    00404ac2 // align 0x10
    00404ad0
    00404ad0fn_404ad0:
    00404ad0sub rsp, 40
    00404ad4cmp [rip+0x605be], 0
    00404adbje 0x404b1a
    00404addjmp 0x404b09
    00404adf
    00404adfloc_404adf:
    00404adfcmp [rip+0x60f3f], 0
    00404ae6jne 0x404b09
    00404ae8xor ecx, ecx
    00404aeacall Sleep
    00404aefxor eax, eax
    00404af1mov cl, 1
    00404af3lock cmpxchg [rip+0x65165], cl
    00404afbtest al, al
    00404afdje 0x404b19
    00404affmov ecx, 10
    00404b04call Sleep
    00404b09
    00404b09loc_404b09:
    00404b09xor eax, eax
    00404b0bmov cl, 1
    00404b0dlock cmpxchg [rip+0x6514b], cl
    00404b15test al, al
    00404b17jne 0x404adf
    00404b19
    00404b19loc_404b19:
    00404b19nop
    00404b1a
    00404b1aloc_404b1a:
    00404b1acmp [rip+0x65136], 0
    00404b22jne 0x404b43
    00404b24xor ecx, ecx
    00404b26mov edx, 0x10000
    00404b2bmov r8l, 4096
    00404b31mov r9l, 4
    00404b37call VirtualAlloc
    00404b3cmov [rip+0x65115], rax
    00404b43
    00404b43loc_404b43:
    00404b43cmp [rip+0x6510d], 0
    00404b4bsetne al
    00404b4eadd rsp, 40
    00404b52ret
    00404ad0
    00404b53
    00404b53 // align 0x10
    00404b60
    00404b60fn_404b60:
    00404b60push rbx
    00404b61sub rsp, 32
    00404b65mov rbx, rcx
    00404b68call fn_404ad0
    00404b6dtest al, al
    00404b6fje 0x404ba4
    00404b71mov rax, [rip+0x650e0]
    00404b78cmp [rax], 8190
    00404b7ejge 0x404ba4
    00404b80mov rax, [rip+0x650d1]
    00404b87mov rcx, [rip+0x650ca]
    00404b8emovsxd rcx, [rcx]
    00404b91mov [rax+8*rcx+8], rbx
    00404b96mov rax, [rip+0x650bb]
    00404b9dadd [rax], 1
    00404ba0mov al, 1
    00404ba2jmp 0x404ba6
    00404ba4
    00404ba4loc_404ba4:
    00404ba4xor eax, eax
    00404ba6
    00404ba6loc_404ba6:
    00404ba6mov [rip+0x650b3], 0
    00404badadd rsp, 32
    00404bb1pop rbx
    00404bb2ret
    00404b60
    00404bb3
    00404bb3 // align 0x10
    00404bc0
    00404bc0fn_404bc0:
    00404bc0push rsi
    00404bc1push rbx
    00404bc2sub rsp, 40
    00404bc6mov rbx, rcx
    00404bc9xor esi, esi
    00404bcccmp [rip+0x65084], 0
    00404bd4je 0x404c53
    00404bd6call fn_404ad0
    00404bdbtest al, al
    00404bddje 0x404c53
    00404bdfxor ecx, ecx
    00404be1mov rax, [rip+0x65070]
    00404be8mov edx, [rax]
    00404beasub edx, 1
    00404bedmov eax, ecx
    00404befcmp eax, edx
    00404bf1jg 0x404c4b
    00404bf3sub edx, ecx
    00404bf5add edx, 1
    00404bf8
    00404bf8loc_404bf8:
    00404bf8movsxd rcx, eax
    00404bfbmov r8, [rip+0x65056]
    00404c02cmp [r8+8*rcx+8], rbx
    00404c07jne 0x404c41
    00404c09mov rax, [rip+0x65048]
    00404c10mov rdx, [rip+0x65041]
    00404c17mov r8, [rip+0x6503a]
    00404c1emov r8l, [r8]
    00404c21sub r8l, 1
    00404c25movsxd r8, r8l
    00404c28mov rdx, [rdx+8*r8+8]
    00404c2dmov [rax+8*rcx+8], rdx
    00404c32mov rax, [rip+0x6501f]
    00404c39sub [rax], 1
    00404c3cmov sil, 1
    00404c3fjmp 0x404c4b
    00404c41
    00404c41loc_404c41:
    00404c41add eax, 1
    00404c44sub edx, 1
    00404c47test edx, edx
    00404c49jne 0x404bf8
    00404c4b
    00404c4bloc_404c4b:
    00404c4bnop
    00404c4cmov [rip+0x6500d], 0
    00404c53
    00404c53loc_404c53:
    00404c53mov eax, esi
    00404c56add rsp, 40
    00404c5apop rbx
    00404c5bpop rsi
    00404c5cret
    00404bc0
    00404c5d
    00404c5d // align 0x10
    00404c60
    00404c60fn_404c60:
    00404c60push rbp
    00404c61push r13
    00404c63push rdi
    00404c64push rsi
    00404c65push rbx
    00404c66sub rsp, 48
    00404c6amov rbp, rsp
    00404c6dmov rbx, rcx
    00404c70mov rsi, rdx
    00404c73lea rax, [rip+0x5445e]
    00404c7amov rcx, [rsi]
    00404c7dsub rcx, rax
    00404c80shr rcx, 6
    00404c84mov eax, ecx
    00404c86mov eax, eax
    00404c88shl rax, 9
    00404c8clea r13, [rbx+8*rax+0x10050]
    00404c94mov rcx, rsi
    00404c97lea rdx, [rbp+40]
    00404c9blea r8, [rbp+32]
    00404c9fcall fn_404840
    00404ca4jmp 0x404e38
    00404ca9
    00404ca9loc_404ca9:
    00404ca9mov rax, [rbp+40]
    00404cadmov rax, [rax-8]
    00404cb1test rax, 1
    00404cb8jne 0x404e2c
    00404cbemov rcx, [rbp+40]
    00404cc2call fn_404bc0
    00404cc7test al, al
    00404cc9jne 0x404e2c
    00404ccfmov [rbx+0x1004f], 0
    00404cd6xor edi, edi
    00404cd8mov rcx, [rbp+40]
    00404cdccall fn_404a90
    00404ce1test rax, rax
    00404ce4jne 0x404ddb
    00404ceamov rax, [rbp+40]
    00404ceecmp [rax+8], 256
    00404cf5jge 0x404e1e
    00404cfbmov ecx, [rax+12]
    00404cfemovzx r8l, [rax+6]
    00404d03cmp r8l, 1
    00404d07je 0x404d13
    00404d09cmp r8l, 2
    00404d0djne 0x404e1e
    00404d13
    00404d13loc_404d13:
    00404d13test ecx, ecx
    00404d15jle 0x404e1e
    00404d1bmov rax, [rsi]
    00404d1emovzx eax, [rax+2]
    00404d22sub eax, 24
    00404d25cdq
    00404d26idiv r8l
    00404d29cmp eax, ecx
    00404d2bjle 0x404e1e
    00404d31mov r9b, 1
    00404d34cmp r8l, 1
    00404d38jne 0x404d8f
    00404d3amov rax, [rbp+40]
    00404d3elea rdx, [rax+16]
    00404d42mov r8l, 1
    00404d48mov eax, r8l
    00404d4bcmp eax, ecx
    00404d4djg 0x404d72
    00404d4fsub ecx, r8l
    00404d52add ecx, 1
    00404d55
    00404d55loc_404d55:
    00404d55test r9b, r9b
    00404d58je 0x404d5f
    00404d5acmp [rdx], 32
    00404d5djae 0x404d64
    00404d5f
    00404d5floc_404d5f:
    00404d5fxor r9, r9
    00404d62jmp 0x404d67
    00404d64
    00404d64loc_404d64:
    00404d64mov r9b, 1
    00404d67
    00404d67loc_404d67:
    00404d67add rdx, 1
    00404d6bsub ecx, 1
    00404d6etest ecx, ecx
    00404d70jne 0x404d55
    00404d72
    00404d72loc_404d72:
    00404d72nop
    00404d73test r9b, r9b
    00404d76je 0x404e1e
    00404d7ccmp [rdx], 0
    00404d7fjne 0x404e1e
    00404d85mov edi, 1
    00404d8ajmp 0x404e1e
    00404d8f
    00404d8floc_404d8f:
    00404d8fmov rax, [rbp+40]
    00404d93lea rdx, [rax+16]
    00404d97mov r8l, 1
    00404d9dmov eax, r8l
    00404da0cmp eax, ecx
    00404da2jg 0x404dc8
    00404da4sub ecx, r8l
    00404da7add ecx, 1
    00404daa
    00404daaloc_404daa:
    00404daatest r9b, r9b
    00404dadje 0x404db5
    00404dafcmp [rdx], 32
    00404db3jae 0x404dba
    00404db5
    00404db5loc_404db5:
    00404db5xor r9, r9
    00404db8jmp 0x404dbd
    00404dba
    00404dbaloc_404dba:
    00404dbamov r9b, 1
    00404dbd
    00404dbdloc_404dbd:
    00404dbdadd rdx, 2
    00404dc1sub ecx, 1
    00404dc4test ecx, ecx
    00404dc6jne 0x404daa
    00404dc8
    00404dc8loc_404dc8:
    00404dc8nop
    00404dc9test r9b, r9b
    00404dccje 0x404e1e
    00404dcecmp [rdx], 0
    00404dd2jne 0x404e1e
    00404dd4mov edi, 2
    00404dd9jmp 0x404e1e
    00404ddb
    00404ddbloc_404ddb:
    00404ddbmov edi, 3
    00404de0
    00404de0loc_404de0:
    00404de0movsxd rcx, edi
    00404de3mov rdx, rcx
    00404de6add rdx, rdx
    00404de9cmp [r13+8*rdx], rax
    00404deeje 0x404e06
    00404df0add rcx, rcx
    00404df3cmp [r13+8*rcx], 0
    00404df9je 0x404e06
    00404dfbadd edi, 1
    00404dfecmp edi, 255
    00404e04jle 0x404de0
    00404e06
    00404e06loc_404e06:
    00404e06nop
    00404e07cmp edi, 255
    00404e0djg 0x404e1c
    00404e0fmovsxd rcx, edi
    00404e12add rcx, rcx
    00404e15mov [r13+8*rcx], rax
    00404e1ajmp 0x404e1e
    00404e1c
    00404e1cloc_404e1c:
    00404e1cxor edi, edi
    00404e1e
    00404e1eloc_404e1e:
    00404e1emovsxd rdi, edi
    00404e21add rdi, rdi
    00404e24lea rax, [r13+8*rdi+8]
    00404e29add [rax], 1
    00404e2c
    00404e2cloc_404e2c:
    00404e2cmov rax, [rsi]
    00404e2fmovzx rax, [rax+2]
    00404e34add [rbp+40], rax
    00404e38
    00404e38loc_404e38:
    00404e38mov rax, [rbp+40]
    00404e3ccmp rax, [rbp+32]
    00404e40jbe 0x404ca9
    00404e46lea rsp, [rbp+48]
    00404e4apop rbx
    00404e4bpop rsi
    00404e4cpop rdi
    00404e4dpop r13
    00404e4fpop rbp
    00404e50ret
    00404c60
    00404e51
    00404e51 // align 0x10
    00404e60
    00404e60fn_404e60:
    00404e60push rbp
    00404e61push r14
    00404e63push r13
    00404e65push rdi
    00404e66push rsi
    00404e67push rbx
    00404e68mov eax, 4008
    00404e6d
    00404e6dloc_404e6d:
    00404e6dsub rax, 4096
    00404e73mov [rsp+rax], al
    00404e76cmp rax, 0xfffffffffffc1fa8
    00404e7dja 0x404e6d
    00404e7fsub rsp, 0x3e058
    00404e86mov rbp, rsp
    00404e89lea rcx, [rbp+72]
    00404e8dmov edx, 32768
    00404e92xor r8, r8
    00404e95call fn_4069b0
    00404e9alea rcx, [rbp+0x10050]
    00404ea1mov edx, 0x2e000
    00404ea6xor r8, r8
    00404ea9call fn_4069b0
    00404eaelea rcx, [rbp+32840]
    00404eb5mov edx, 32768
    00404ebaxor r8, r8
    00404ebdcall fn_4069b0
    00404ec2xor eax, eax
    00404ec4mov [rbp+32], eax
    00404ec7mov [rbp+0x1004f], 1
    00404ecemov rdi, [rip+0x60cab]
    00404ed5jmp 0x404f67
    00404eda
    00404edaloc_404eda:
    00404edamov rcx, rdi
    00404eddcall fn_404800
    00404ee2mov rsi, rax
    00404ee5test rsi, rsi
    00404ee8je 0x404f62
    00404eea
    00404eealoc_404eea:
    00404eeamov rax, [rsi-8]
    00404eeemov rcx, rax
    00404ef1test rcx, 1
    00404ef8jne 0x404f52
    00404efamov rcx, rax
    00404efdtest rcx, 4
    00404f04je 0x404f13
    00404f06mov rcx, rbp
    00404f09mov rdx, rsi
    00404f0ccall fn_404c60
    00404f11jmp 0x404f52
    00404f13
    00404f13loc_404f13:
    00404f13mov ecx, [rbp+32]
    00404f16cmp ecx, 4096
    00404f1cjge 0x404f52
    00404f1emov ebx, eax
    00404f20and ebx, -16
    00404f23sub ebx, 8
    00404f26mov rcx, rsi
    00404f29call fn_404bc0
    00404f2etest al, al
    00404f30jne 0x404f52
    00404f32mov [rbp+0x1004f], 0
    00404f39mov eax, [rbp+32]
    00404f3cmovsxd rax, eax
    00404f3fmov ebx, ebx
    00404f41mov [rbp+8*rax+32840], rbx
    00404f49mov eax, [rbp+32]
    00404f4cadd eax, 1
    00404f4fmov [rbp+32], eax
    00404f52
    00404f52loc_404f52:
    00404f52mov rcx, rsi
    00404f55call fn_4047e0
    00404f5amov rsi, rax
    00404f5dtest rsi, rsi
    00404f60jne 0x404eea
    00404f62
    00404f62loc_404f62:
    00404f62nop
    00404f63mov rdi, [rdi+8]
    00404f67
    00404f67loc_404f67:
    00404f67lea rax, [rip+0x60c0a]
    00404f6ecmp rdi, rax
    00404f71jne 0x404eda
    00404f77mov rbx, [rip+0x64cc2]
    00404f7ejmp 0x404fbb
    00404f80
    00404f80loc_404f80:
    00404f80lea rcx, [rbx+32]
    00404f84call fn_404bc0
    00404f89test al, al
    00404f8bjne 0x404fb7
    00404f8dmov [rbp+0x1004f], 0
    00404f94mov rax, [rbx+24]
    00404f98and rax, -16
    00404f9clea rax, [rax-40]
    00404fa0mov ecx, [rbp+32]
    00404fa3movsxd rcx, ecx
    00404fa6mov [rbp+8*rcx+32840], rax
    00404faemov eax, [rbp+32]
    00404fb1add eax, 1
    00404fb4mov [rbp+32], eax
    00404fb7
    00404fb7loc_404fb7:
    00404fb7mov rbx, [rbx+8]
    00404fbb
    00404fbbloc_404fbb:
    00404fbblea rax, [rip+0x64c76]
    00404fc2cmp rbx, rax
    00404fc5je 0x404fd2
    00404fc7mov eax, [rbp+32]
    00404fcacmp eax, 4096
    00404fd0jl 0x404f80
    00404fd2
    00404fd2loc_404fd2:
    00404fd2cmp [rbp+0x1004f], 0
    00404fd9jne 0x40535e
    00404fdfxor eax, eax
    00404fe1mov [rbp+39], al
    00404fe4xor eax, eax
    00404fe6mov [rbp+60], eax
    00404fe9mov rcx, [rip+0x54090]
    00404ff0call fn_40c580
    00404ff5mov rcx, [rip+0x54084]
    00404ffclea rdx, [rbp+72]
    00405000mov r8l, eax
    00405003call fn_4048f0
    00405008mov [rbp+40], rax
    0040500cmov r14l, 46
    00405012lea rsi, [rip+0x540c1]
    00405019lea rdi, [rbp+0x11048]
    00405020
    00405020loc_405020:
    00405020movzx ebx, [rsi]
    00405023sub ebx, 8
    00405026xor eax, eax
    00405028mov [rbp+55], al
    0040502bmov eax, 255
    00405030mov [rbp+56], eax
    00405033mov r13, rdi
    00405036
    00405036loc_405036:
    00405036lea rax, [rbp+30791]
    0040503dmov rcx, [rbp+40]
    00405041cmp rcx, rax
    00405044mov [rbp+40], rcx
    00405048ja 0x405221
    0040504ecmp [r13], 0
    00405053jbe 0x405208
    00405059movzx rax, [rbp+39]
    0040505etest al, al
    00405060jne 0x40508a
    00405062mov rcx, [rip+0x5401f]
    00405069call fn_40c580
    0040506emov rcx, [rip+0x54013]
    00405075mov rdx, [rbp+40]
    00405079mov r8l, eax
    0040507ccall fn_4048f0
    00405081mov [rbp+40], rax
    00405085mov al, 1
    00405087mov [rbp+39], al
    0040508a
    0040508aloc_40508a:
    0040508amovzx rax, [rbp+55]
    0040508ftest al, al
    00405091jne 0x405120
    00405097mov rax, [rbp+40]
    0040509bmov [rax], 13
    0040509eadd rax, 1
    004050a2mov [rbp+40], rax
    004050a6mov [rax], 10
    004050a9add rax, 1
    004050admov [rbp+40], rax
    004050b1mov ecx, [rbp+60]
    004050b4add ecx, 1
    004050b7mov ecx, ecx
    004050b9mov rdx, [rbp+40]
    004050bdcall fn_404880
    004050c2mov [rbp+40], rax
    004050c6mov [rax], 32
    004050c9add rax, 1
    004050cdmov [rbp+40], rax
    004050d1mov [rax], 45
    004050d4add rax, 1
    004050d8mov [rbp+40], rax
    004050dcmov [rax], 32
    004050dfadd rax, 1
    004050e3mov [rbp+40], rax
    004050e7mov ecx, ebx
    004050e9mov rdx, [rbp+40]
    004050edcall fn_404880
    004050f2mov [rbp+40], rax
    004050f6mov rcx, [rip+0x53f9b]
    004050fdcall fn_40c580
    00405102mov rcx, [rip+0x53f8f]
    00405109mov rdx, [rbp+40]
    0040510dmov r8l, eax
    00405110call fn_4048f0
    00405115mov [rbp+40], rax
    00405119mov al, 1
    0040511bmov [rbp+55], al
    0040511ejmp 0x40513a
    00405120
    00405120loc_405120:
    00405120mov rax, [rbp+40]
    00405124mov [rax], 44
    00405127add rax, 1
    0040512bmov [rbp+40], rax
    0040512fmov [rax], 32
    00405132add rax, 1
    00405136mov [rbp+40], rax
    0040513a
    0040513aloc_40513a:
    0040513amov eax, [rbp+56]
    0040513dsub eax, 1
    00405140cmp eax, -1
    00405143je 0x405152
    00405145test eax, eax
    00405147je 0x405177
    00405149sub eax, 1
    0040514ctest eax, eax
    0040514ejne 0x4051c1
    00405150jmp 0x40519c
    00405152
    00405152loc_405152:
    00405152mov rcx, [rip+0x53f47]
    00405159call fn_40c580
    0040515emov rcx, [rip+0x53f3b]
    00405165mov rdx, [rbp+40]
    00405169mov r8l, eax
    0040516ccall fn_4048f0
    00405171mov [rbp+40], rax
    00405175jmp 0x4051d2
    00405177
    00405177loc_405177:
    00405177mov rcx, [rip+0x53f2a]
    0040517ecall fn_40c580
    00405183mov rcx, [rip+0x53f1e]
    0040518amov rdx, [rbp+40]
    0040518emov r8l, eax
    00405191call fn_4048f0
    00405196mov [rbp+40], rax
    0040519ajmp 0x4051d2
    0040519c
    0040519cloc_40519c:
    0040519cmov rcx, [rip+0x53f0d]
    004051a3call fn_40c580
    004051a8mov rcx, [rip+0x53f01]
    004051afmov rdx, [rbp+40]
    004051b3mov r8l, eax
    004051b6call fn_4048f0
    004051bbmov [rbp+40], rax
    004051bfjmp 0x4051d2
    004051c1
    004051c1loc_4051c1:
    004051c1mov rcx, [r13-8]
    004051c5mov rdx, [rbp+40]
    004051c9call fn_404920
    004051cemov [rbp+40], rax
    004051d2
    004051d2loc_4051d2:
    004051d2mov rax, [rbp+40]
    004051d6mov [rax], 32
    004051d9add rax, 1
    004051ddmov [rbp+40], rax
    004051e1mov [rax], 120
    004051e4add rax, 1
    004051e8mov [rbp+40], rax
    004051ecmov [rax], 32
    004051efadd rax, 1
    004051f3mov [rbp+40], rax
    004051f7mov ecx, [r13]
    004051fbmov rdx, [rbp+40]
    004051ffcall fn_404880
    00405204mov [rbp+40], rax
    00405208
    00405208loc_405208:
    00405208mov eax, [rbp+56]
    0040520bsub eax, 1
    0040520emov [rbp+56], eax
    00405211sub r13, 16
    00405215mov eax, [rbp+56]
    00405218cmp eax, -1
    0040521bjne 0x405036
    00405221
    00405221loc_405221:
    00405221nop
    00405222movzx rax, [rbp+55]
    00405227test al, al
    00405229jne 0x405241
    0040522bcmp [rip+0x54a26], 0
    00405232je 0x405241
    00405234mov eax, ebx
    00405236add eax, 8
    00405239test eax, 15
    0040523fjne 0x405244
    00405241
    00405241loc_405241:
    00405241mov [rbp+60], ebx
    00405244
    00405244loc_405244:
    00405244add rdi, 4096
    0040524badd rsi, 64
    0040524fsub r14l, 1
    00405253test r14l, r14l
    00405256jne 0x405020
    0040525cnop
    0040525dmov eax, [rbp+32]
    00405260test eax, eax
    00405262jle 0x40532f
    00405268movzx rax, [rbp+39]
    0040526dtest al, al
    0040526fje 0x4052a1
    00405271mov rax, [rbp+40]
    00405275mov [rax], 13
    00405278add rax, 1
    0040527cmov [rbp+40], rax
    00405280mov [rax], 10
    00405283add rax, 1
    00405287mov [rbp+40], rax
    0040528bmov [rax], 13
    0040528eadd rax, 1
    00405292mov [rbp+40], rax
    00405296mov [rax], 10
    00405299add rax, 1
    0040529dmov [rbp+40], rax
    004052a1
    004052a1loc_4052a1:
    004052a1mov rcx, [rip+0x53de8]
    004052a8call fn_40c580
    004052admov rcx, [rip+0x53ddc]
    004052b4mov rdx, [rbp+40]
    004052b8mov r8l, eax
    004052bbcall fn_4048f0
    004052c0mov [rbp+40], rax
    004052c4xor eax, eax
    004052c6mov esi, [rbp+32]
    004052c9sub esi, 1
    004052ccmov ebx, eax
    004052cecmp ebx, esi
    004052d0ja 0x40532e
    004052d2sub esi, eax
    004052d4add esi, 1
    004052d7lea rdi, [rbp+32840]
    004052de
    004052deloc_4052de:
    004052detest ebx, ebx
    004052e0je 0x4052fc
    004052e2mov rax, [rbp+40]
    004052e6mov [rax], 44
    004052e9add rax, 1
    004052edmov [rbp+40], rax
    004052f1mov [rax], 32
    004052f4add rax, 1
    004052f8mov [rbp+40], rax
    004052fc
    004052fcloc_4052fc:
    004052fcmov rcx, [rdi]
    004052ffmov rdx, [rbp+40]
    00405303call fn_404880
    00405308mov [rbp+40], rax
    0040530clea rax, [rbp+30791]
    00405313mov rcx, [rbp+40]
    00405317cmp rcx, rax
    0040531amov [rbp+40], rcx
    0040531eja 0x40532e
    00405320add ebx, 1
    00405323add rdi, 8
    00405327sub esi, 1
    0040532atest esi, esi
    0040532cjne 0x4052de
    0040532e
    0040532eloc_40532e:
    0040532enop
    0040532f
    0040532floc_40532f:
    0040532fmov rcx, [rip+0x53d82]
    00405336call fn_40c580
    0040533bmov rcx, [rip+0x53d76]
    00405342mov rdx, [rbp+40]
    00405346mov r8l, eax
    00405349call fn_4048f0
    0040534elea rcx, [rbp+72]
    00405352mov rdx, [rip+0x53d67]
    00405359call fn_404700
    0040535e
    0040535eloc_40535e:
    0040535elea rsp, [rbp+0x3e058]
    00405365pop rbx
    00405366pop rsi
    00405367pop rdi
    00405368pop r13
    0040536apop r14
    0040536cpop rbp
    0040536dret
    00404e60
    0040536e
    0040536e // align 0x10
    00405370
    00405370fn_405370:
    00405370xor edx, edx
    00405372xor ecx, ecx
    00405374lea r9, [rip+0x53d5f]
    0040537b
    0040537bloc_40537b:
    0040537bcmp [rip+0x548d6], 0
    00405382je 0x40538f
    00405384movzx rax, [r9]
    00405388test ax, 15
    0040538djne 0x4053ba
    0040538f
    0040538floc_40538f:
    0040538fmovzx r8l, [r9]
    00405393shr r8l, 3
    00405397mov al, 4
    00405399imul cl
    0040539bcmp edx, r8l
    0040539ejae 0x4053b6
    004053a0
    004053a0loc_4053a0:
    004053a0lea r10, [rip+0x60685]
    004053a7mov r11l, edx
    004053aamov [r10+r11], al
    004053aeadd edx, 1
    004053b1cmp edx, r8l
    004053b4jb 0x4053a0
    004053b6
    004053b6loc_4053b6:
    004053b6nop
    004053b7mov edx, r8l
    004053ba
    004053baloc_4053ba:
    004053baadd ecx, 1
    004053bdadd r9, 64
    004053c1cmp ecx, 46
    004053c4jne 0x40537b
    004053c6nop
    004053c7ret
    00405370
    004053c8
    004053c8 // align 0x10
    004053d0
    004053d0fn_4053d0:
    004053d0sub rsp, 40
    004053d4mov r9l, 46
    004053dalea r8, [rip+0x53d27]
    004053e1
    004053e1loc_4053e1:
    004053e1cmp [r8], 0
    004053e5jne 0x4053f1
    004053e7lea rax, [rip-7246]
    004053eemov [r8], rax
    004053f1
    004053f1loc_4053f1:
    004053f1lea rax, [r8-48]
    004053f5mov [r8-32], rax
    004053f9lea rax, [r8-48]
    004053fdmov [r8-40], rax
    00405401mov [r8-16], 0
    00405409mov [r8-24], 1
    00405411movzx eax, [r8-46]
    00405416add eax, eax
    00405418add eax, eax
    0040541alea rax, [rax+2*rax]
    0040541eadd eax, 255
    00405424and eax, -256
    0040542aadd eax, 48
    0040542dcmp eax, 2864
    00405433jae 0x40543a
    00405435mov eax, 2864
    0040543a
    0040543aloc_40543a:
    0040543aadd eax, 1232
    00405440shr eax, 13
    00405443cmp eax, 7
    00405446jbe 0x40544d
    00405448mov eax, 7
    0040544d
    0040544dloc_40544d:
    0040544dmov edx, 255
    00405452mov ecx, eax
    00405454shl edx, cl
    00405456mov [r8-47], dl
    0040545ashl eax, 13
    0040545dadd ax, 2864
    00405462mov [r8-44], ax
    00405467movzx rcx, [r8-46]
    0040546cmovzx eax, cx
    0040546fshl eax, 4
    00405472lea rax, [rax+2*rax]
    00405476add eax, 255
    0040547cand eax, -256
    00405482add eax, 48
    00405485cmp eax, 29488
    0040548bjae 0x405492
    0040548dmov eax, 29488
    00405492
    00405492loc_405492:
    00405492cmp eax, 65328
    00405498jbe 0x40549f
    0040549amov eax, 65328
    0040549f
    0040549floc_40549f:
    0040549fsub eax, 48
    004054a2movzx r10l, cx
    004054a6xor edx, edx
    004054a8div r10l
    004054abimul ax, cx
    004054afadd ax, 255
    004054b4and ax, -256
    004054b9add ax, 48
    004054bdmov [r8-42], ax
    004054c2add r8, 64
    004054c6sub r9l, 1
    004054catest r9l, r9l
    004054cdjne 0x4053e1
    004054d3nop
    004054d4call fn_405370
    004054d9lea rax, [rip+0x60698]
    004054e0mov [rip+0x60691], rax
    004054e7lea rax, [rip+0x6068a]
    004054eemov [rip+0x6068b], rax
    004054f5mov edx, 1024
    004054falea rcx, [rip+0x6072f]
    00405501
    00405501loc_405501:
    00405501mov rax, rcx
    00405504mov [rax], rax
    00405507mov [rax+8], rax
    0040550badd rcx, 16
    0040550fsub edx, 1
    00405512test edx, edx
    00405514jne 0x405501
    00405516nop
    00405517lea rax, [rip+0x6471a]
    0040551emov [rip+0x64713], rax
    00405525lea rax, [rip+0x6470c]
    0040552cmov [rip+0x6470d], rax
    00405533add rsp, 40
    00405537ret
    004053d0
    00405538
    00405538 // align 0x10
    00405540
    00405540fn_405540:
    00405540push rbx
    00405541sub rsp, 32
    00405545mov rax, [rip+0x60634]
    0040554cjmp 0x405565
    0040554e
    0040554eloc_40554e:
    0040554emov rbx, [rax+8]
    00405552mov rcx, rax
    00405555xor edx, edx
    00405557mov r8l, 32768
    0040555dcall VirtualFree
    00405562mov rax, rbx
    00405565
    00405565loc_405565:
    00405565lea rcx, [rip+0x6060c]
    0040556ccmp rax, rcx
    0040556fjne 0x40554e
    00405571mov ecx, 46
    00405576lea rax, [rip+0x53b5b]
    0040557d
    0040557dloc_40557d:
    0040557dmov [rax+16], rax
    00405581mov [rax+8], rax
    00405585mov [rax+24], 1
    0040558dmov [rax+32], 0
    00405595add rax, 64
    00405599sub ecx, 1
    0040559ctest ecx, ecx
    0040559ejne 0x40557d
    004055a0nop
    004055a1lea rax, [rip+0x605d0]
    004055a8mov [rip+0x605c9], rax
    004055aflea rax, [rip+0x605c2]
    004055b6mov [rip+0x605c3], rax
    004055bdmov edx, 1024
    004055c2lea rcx, [rip+0x60667]
    004055c9
    004055c9loc_4055c9:
    004055c9mov rax, rcx
    004055ccmov [rax], rax
    004055cfmov [rax+8], rax
    004055d3add rcx, 16
    004055d7sub edx, 1
    004055datest edx, edx
    004055dcjne 0x4055c9
    004055denop
    004055dfmov [rip+0x605c3], 0
    004055e9lea rcx, [rip+0x605c0]
    004055f0mov edx, 128
    004055f5xor r8, r8
    004055f8call fn_4069b0
    004055fdmov [rip+0x605a1], 0
    00405607mov rax, [rip+0x64632]
    0040560ejmp 0x405627
    00405610
    00405610loc_405610:
    00405610mov rbx, [rax+8]
    00405614mov rcx, rax
    00405617xor edx, edx
    00405619mov r8l, 32768
    0040561fcall VirtualFree
    00405624mov rax, rbx
    00405627
    00405627loc_405627:
    00405627lea rcx, [rip+0x6460a]
    0040562ecmp rax, rcx
    00405631jne 0x405610
    00405633lea rax, [rip+0x645fe]
    0040563amov [rip+0x645f7], rax
    00405641lea rax, [rip+0x645f0]
    00405648mov [rip+0x645f1], rax
    0040564fadd rsp, 32
    00405653pop rbx
    00405654ret
    00405540
    00405655
    00405655 // align 0x10
    00405660
    00405660fn_405660:
    00405660sub rsp, 40
    00405664cmp [rip+0x645fc], 0
    0040566cje 0x405685
    0040566emov rcx, [rip+0x645f3]
    00405675call CloseHandle
    0040567amov [rip+0x645e3], 0
    00405685
    00405685loc_405685:
    00405685cmp [rip+0x60398], 0
    0040568cje 0x405693
    0040568ecall fn_404e60
    00405693
    00405693loc_405693:
    00405693cmp [rip+0x645bd], 0
    0040569bje 0x4056bc
    0040569dmov rcx, [rip+0x645b4]
    004056a4xor edx, edx
    004056a6mov r8l, 32768
    004056accall VirtualFree
    004056b1mov [rip+0x6459c], 0
    004056bc
    004056bcloc_4056bc:
    004056bccall fn_405540
    004056c1add rsp, 40
    004056c5ret
    00405660
    004056c6
    004056c6 // align 0x10
    004056d0
    004056d0fn_4056d0:
    004056d0push rbx
    004056d1sub rsp, 32
    004056d5test rcx, rcx
    004056d8jle 0x4056f1
    004056dacall [rip+0x54598]
    004056e0mov rbx, rax
    004056e3test rbx, rbx
    004056e6jne 0x4056f3
    004056e8mov cl, 1
    004056eacall fn_405a20
    004056efjmp 0x4056f3
    004056f1
    004056f1loc_4056f1:
    004056f1xor ebx, ebx
    004056f3
    004056f3loc_4056f3:
    004056f3mov rax, rbx
    004056f6add rsp, 32
    004056fapop rbx
    004056fbret
    004056d0
    004056fc
    004056fc // align 0x10
    00405700
    00405700fn_405700:
    00405700push rbx
    00405701sub rsp, 32
    00405705test rcx, rcx
    00405708jg 0x40570e
    0040570axor ebx, ebx
    0040570cjmp 0x405723
    0040570e
    0040570eloc_40570e:
    0040570ecall [rip+0x5454c]
    00405714mov rbx, rax
    00405717test rbx, rbx
    0040571ajne 0x405723
    0040571cmov cl, 1
    0040571ecall fn_405a20
    00405723
    00405723loc_405723:
    00405723mov rax, rbx
    00405726add rsp, 32
    0040572apop rbx
    0040572bret
    00405700
    0040572c
    0040572c // align 0x10
    00405730
    00405730fn_405730:
    00405730push rbx
    00405731sub rsp, 32
    00405735test rcx, rcx
    00405738jne 0x40573e
    0040573axor ebx, ebx
    0040573cjmp 0x405751
    0040573e
    0040573eloc_40573e:
    0040573ecall [rip+0x54524]
    00405744mov ebx, eax
    00405746test ebx, ebx
    00405748je 0x405751
    0040574amov cl, 2
    0040574ccall fn_405a20
    00405751
    00405751loc_405751:
    00405751mov eax, ebx
    00405753add rsp, 32
    00405757pop rbx
    00405758ret
    00405730
    00405759
    00405759 // align 0x10
    00405760
    00405760fn_405760:
    00405760push rsi
    00405761push rbx
    00405762sub rsp, 40
    00405766mov rbx, rcx
    00405769cmp [rbx], 0
    0040576dje 0x4057a9
    0040576ftest rdx, rdx
    00405772jle 0x40578e
    00405774mov rcx, [rbx]
    00405777call [rip+0x544f3]
    0040577dmov rsi, rax
    00405780test rsi, rsi
    00405783jne 0x4057a4
    00405785mov cl, 1
    00405787call fn_405a20
    0040578cjmp 0x4057a4
    0040578e
    0040578eloc_40578e:
    0040578emov rcx, [rbx]
    00405791call [rip+0x544d1]
    00405797test eax, eax
    00405799je 0x4057a2
    0040579bmov cl, 2
    0040579dcall fn_405a20
    004057a2
    004057a2loc_4057a2:
    004057a2xor esi, esi
    004057a4
    004057a4loc_4057a4:
    004057a4mov [rbx], rsi
    004057a7jmp 0x4057cd
    004057a9
    004057a9loc_4057a9:
    004057a9test rdx, rdx
    004057acjg 0x4057b2
    004057aexor esi, esi
    004057b0jmp 0x4057cd
    004057b2
    004057b2loc_4057b2:
    004057b2mov rcx, rdx
    004057b5call [rip+0x544a5]
    004057bbmov rsi, rax
    004057betest rsi, rsi
    004057c1jne 0x4057ca
    004057c3mov cl, 1
    004057c5call fn_405a20
    004057ca
    004057caloc_4057ca:
    004057camov [rbx], rsi
    004057cd
    004057cdloc_4057cd:
    004057cdmov rax, rsi
    004057d0add rsp, 40
    004057d4pop rbx
    004057d5pop rsi
    004057d6ret
    00405760
    004057d7
    004057d7 // align 0x10
    004057e0
    004057e0fn_4057e0:
    004057e0push rbp
    004057e1push rdi
    004057e2push rsi
    004057e3push rbx
    004057e4sub rsp, 40
    004057e8mov rbp, rsp
    004057ebxor esi, esi
    004057edxor ebx, ebx
    004057ef
    004057efloc_4057ef:
    004057efcall fn_414a40
    004057f4movsxd rdi, ebx
    004057f7lea rcx, [0x0]
    004057fflea rax, [rax+rcx+24]
    00405804mov rcx, rdi
    00405807add rcx, rcx
    0040580aadd rcx, rcx
    0040580dcmp [rax+8*rcx], 0
    00405811jne 0x405830
    00405813call fn_414a40
    00405818lea rcx, [0x0]
    00405820lea rax, [rax+rcx]
    00405824add rdi, rdi
    00405827add rdi, rdi
    0040582alea rsi, [rax+8*rdi]
    0040582ejmp 0x405838
    00405830
    00405830loc_405830:
    00405830add ebx, 1
    00405833cmp ebx, 16
    00405836jne 0x4057ef
    00405838
    00405838loc_405838:
    00405838nop
    00405839test rsi, rsi
    0040583cjne 0x40584c
    0040583emov ecx, 231
    00405843mov rdx, [rbp+72]
    00405847call fn_4059a0
    0040584c
    0040584cloc_40584c:
    0040584cmov [rsi+24], 1
    00405850call fn_414a40
    00405855lea rcx, [0x200]
    0040585dlea rax, [rax+rcx]
    00405861add [rax], 1
    00405864mov [rsi], 0
    0040586bmov [rsi+16], 0
    00405873mov [rsi+8], 0
    0040587bmov rax, rsi
    0040587elea rsp, [rbp+40]
    00405882pop rbx
    00405883pop rsi
    00405884pop rdi
    00405885pop rbp
    00405886ret
    004057e0
    00405887
    00405887 // align 0x10
    00405890
    00405890fn_405890:
    00405890push rsi
    00405891push rbx
    00405892sub rsp, 40
    00405896mov rbx, rcx
    00405899mov rsi, rbx
    0040589ccall fn_414a40
    004058a1lea rcx, [0x0]
    004058a9lea rax, [rax+rcx]
    004058adcmp rsi, rax
    004058b0jb 0x4058e4
    004058b2call fn_414a40
    004058b7lea rcx, [0x0]
    004058bflea rax, [rax+rcx+480]
    004058c7cmp rsi, rax
    004058caja 0x4058e4
    004058ccmov [rbx+24], 0
    004058d0call fn_414a40
    004058d5lea rcx, [0x200]
    004058ddlea rax, [rax+rcx]
    004058e1sub [rax], 1
    004058e4
    004058e4loc_4058e4:
    004058e4add rsp, 40
    004058e8pop rbx
    004058e9pop rsi
    004058earet
    00405890
    004058eb
    004058eb // align 0x10
    004058f0
    004058f0fn_4058f0:
    004058f0sub rsp, 40
    004058f4call fn_414a40
    004058f9mov rax, [rax+520]
    00405900test rax, rax
    00405903je 0x40590b
    00405905mov rax, [rax+16]
    00405909jmp 0x40590d
    0040590b
    0040590bloc_40590b:
    0040590bxor eax, eax
    0040590d
    0040590dloc_40590d:
    0040590dadd rsp, 40
    00405911ret
    004058f0
    00405912
    00405912 // align 0x10
    00405920
    00405920fn_405920:
    00405920sub rsp, 40
    00405924call fn_414a40
    00405929mov rax, [rax+520]
    00405930test rax, rax
    00405933je 0x40593b
    00405935mov rax, [rax+8]
    00405939jmp 0x40593d
    0040593b
    0040593bloc_40593b:
    0040593bxor eax, eax
    0040593d
    0040593dloc_40593d:
    0040593dadd rsp, 40
    00405941ret
    00405920
    00405942
    00405942 // align 0x10
    00405950
    00405950fn_405950:
    00405950push rbx
    00405951sub rsp, 32
    00405955call fn_414a40
    0040595amov rax, [rax+520]
    00405961test rax, rax
    00405964je 0x405987
    00405966mov rbx, [rax+16]
    0040596amov [rax+16], 0
    00405972cmp [rip+0x5f6ce], 0
    0040597aje 0x405989
    0040597cmov rcx, rbx
    0040597fcall [rip+0x5f6c3]
    00405985jmp 0x405989
    00405987
    00405987loc_405987:
    00405987xor ebx, ebx
    00405989
    00405989loc_405989:
    00405989mov rax, rbx
    0040598cadd rsp, 32
    00405990pop rbx
    00405991ret
    00405950
    00405992
    00405992 // align 0x10
    004059a0
    004059a0fn_4059a0:
    004059a0sub rsp, 40
    004059a4mov [rip+0x5365d], rdx
    004059abcall fn_40ba10
    004059b0add rsp, 40
    004059b4ret
    004059a0
    004059b5
    004059b5 // align 0x10
    004059c0
    004059c0fn_4059c0:
    004059c0push rsi
    004059c1push rbx
    004059c2sub rsp, 40
    004059c6mov ebx, ecx
    004059c8mov rsi, rdx
    004059cband bl, 127
    004059cecmp [rip+0x5f642], 0
    004059d6je 0x4059e3
    004059d8mov ecx, ebx
    004059damov rdx, rsi
    004059ddcall [rip+0x5f635]
    004059e3
    004059e3loc_4059e3:
    004059e3test bl, bl
    004059e5jne 0x4059f6
    004059e7call fn_414a40
    004059ecmovzx rbx, [rax+528]
    004059f4jmp 0x405a0b
    004059f6
    004059f6loc_4059f6:
    004059f6cmp bl, 28
    004059f9ja 0x405a0b
    004059fblea rax, [rip+0x5443a]
    00405a02movzx rbx, bl
    00405a06movzx rbx, [rax+rbx]
    00405a0b
    00405a0bloc_405a0b:
    00405a0bmovzx rcx, bl
    00405a0fmov rdx, rsi
    00405a12call fn_4059a0
    00405a17add rsp, 40
    00405a1bpop rbx
    00405a1cpop rsi
    00405a1dret
    004059c0
    00405a1e
    00405a1e // align 0x10
    00405a20
    00405a20fn_405a20:
    00405a20push rbp
    00405a21sub rsp, 32
    00405a25mov rbp, rsp
    00405a28mov rdx, [rbp+40]
    00405a2ccall fn_4059c0
    00405a31lea rsp, [rbp+32]
    00405a35pop rbp
    00405a36ret
    00405a20
    00405a37
    00405a37 // align 0x10
    00405a40
    00405a40fn_405a40:
    00405a40push rbp
    00405a41sub rsp, 32
    00405a45mov rbp, rsp
    00405a48call fn_414a40
    00405a4dcmp [rax+528], 0
    00405a54je 0x405a61
    00405a56xor ecx, ecx
    00405a58mov rdx, [rbp+40]
    00405a5ccall fn_4059c0
    00405a61
    00405a61loc_405a61:
    00405a61lea rsp, [rbp+32]
    00405a65pop rbp
    00405a66ret
    00405a40
    00405a67
    00405a67 // align 0x10
    00405a70
    00405a70fn_405a70:
    00405a70push rbx
    00405a71sub rsp, 32
    00405a75mov ebx, ecx
    00405a77call fn_414a40
    00405a7cmov [rax+528], ebx
    00405a82add rsp, 32
    00405a86pop rbx
    00405a87ret
    00405a70
    00405a88
    00405a88 // align 0x10
    00405a90
    00405a90fn_405a90:
    00405a90push rbx
    00405a91sub rsp, 32
    00405a95call fn_414a40
    00405a9amov ebx, [rax+528]
    00405aa0call fn_414a40
    00405aa5mov [rax+528], 0
    00405aafmov eax, ebx
    00405ab1add rsp, 32
    00405ab5pop rbx
    00405ab6ret
    00405a90
    00405ab7
    00405ab7 // align 0x10
    00405ac0
    00405ac0fn_405ac0:
    00405ac0cmp rcx, rdx
    00405ac3je 0x405c7d
    00405ac9cmp r8, 8
    00405acdjg 0x405c1d
    00405ad3cmp r8l, 5
    00405ad7jg 0x405b0d
    00405ad9cmp r8l, 5
    00405addje 0x405b86
    00405ae3sub r8l, 1
    00405ae7test r8l, r8l
    00405aeaje 0x405b39
    00405aecsub r8l, 1
    00405af0test r8l, r8l
    00405af3je 0x405b44
    00405af5sub r8l, 1
    00405af9test r8l, r8l
    00405afcje 0x405b50
    00405afesub r8l, 1
    00405b02test r8l, r8l
    00405b05jne 0x405c7d
    00405b0bjmp 0x405b7d
    00405b0d
    00405b0dloc_405b0d:
    00405b0dsub r8l, 6
    00405b11test r8l, r8l
    00405b14je 0x405bad
    00405b1asub r8l, 1
    00405b1etest r8l, r8l
    00405b21je 0x405bd6
    00405b27sub r8l, 1
    00405b2btest r8l, r8l
    00405b2ejne 0x405c7d
    00405b34jmp 0x405c15
    00405b39
    00405b39loc_405b39:
    00405b39movzx rax, [rcx]
    00405b3dmov [rdx], al
    00405b3fjmp 0x405c7d
    00405b44
    00405b44loc_405b44:
    00405b44movzx rax, [rcx]
    00405b48mov [rdx], ax
    00405b4bjmp 0x405c7d
    00405b50
    00405b50loc_405b50:
    00405b50cmp rdx, rcx
    00405b53jbe 0x405b69
    00405b55movzx rax, [rcx+2]
    00405b5amov [rdx+2], al
    00405b5dmovzx rax, [rcx]
    00405b61mov [rdx], ax
    00405b64jmp 0x405c7d
    00405b69
    00405b69loc_405b69:
    00405b69movzx rax, [rcx]
    00405b6dmov [rdx], ax
    00405b70movzx rax, [rcx+2]
    00405b75mov [rdx+2], al
    00405b78jmp 0x405c7d
    00405b7d
    00405b7dloc_405b7d:
    00405b7dmov eax, [rcx]
    00405b7fmov [rdx], eax
    00405b81jmp 0x405c7d
    00405b86
    00405b86loc_405b86:
    00405b86cmp rdx, rcx
    00405b89jbe 0x405b9c
    00405b8bmovzx rax, [rcx+4]
    00405b90mov [rdx+4], al
    00405b93mov eax, [rcx]
    00405b95mov [rdx], eax
    00405b97jmp 0x405c7d
    00405b9c
    00405b9cloc_405b9c:
    00405b9cmov eax, [rcx]
    00405b9emov [rdx], eax
    00405ba0movzx rax, [rcx+4]
    00405ba5mov [rdx+4], al
    00405ba8jmp 0x405c7d
    00405bad
    00405badloc_405bad:
    00405badcmp rdx, rcx
    00405bb0jbe 0x405bc4
    00405bb2movzx rax, [rcx+4]
    00405bb7mov [rdx+4], ax
    00405bbbmov eax, [rcx]
    00405bbdmov [rdx], eax
    00405bbfjmp 0x405c7d
    00405bc4
    00405bc4loc_405bc4:
    00405bc4mov eax, [rcx]
    00405bc6mov [rdx], eax
    00405bc8movzx rax, [rcx+4]
    00405bcdmov [rdx+4], ax
    00405bd1jmp 0x405c7d
    00405bd6
    00405bd6loc_405bd6:
    00405bd6cmp rdx, rcx
    00405bd9jbe 0x405bf5
    00405bdbmovzx rax, [rcx+6]
    00405be0mov [rdx+6], al
    00405be3movzx rax, [rcx+4]
    00405be8mov [rdx+4], ax
    00405becmov eax, [rcx]
    00405beemov [rdx], eax
    00405bf0jmp 0x405c7d
    00405bf5
    00405bf5loc_405bf5:
    00405bf5mov rax, rcx
    00405bf8mov r8, rdx
    00405bfbmov r9l, [rax]
    00405bfemov [r8], r9l
    00405c01movzx rax, [rax+4]
    00405c06mov [r8+4], ax
    00405c0bmovzx rax, [rcx+6]
    00405c10mov [rdx+6], al
    00405c13jmp 0x405c7d
    00405c15
    00405c15loc_405c15:
    00405c15mov rax, [rcx]
    00405c18mov [rdx], rax
    00405c1bjmp 0x405c7d
    00405c1d
    00405c1dloc_405c1d:
    00405c1dcmp rdx, rcx
    00405c20jbe 0x405c53
    00405c22mov r9, [rcx]
    00405c25mov rax, rdx
    00405c28lea r10, [r8-8]
    00405c2clea rdx, [rdx+r10]
    00405c30add rcx, r10
    00405c33
    00405c33loc_405c33:
    00405c33mov r10, [rcx]
    00405c36mov [rdx], r10
    00405c39cmp r8, 16
    00405c3djle 0x405c4d
    00405c3fsub r8, 8
    00405c43sub rcx, 8
    00405c47sub rdx, 8
    00405c4bjmp 0x405c33
    00405c4d
    00405c4dloc_405c4d:
    00405c4dnop
    00405c4emov [rax], r9
    00405c51jmp 0x405c7d
    00405c53
    00405c53loc_405c53:
    00405c53lea r10, [r8-8]
    00405c57mov r9, [rcx+r10]
    00405c5blea rax, [rdx+r10]
    00405c5f
    00405c5floc_405c5f:
    00405c5fmov r10, [rcx]
    00405c62mov [rdx], r10
    00405c65cmp r8, 16
    00405c69jle 0x405c79
    00405c6bsub r8, 8
    00405c6fadd rcx, 8
    00405c73add rdx, 8
    00405c77jmp 0x405c5f
    00405c79
    00405c79loc_405c79:
    00405c79nop
    00405c7amov [rax], r9
    00405c7d
    00405c7dloc_405c7d:
    00405c7dret
    00405ac0
    00405c7e
    00405c7e // align 0x10
    00405c80
    00405c80fn_405c80:
    00405c80push rsi
    00405c81push rbx
    00405c82sub rsp, 40
    00405c86mov rax, rcx
    00405c89mov rbx, rdx
    00405c8cjmp 0x405c92
    00405c8e
    00405c8eloc_405c8e:
    00405c8eadd rax, 2
    00405c92
    00405c92loc_405c92:
    00405c92movzx rcx, [rax]
    00405c96test cx, cx
    00405c99je 0x405ca1
    00405c9bcmp cx, 32
    00405c9fjbe 0x405c8e
    00405ca1
    00405ca1loc_405ca1:
    00405ca1cmp [rax], 34
    00405ca5jne 0x405cb4
    00405ca7cmp [rax+2], 34
    00405cacjne 0x405cb4
    00405caeadd rax, 4
    00405cb2jmp 0x405c92
    00405cb4
    00405cb4loc_405cb4:
    00405cb4nop
    00405cb5xor ecx, ecx
    00405cb7mov rsi, rax
    00405cbajmp 0x405cf1
    00405cbc
    00405cbcloc_405cbc:
    00405cbccmp dx, 34
    00405cc0jne 0x405cea
    00405cc2add rax, 2
    00405cc6jmp 0x405ccf
    00405cc8
    00405cc8loc_405cc8:
    00405cc8add ecx, 1
    00405ccbadd rax, 2
    00405ccf
    00405ccfloc_405ccf:
    00405ccfmovzx rdx, [rax]
    00405cd3test dx, dx
    00405cd6je 0x405cde
    00405cd8cmp dx, 34
    00405cdcjne 0x405cc8
    00405cde
    00405cdeloc_405cde:
    00405cdecmp [rax], 0
    00405ce2je 0x405cf1
    00405ce4add rax, 2
    00405ce8jmp 0x405cf1
    00405cea
    00405cealoc_405cea:
    00405ceaadd ecx, 1
    00405cedadd rax, 2
    00405cf1
    00405cf1loc_405cf1:
    00405cf1movzx rdx, [rax]
    00405cf5cmp dx, 32
    00405cf9ja 0x405cbc
    00405cfbmov rax, rbx
    00405cfemov edx, ecx
    00405d00mov rcx, rax
    00405d03call fn_40d8d0
    00405d08mov rax, rsi
    00405d0bmov rdx, [rbx]
    00405d0exor ecx, ecx
    00405d10jmp 0x405d5a
    00405d12
    00405d12loc_405d12:
    00405d12cmp r8w, 34
    00405d17jne 0x405d4b
    00405d19add rax, 2
    00405d1djmp 0x405d2e
    00405d1f
    00405d1floc_405d1f:
    00405d1fmovsxd r9, ecx
    00405d22mov [rdx+2*r9], r8w
    00405d27add rax, 2
    00405d2badd ecx, 1
    00405d2e
    00405d2eloc_405d2e:
    00405d2emovzx r8, [rax]
    00405d32test r8w, r8w
    00405d36je 0x405d3f
    00405d38cmp r8w, 34
    00405d3djne 0x405d1f
    00405d3f
    00405d3floc_405d3f:
    00405d3fcmp [rax], 0
    00405d43je 0x405d5a
    00405d45add rax, 2
    00405d49jmp 0x405d5a
    00405d4b
    00405d4bloc_405d4b:
    00405d4bmovsxd r9, ecx
    00405d4emov [rdx+2*r9], r8w
    00405d53add rax, 2
    00405d57add ecx, 1
    00405d5a
    00405d5aloc_405d5a:
    00405d5amovzx r8, [rax]
    00405d5ecmp r8w, 32
    00405d63ja 0x405d12
    00405d65add rsp, 40
    00405d69pop rbx
    00405d6apop rsi
    00405d6bret
    00405c80
    00405d6c
    00405d6c // align 0x10
    00405d70
    00405d70fn_405d70:
    00405d70push rbp
    00405d71sub rsp, 64
    00405d75mov rbp, rsp
    00405d78mov [rbp+56], 0
    00405d80nop
    00405d81xor eax, eax
    00405d83mov [rbp+44], eax
    00405d86call GetCommandLineW
    00405d8bmov rcx, rax
    00405d8elea rdx, [rbp+56]
    00405d92call fn_405c80
    00405d97
    00405d97loc_405d97:
    00405d97mov rcx, rax
    00405d9alea rdx, [rbp+56]
    00405d9ecall fn_405c80
    00405da3cmp [rbp+56], 0
    00405da8je 0x405db5
    00405daamov ecx, [rbp+44]
    00405dadadd ecx, 1
    00405db0mov [rbp+44], ecx
    00405db3jmp 0x405d97
    00405db5
    00405db5loc_405db5:
    00405db5nop
    00405db6nop
    00405db7lea rcx, [rbp+56]
    00405dbbcall fn_40bcf0
    00405dc0mov eax, [rbp+44]
    00405dc3lea rsp, [rbp+64]
    00405dc7pop rbp
    00405dc8ret
    00405d70
    00405dc9
    00405dc9 48 8d 80 00 00 00 00 H......
    00405dd0
    00405dd0fn_405dd0:
    00405dd0push rbp
    00405dd1sub rsp, 32
    00405dd5mov rbp, rsp
    00405dd8lea rcx, [rdx+56]
    00405ddccall fn_40bcf0
    00405de1lea rsp, [rbp+32]
    00405de5pop rbp
    00405de6ret
    00405dd0
    00405de7
    00405de7 // align 0x10
    00405df0
    00405df0fn_405df0:
    00405df0push rbp
    00405df1push rsi
    00405df2push rbx
    00405df3sub rsp, 560
    00405dfamov rbp, rsp
    00405dfdmov rbx, rcx
    00405e00mov esi, edx
    00405e02mov rcx, rbx
    00405e05call fn_40bcf0
    00405e0atest esi, esi
    00405e0cjne 0x405e30
    00405e0exor ecx, ecx
    00405e10lea rdx, [rbp+38]
    00405e14mov r8l, 261
    00405e1acall GetModuleFileNameW
    00405e1fmov rcx, rbx
    00405e22lea rdx, [rbp+38]
    00405e26mov r8l, eax
    00405e29call fn_40bfd0
    00405e2ejmp 0x405e50
    00405e30
    00405e30loc_405e30:
    00405e30call GetCommandLineW
    00405e35
    00405e35loc_405e35:
    00405e35mov rcx, rax
    00405e38mov rdx, rbx
    00405e3bcall fn_405c80
    00405e40test esi, esi
    00405e42je 0x405e4f
    00405e44cmp [rbx], 0
    00405e48je 0x405e4f
    00405e4asub esi, 1
    00405e4djmp 0x405e35
    00405e4f
    00405e4floc_405e4f:
    00405e4fnop
    00405e50
    00405e50loc_405e50:
    00405e50mov rax, rbx
    00405e53lea rsp, [rbp+560]
    00405e5apop rbx
    00405e5bpop rsi
    00405e5cpop rbp
    00405e5dret
    00405df0
    00405e5e
    00405e5e // align 0x10
    00405e60
    00405e60fn_405e60:
    00405e60imul eax, [rip+0x531a6], 0x8088405
    00405e6aadd eax, 1
    00405e6dmov [rip+0x5319d], eax
    00405e73ret
    00405e60
    00405e74
    00405e74 // align 0x10
    00405e80
    00405e80fn_405e80:
    00405e80push rbx
    00405e81mov ebx, ecx
    00405e83call [rip+0x531bf]
    00405e89mov eax, eax
    00405e8bimul rax, rbx
    00405e8fshr rax, 32
    00405e93pop rbx
    00405e94ret
    00405e95
    00405e95 c3 .
    00405e80
    00405e96
    00405e96 // align 0x10
    00405ea0
    00405ea0fn_405ea0:
    00405ea0push rdi
    00405ea1push rsi
    00405ea2push rbx
    00405ea3sub rsp, 32
    00405ea7mov ebx, ecx
    00405ea9mov esi, edx
    00405eaband esi, 63
    00405eaecall fn_406080
    00405eb3and eax, 63
    00405eb6mov edi, eax
    00405eb8and edi, esi
    00405ebamov ecx, esi
    00405ebcnot ecx
    00405ebeand eax, ecx
    00405ec0and ebx, esi
    00405ec2or eax, ebx
    00405ec4mov ecx, eax
    00405ec6call fn_406050
    00405ecbmov eax, edi
    00405ecdadd rsp, 32
    00405ed1pop rbx
    00405ed2pop rsi
    00405ed3pop rdi
    00405ed4ret
    00405ea0
    00405ed5
    00405ed5 // align 0x10
    00405ee0
    00405ee0fn_405ee0:
    00405ee0push rbx
    00405ee1sub rsp, 32
    00405ee5mov ebx, ecx
    00405ee7test ebx, ebx
    00405ee9je 0x405fb3
    00405eeftest dl, dl
    00405ef1je 0x405f1c
    00405ef3mov ecx, ebx
    00405ef5shl ecx, 7
    00405ef8and ecx, 8064
    00405efecall fn_406000
    00405f03test eax, eax
    00405f05je 0x405f1c
    00405f07shr eax, 7
    00405f0aand eax, 63
    00405f0dmov ecx, eax
    00405f0fnot ecx
    00405f11and ebx, ecx
    00405f13xor ecx, ecx
    00405f15mov edx, eax
    00405f17call fn_405ea0
    00405f1c
    00405f1cloc_405f1c:
    00405f1ctest ebx, ebx
    00405f1eje 0x405fb3
    00405f24mov eax, ebx
    00405f26test eax, 32
    00405f2cje 0x405f41
    00405f2exor ecx, ecx
    00405f30mov edx, 32
    00405f35call fn_405ea0
    00405f3amov cl, 6
    00405f3ccall fn_405a20
    00405f41
    00405f41loc_405f41:
    00405f41mov eax, ebx
    00405f43test eax, 16
    00405f49je 0x405f5e
    00405f4bxor ecx, ecx
    00405f4dmov edx, 16
    00405f52call fn_405ea0
    00405f57mov cl, 9
    00405f59call fn_405a20
    00405f5e
    00405f5eloc_405f5e:
    00405f5emov eax, ebx
    00405f60test eax, 8
    00405f66je 0x405f7b
    00405f68xor ecx, ecx
    00405f6amov edx, 8
    00405f6fcall fn_405ea0
    00405f74mov cl, 8
    00405f76call fn_405a20
    00405f7b
    00405f7bloc_405f7b:
    00405f7bmov eax, ebx
    00405f7dtest eax, 4
    00405f83je 0x405f98
    00405f85xor ecx, ecx
    00405f87mov edx, 4
    00405f8ccall fn_405ea0
    00405f91mov cl, 7
    00405f93call fn_405a20
    00405f98
    00405f98loc_405f98:
    00405f98test ebx, 1
    00405f9eje 0x405fb3
    00405fa0xor ecx, ecx
    00405fa2mov edx, 1
    00405fa7call fn_405ea0
    00405facmov cl, 6
    00405faecall fn_405a20
    00405fb3
    00405fb3loc_405fb3:
    00405fb3add rsp, 32
    00405fb7pop rbx
    00405fb8ret
    00405ee0
    00405fb9
    00405fb9 // align 0x10
    00405fc0
    00405fc0fn_405fc0:
    00405fc0push rdi
    00405fc1push rsi
    00405fc2push rbx
    00405fc3sub rsp, 32
    00405fc7mov ebx, ecx
    00405fc9mov esi, edx
    00405fcband esi, 8064
    00405fd1call fn_406080
    00405fd6mov edi, eax
    00405fd8mov eax, esi
    00405fdanot eax
    00405fdcmov ecx, edi
    00405fdeand ecx, eax
    00405fe0and ebx, esi
    00405fe2or ecx, ebx
    00405fe4call fn_406030
    00405fe9mov eax, edi
    00405feband eax, esi
    00405fedadd rsp, 32
    00405ff1pop rbx
    00405ff2pop rsi
    00405ff3pop rdi
    00405ff4ret
    00405fc0
    00405ff5
    00405ff5 // align 0x10
    00406000
    00406000fn_406000:
    00406000push rbx
    00406001sub rsp, 32
    00406005mov ebx, ecx
    00406007call fn_406080
    0040600cand eax, ebx
    0040600eadd rsp, 32
    00406012pop rbx
    00406013ret
    00406000
    00406014
    00406014 // align 0x10
    00406020
    00406020fn_406020:
    00406020push 0
    00406022fnstcw [rsp]
    00406025pop rax
    00406026ret
    00406020
    00406027
    00406027 // align 0x10
    00406030
    00406030fn_406030:
    00406030and ecx, 65472
    00406036mov [rip+0x52ff8], ecx
    0040603cldmxcsr [rip+0x52ff1]
    00406043ret
    00406030
    00406044
    00406044 // align 0x10
    00406050
    00406050fn_406050:
    00406050push rbp
    00406051sub rsp, 16
    00406055mov rbp, rsp
    00406058stmxcsr [rbp+12]
    0040605cand ecx, 63
    0040605fmov edx, [rbp+12]
    00406062and edx, 65472
    00406068or edx, ecx
    0040606amov [rbp+12], edx
    0040606dldmxcsr [rbp+12]
    00406071lea rsp, [rbp+16]
    00406075pop rbp
    00406076ret
    00406050
    00406077
    00406077 // align 0x10
    00406080
    00406080fn_406080:
    00406080push 0
    00406082stmxcsr [rsp]
    00406086pop rax
    00406087ret
    00406080
    00406088
    00406088 // align 0x10
    00406090
    00406090fn_406090:
    00406090mov [rsp+8], rcx
    00406095mov [rsp+16], rdx
    0040609amov rax, [rsp+8]
    0040609fmov rcx, [rsp+16]
    004060a4mov rdx, [rax]
    004060a7cmp rdx, [rcx]
    004060aajne 0x4060b6
    004060acmov rax, [rax+8]
    004060b0cmp rax, [rcx+8]
    004060b4je 0x4060ba
    004060b6
    004060b6loc_4060b6:
    004060b6xor eax, eax
    004060b8jmp 0x4060bc
    004060ba
    004060baloc_4060ba:
    004060bamov al, 1
    004060bc
    004060bcloc_4060bc:
    004060bcret
    00406090
    004060bd
    004060bd // align 0x10
    004060c0
    004060c0fn_4060c0:
    004060c0push rbp
    004060c1sub rsp, 16
    004060c5mov rbp, rsp
    004060c8mov [rbp+8], rcx
    004060ccmov [rbp], rdx
    004060d0mov rax, [rbp+8]
    004060d4mov rcx, [rbp]
    004060d8mov rdx, [rax]
    004060dbcmp rdx, [rcx]
    004060dejne 0x4060ee
    004060e0mov rax, [rax+8]
    004060e4cmp rax, [rcx+8]
    004060e8jne 0x4060ee
    004060eaxor eax, eax
    004060ecjmp 0x4060f0
    004060ee
    004060eeloc_4060ee:
    004060eemov al, 1
    004060f0
    004060f0loc_4060f0:
    004060f0lea rsp, [rbp+16]
    004060f4pop rbp
    004060f5ret
    004060c0
    004060f6
    004060f6 // align 0x10
    00406100
    00406100fn_406100:
    00406100push rdi
    00406101push rsi
    00406102mov rsi, rdx
    00406105mov rdi, rcx
    00406108movsq [rdi], [rsi]
    0040610amovsq [rdi], [rsi]
    0040610ctest r8b, r8b
    0040610fje 0x40619d
    00406115movzx rax, [rcx]
    00406119mov edx, [rcx]
    0040611bshr edx, 16
    0040611emov r8l, eax
    00406121and r8w, 255
    00406127shl r8l, 8
    0040612band ax, -256
    00406130shr ax, 8
    00406134or r8w, ax
    00406138movzx r8l, r8w
    0040613cshl r8l, 16
    00406140mov eax, edx
    00406142and ax, 255
    00406147shl eax, 8
    0040614aand dx, -256
    0040614fshr dx, 8
    00406153or ax, dx
    00406156movzx eax, ax
    00406159or r8l, eax
    0040615cmov [rcx], r8l
    0040615fmovzx rax, [rcx+4]
    00406164mov edx, eax
    00406166and dx, 255
    0040616bshl edx, 8
    0040616eand ax, -256
    00406173shr ax, 8
    00406177or dx, ax
    0040617amov [rcx+4], dx
    0040617emovzx rax, [rcx+6]
    00406183mov edx, eax
    00406185and dx, 255
    0040618ashl edx, 8
    0040618dand ax, -256
    00406192shr ax, 8
    00406196or dx, ax
    00406199mov [rcx+6], dx
    0040619d
    0040619dloc_40619d:
    0040619dmov rax, rcx
    004061a0pop rsi
    004061a1pop rdi
    004061a2ret
    00406100
    004061a3
    004061a3 // align 0x10
    004061b0
    004061b0fn_4061b0:
    004061b0push rbx
    004061b1sub rsp, 32
    004061b5mov rbx, rcx
    004061b8add r8l, 1
    004061bcmov eax, r9l
    004061bfadd eax, 16
    004061c2cmp r8l, eax
    004061c5jge 0x4061d1
    004061c7mov rcx, rbx
    004061cacall fn_4061f0
    004061cfjmp 0x4061e6
    004061d1
    004061d1loc_4061d1:
    004061d1mov rcx, rbx
    004061d4mov r9l, r9l
    004061d7lea rdx, [rdx+r9]
    004061dbmovzx r8, [rsp+80]
    004061e1call fn_406100
    004061e6
    004061e6loc_4061e6:
    004061e6mov rax, rbx
    004061e9add rsp, 32
    004061edpop rbx
    004061eeret
    004061b0
    004061ef
    004061ef // align 0x10
    004061f0
    004061f0fn_4061f0:
    004061f0push rbx
    004061f1sub rsp, 32
    004061f5mov rbx, rcx
    004061f8mov rcx, rbx
    004061fbmov edx, 16
    00406200xor r8, r8
    00406203call fn_4069b0
    00406208mov rax, rbx
    0040620badd rsp, 32
    0040620fpop rbx
    00406210ret
    004061f0
    00406211
    00406211 // align 0x10
    00406220
    00406220fn_406220:
    00406220cmp [rcx], 0
    00406224jne 0x40622d
    00406226cmp [rcx+8], 0
    0040622bje 0x406231
    0040622d
    0040622dloc_40622d:
    0040622dxor eax, eax
    0040622fjmp 0x406233
    00406231
    00406231loc_406231:
    00406231mov al, 1
    00406233
    00406233loc_406233:
    00406233ret
    00406220
    00406234
    00406234 // align 0x10
    00406240
    00406240fn_406240:
    00406240movsd_xmm [rsp+8], x0
    00406246mov eax, [rsp+12]
    0040624aand eax, 0x7ff00000
    0040624fcmp eax, 0x43300000
    00406254jge 0x40626d
    00406256cmp eax, 0x3fe00000
    0040625bjbe 0x406271
    0040625dcvttsd2si rax, x0
    00406262cvtsi2sd x4, rax
    00406267subsd x0, x4
    0040626bjmp 0x406271
    0040626d
    0040626dloc_40626d:
    0040626dxorpd x0, x0
    00406271
    00406271loc_406271:
    00406271ret
    00406240
    00406272
    00406272 // align 0x10
    00406280
    00406280fn_406280:
    00406280cvtsd2si rax, x0
    00406285ret
    00406280
    00406286
    00406286 // align 0x10
    00406290
    00406290fn_406290:
    00406290cvttsd2si rax, x0
    00406295ret
    00406290
    00406296
    00406296 // align 0x10
    004062a0
    004062a0fn_4062a0:
    004062a0movsd_xmm x1, [rip+0x53cf0]
    004062a8pand x0, x1
    004062acret
    004062a0
    004062ad
    004062ad // align 0x10
    004062b0
    004062b0fn_4062b0:
    004062b0mov [rcx+746], 0
    004062b7mov [rcx+747], 0
    004062beret
    004062b0
    004062bf
    004062bf // align 0x10
    004062c0
    004062c0fn_4062c0:
    004062c0push rsi
    004062c1push rbx
    004062c2sub rsp, 40
    004062c6mov rbx, rcx
    004062c9mov esi, edx
    004062cbmovzx rax, [rbx+8]
    004062d0cmp ax, -10320
    004062d5jb 0x4062de
    004062d7cmp ax, -10317
    004062dcjbe 0x4062e5
    004062de
    004062deloc_4062de:
    004062demov ebx, 102
    004062e3jmp 0x406322
    004062e5
    004062e5loc_4062e5:
    004062e5mov rcx, rbx
    004062e8call fn_4062b0
    004062edcmp [rbx+8], -10320
    004062f3je 0x4062fd
    004062f5mov rcx, rbx
    004062f8call fn_406940
    004062fd
    004062fdloc_4062fd:
    004062fdmov [rbx+8], si
    00406301cmp [rbx+96], 0
    00406306jne 0x40631a
    00406308cmp [rbx+32], 0
    0040630djne 0x40631a
    0040630flea rax, [rip+442]
    00406316mov [rbx+32], rax
    0040631a
    0040631aloc_40631a:
    0040631amov rcx, rbx
    0040631dcall [rbx+32]
    00406320mov ebx, eax
    00406322
    00406322loc_406322:
    00406322test ebx, ebx
    00406324je 0x40632d
    00406326mov ecx, ebx
    00406328call fn_405a70
    0040632d
    0040632dloc_40632d:
    0040632dmov eax, ebx
    0040632fadd rsp, 40
    00406333pop rbx
    00406334pop rsi
    00406335ret
    004062c0
    00406336
    00406336 // align 0x10
    00406340
    00406340fn_406340:
    00406340sub rsp, 40
    00406344mov dx, -10319
    00406348call fn_4062c0
    0040634dadd rsp, 40
    00406351ret
    00406340
    00406352
    00406352 // align 0x10
    00406360
    00406360fn_406360:
    00406360sub rsp, 40
    00406364mov dx, -10318
    00406368call fn_4062c0
    0040636dadd rsp, 40
    00406371ret
    00406360
    00406372
    00406372 // align 0x10
    00406380
    00406380fn_406380:
    00406380sub rsp, 40
    00406384mov dx, -10317
    00406388call fn_4062c0
    0040638dadd rsp, 40
    00406391ret
    00406380
    00406392
    00406392 // align 0x10
    004063a0
    004063a0fn_4063a0:
    004063a0sub rsp, 40
    004063a4mov [rcx+20], 0
    004063abmov [rcx+16], 0
    004063b2mov rax, [rcx]
    004063b5mov rdx, [rcx+24]
    004063b9mov r8l, [rcx+12]
    004063bdlea r9, [rcx+20]
    004063c1mov [rsp+32], 0
    004063camov rcx, rax
    004063cdcall ReadFile
    004063d2test eax, eax
    004063d4jne 0x4063e4
    004063d6call GetLastError
    004063dbcmp eax, 109
    004063dejne 0x4063e6
    004063e0xor eax, eax
    004063e2jmp 0x4063e6
    004063e4
    004063e4loc_4063e4:
    004063e4xor eax, eax
    004063e6
    004063e6loc_4063e6:
    004063e6add rsp, 40
    004063earet
    004063a0
    004063eb
    004063eb // align 0x10
    004063f0
    004063f0fn_4063f0:
    004063f0xor eax, eax
    004063f2ret
    004063f0
    004063f3
    004063f3 // align 0x10
    00406400
    00406400fn_406400:
    00406400push rbp
    00406401push rbx
    00406402sub rsp, 72
    00406406mov rbp, rsp
    00406409mov rbx, rcx
    0040640cmov eax, [rbx+16]
    0040640ftest eax, eax
    00406411jne 0x406417
    00406413xor eax, eax
    00406415jmp 0x406447
    00406417
    00406417loc_406417:
    00406417mov rcx, [rbx]
    0040641amov rdx, [rbx+24]
    0040641emov r8l, eax
    00406421lea r9, [rbp+60]
    00406425mov [rsp+32], 0
    0040642ecall WriteFile
    00406433test eax, eax
    00406435jne 0x40643e
    00406437call GetLastError
    0040643cjmp 0x406440
    0040643e
    0040643eloc_40643e:
    0040643exor eax, eax
    00406440
    00406440loc_406440:
    00406440mov [rbx+16], 0
    00406447
    00406447loc_406447:
    00406447lea rsp, [rbp+72]
    0040644bpop rbx
    0040644cpop rbp
    0040644dret
    00406400
    0040644e
    0040644e // align 0x10
    00406450
    00406450fn_406450:
    00406450sub rsp, 40
    00406454call CloseHandle
    00406459test eax, eax
    0040645bsetne al
    0040645eadd rsp, 40
    00406462ret
    00406450
    00406463
    00406463 // align 0x10
    00406470
    00406470fn_406470:
    00406470sub rsp, 40
    00406474mov [rcx+8], -10320
    0040647amov rcx, [rcx]
    0040647dcall fn_406450
    00406482test al, al
    00406484jne 0x40648d
    00406486call GetLastError
    0040648bjmp 0x40648f
    0040648d
    0040648dloc_40648d:
    0040648dxor eax, eax
    0040648f
    0040648floc_40648f:
    0040648fadd rsp, 40
    00406493ret
    00406470
    00406494
    00406494 // align 0x10
    004064a0
    004064a0fn_4064a0:
    004064a0push rbx
    004064a1sub rsp, 32
    004064a5mov rbx, rcx
    004064a8mov rcx, [rbx]
    004064abcall fn_406450
    004064b0mov [rbx+8], -10320
    004064b6call GetLastError
    004064bbadd rsp, 32
    004064bfpop rbx
    004064c0ret
    004064a0
    004064c1
    004064c1 // align 0x10
    004064d0
    004064d0fn_4064d0:
    004064d0push rbp
    004064d1push rsi
    004064d2push rbx
    004064d3sub rsp, 80
    004064d7mov rbp, rsp
    004064damov rbx, rcx
    004064ddxor esi, esi
    004064dfmov [rbx+16], 0
    004064e6mov [rbx+20], 0
    004064edmovzx rax, [rbx+8]
    004064f2sub ax, -10319
    004064f7test ax, ax
    004064faje 0x406514
    004064fcsub ax, 1
    00406500test ax, ax
    00406503je 0x40652b
    00406505sub ax, 1
    00406509test ax, ax
    0040650cjne 0x4067c2
    00406512jmp 0x406542
    00406514
    00406514loc_406514:
    00406514mov eax, 0xffffffff80000000
    00406519mov ecx, 3
    0040651elea rdx, [rip-389]
    00406525mov [rbx+40], rdx
    00406529jmp 0x406557
    0040652b
    0040652bloc_40652b:
    0040652bmov eax, 0x40000000
    00406530mov ecx, 2
    00406535lea rdx, [rip-316]
    0040653cmov [rbx+40], rdx
    00406540jmp 0x406557
    00406542
    00406542loc_406542:
    00406542mov eax, 0xffffffffc0000000
    00406547mov ecx, 3
    0040654clea rdx, [rip-339]
    00406553mov [rbx+40], rdx
    00406557
    00406557loc_406557:
    00406557lea rdx, [rip-366]
    0040655emov [rbx+48], rdx
    00406562cmp [rbx+96], 0
    00406567jne 0x406623
    0040656dcmp [rbx+24], 0
    00406572jne 0x406586
    00406574lea rax, [rbx+616]
    0040657bmov [rbx+24], rax
    0040657fmov [rbx+12], 128
    00406586
    00406586loc_406586:
    00406586lea rax, [rip-413]
    0040658dmov [rbx+56], rax
    00406591cmp [rbx+8], -10318
    00406597jne 0x4065bd
    00406599lea rax, [rip+0x5f0f8]
    004065a0cmp rbx, rax
    004065a3jne 0x4065ac
    004065a5mov eax, -12
    004065aajmp 0x4065b1
    004065ac
    004065acloc_4065ac:
    004065acmov eax, -11
    004065b1
    004065b1loc_4065b1:
    004065b1mov ecx, eax
    004065b3call GetStdHandle
    004065b8mov [rbx], rax
    004065bbjmp 0x4065ca
    004065bd
    004065bdloc_4065bd:
    004065bdmov ecx, -10
    004065c2call GetStdHandle
    004065c7mov [rbx], rax
    004065ca
    004065caloc_4065ca:
    004065cacmp [rbx+744], 0
    004065d2jne 0x406787
    004065d8mov rcx, [rbx]
    004065dbcall GetFileType
    004065e0cmp eax, 2
    004065e3jne 0x40660f
    004065e5cmp [rbx+8], -10318
    004065ebjne 0x4065fe
    004065edcall GetConsoleOutputCP
    004065f2mov [rbx+744], ax
    004065f9jmp 0x406787
    004065fe
    004065feloc_4065fe:
    004065fecall GetConsoleCP
    00406603mov [rbx+744], ax
    0040660ajmp 0x406787
    0040660f
    0040660floc_40660f:
    0040660fmovzx rax, [rip+0x5f401]
    00406617mov [rbx+744], ax
    0040661ejmp 0x406787
    00406623
    00406623loc_406623:
    00406623lea rdx, [rip-442]
    0040662amov [rbx+56], rdx
    0040662elea rdx, [rbx+96]
    00406632mov r8l, 1
    00406638xor r9, r9
    0040663bmov [rsp+32], ecx
    0040663fmov [rsp+40], 128
    00406647mov [rsp+48], 0
    00406650mov rcx, rdx
    00406653mov edx, eax
    00406655call CreateFileW
    0040665acmp rax, -1
    0040665ejne 0x406672
    00406660mov [rbx+8], -10320
    00406666call GetLastError
    0040666bmov esi, eax
    0040666djmp 0x4067c2
    00406672
    00406672loc_406672:
    00406672mov [rbx], rax
    00406675cmp [rbx+8], -10317
    0040667bjne 0x40676e
    00406681mov [rbx+8], -10318
    00406687mov rcx, [rbx]
    0040668axor edx, edx
    0040668ccall GetFileSize
    00406691cmp eax, -1
    00406694jne 0x4066a5
    00406696mov rcx, rbx
    00406699call fn_4064a0
    0040669emov esi, eax
    004066a0jmp 0x4067c2
    004066a5
    004066a5loc_4066a5:
    004066a5sub eax, 128
    004066abtest eax, eax
    004066adjge 0x4066b1
    004066afxor eax, eax
    004066b1
    004066b1loc_4066b1:
    004066b1mov rcx, [rbx]
    004066b4mov edx, eax
    004066b6xor r8, r8
    004066b9xor r9, r9
    004066bccall SetFilePointer
    004066c1cmp eax, -1
    004066c4je 0x4066ec
    004066c6mov rcx, [rbx]
    004066c9lea rdx, [rbx+616]
    004066d0mov r8l, 128
    004066d6lea r9, [rbp+76]
    004066damov [rsp+32], 0
    004066e3call ReadFile
    004066e8test eax, eax
    004066eajne 0x4066fb
    004066ec
    004066ecloc_4066ec:
    004066ecmov rcx, rbx
    004066efcall fn_4064a0
    004066f4mov esi, eax
    004066f6jmp 0x4067c2
    004066fb
    004066fbloc_4066fb:
    004066fbmovzx rax, [rbx+10]
    00406700test ax, 1
    00406705je 0x40676e
    00406707cmp [rbp+76], 0
    0040670bjbe 0x40676e
    0040670dxor ecx, ecx
    0040670fmov edx, [rbp+76]
    00406712sub edx, 1
    00406715mov eax, ecx
    00406717cmp eax, edx
    00406719ja 0x40676d
    0040671bsub edx, ecx
    0040671dadd edx, 1
    00406720lea rcx, [rbx+616]
    00406727
    00406727loc_406727:
    00406727cmp [rcx], 26
    0040672ajne 0x40675f
    0040672cmov rcx, [rbx]
    0040672fmov edx, eax
    00406731sub edx, [rbp+76]
    00406734xor r8, r8
    00406737mov r9l, 2
    0040673dcall SetFilePointer
    00406742cmp eax, -1
    00406745je 0x406753
    00406747mov rcx, [rbx]
    0040674acall SetEndOfFile
    0040674ftest eax, eax
    00406751jne 0x40676d
    00406753
    00406753loc_406753:
    00406753mov rcx, rbx
    00406756call fn_4064a0
    0040675bmov esi, eax
    0040675djmp 0x4067c2
    0040675f
    0040675floc_40675f:
    0040675fadd eax, 1
    00406762add rcx, 1
    00406766sub edx, 1
    00406769test edx, edx
    0040676bjne 0x406727
    0040676d
    0040676dloc_40676d:
    0040676dnop
    0040676e
    0040676eloc_40676e:
    0040676ecmp [rbx+744], 0
    00406776jne 0x406787
    00406778movzx rax, [rip+0x5f298]
    00406780mov [rbx+744], ax
    00406787
    00406787loc_406787:
    00406787cmp [rbx+8], -10319
    0040678dje 0x4067c2
    0040678fmov rcx, [rbx]
    00406792call GetFileType
    00406797sub eax, 1
    0040679acmp eax, -1
    0040679dje 0x4067a8
    0040679fsub eax, 1
    004067a2test eax, eax
    004067a4jne 0x4067c2
    004067a6jmp 0x4067b7
    004067a8
    004067a8loc_4067a8:
    004067a8mov rcx, rbx
    004067abcall fn_4064a0
    004067b0mov esi, 105
    004067b5jmp 0x4067c2
    004067b7
    004067b7loc_4067b7:
    004067b7lea rax, [rip-958]
    004067bemov [rbx+48], rax
    004067c2
    004067c2loc_4067c2:
    004067c2mov eax, esi
    004067c4lea rsp, [rbp+80]
    004067c8pop rbx
    004067c9pop rsi
    004067capop rbp
    004067cbret
    004064d0