File trigona_be6dfedd91e1ebc81d58a61b05b0ef93322425b247636a0f7f5c3eeebbc52edd.exe
Function:
    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
    004067cc
    004067cc // align 0x10
    004067d0
    004067d0fn_4067d0:
    004067d0push rbp
    004067d1push rdi
    004067d2push rsi
    004067d3push rbx
    004067d4sub rsp, 56
    004067d8mov rbp, rsp
    004067dbmov rbx, rcx
    004067demov rsi, rdx
    004067e1mov edi, r8l
    004067e4mov rcx, rbx
    004067e7mov edx, 754
    004067ecxor r8, r8
    004067efcall fn_4069b0
    004067f4lea rax, [rbx+616]
    004067fbmov [rbx+24], rax
    004067ffmov [rbx+8], -10320
    00406805movzx ax, [rip+0x5282e]
    0040680dmov [rbx+10], ax
    00406811test di, di
    00406814jne 0x406827
    00406816movzx rax, [rip+0x5f1fa]
    0040681emov [rbx+744], ax
    00406825jmp 0x40682e
    00406827
    00406827loc_406827:
    00406827mov [rbx+744], di
    0040682e
    0040682eloc_40682e:
    0040682emov [rbx+12], 128
    00406835lea rax, [rip-876]
    0040683cmov [rbx+32], rax
    00406840mov rcx, rsi
    00406843call fn_40c5a0
    00406848mov edi, eax
    0040684acmp edi, 259
    00406850jle 0x406861
    00406852mov ecx, 3
    00406857call fn_405a70
    0040685cmov edi, 259
    00406861
    00406861loc_406861:
    00406861lea rax, [rbx+96]
    00406865mov [rbp+40], rax
    00406869mov rcx, rsi
    0040686cmov rdx, [rbp+40]
    00406870mov r8l, edi
    00406873add r8l, r8l
    00406876movsxd r8, r8l
    00406879call fn_405ac0
    0040687emovsxd rdi, edi
    00406881mov [rbx+2*rdi+96], 0
    00406888mov [rbx+746], 0
    0040688fxor eax, eax
    00406891lea rsp, [rbp+56]
    00406895pop rbx
    00406896pop rsi
    00406897pop rdi
    00406898pop rbp
    00406899ret
    004067d0
    0040689a
    0040689a // align 0x10
    004068a0
    004068a0fn_4068a0:
    004068a0push rbx
    004068a1sub rsp, 32
    004068a5mov rax, rdx
    004068a8movzx rdx, [rcx+8]
    004068adsub dx, -10319
    004068b2test dx, dx
    004068b5je 0x4068c7
    004068b7sub dx, 1
    004068bbcmp dx, 2
    004068bfjae 0x4068cb
    004068c1call rax
    004068c3mov ebx, eax
    004068c5jmp 0x4068ec
    004068c7
    004068c7loc_4068c7:
    004068c7xor ebx, ebx
    004068c9jmp 0x4068ec
    004068cb
    004068cbloc_4068cb:
    004068cblea rax, [rip+0x5eace]
    004068d2cmp rcx, rax
    004068d5je 0x4068e3
    004068d7lea rax, [rip+0x5edba]
    004068decmp rcx, rax
    004068e1jne 0x4068e7
    004068e3
    004068e3loc_4068e3:
    004068e3xor ebx, ebx
    004068e5jmp 0x4068ec
    004068e7
    004068e7loc_4068e7:
    004068e7mov ebx, 103
    004068ec
    004068ecloc_4068ec:
    004068ectest ebx, ebx
    004068eeje 0x4068f7
    004068f0mov ecx, ebx
    004068f2call fn_405a70
    004068f7
    004068f7loc_4068f7:
    004068f7mov eax, ebx
    004068f9add rsp, 32
    004068fdpop rbx
    004068feret
    004068a0
    004068ff
    004068ff // align 0x10
    00406900
    00406900fn_406900:
    00406900sub rsp, 40
    00406904mov rax, rcx
    00406907mov rdx, [rcx+40]
    0040690bmov rcx, rax
    0040690ecall fn_4068a0
    00406913add rsp, 40
    00406917ret
    00406900
    00406918
    00406918 // align 0x10
    00406920
    00406920fn_406920:
    00406920sub rsp, 40
    00406924mov rax, rcx
    00406927mov rdx, [rcx+48]
    0040692bmov rcx, rax
    0040692ecall fn_4068a0
    00406933add rsp, 40
    00406937ret
    00406920
    00406938
    00406938 // align 0x10
    00406940
    00406940fn_406940:
    00406940push rsi
    00406941push rbx
    00406942sub rsp, 40
    00406946mov rbx, rcx
    00406949xor esi, esi
    0040694bmovzx rax, [rbx+8]
    00406950cmp ax, -10319
    00406955jb 0x40698b
    00406957cmp ax, -10317
    0040695cja 0x40698b
    0040695eand ax, -10318
    00406963cmp ax, -10318
    00406968jne 0x406972
    0040696amov rcx, rbx
    0040696dcall [rbx+40]
    00406970mov esi, eax
    00406972
    00406972loc_406972:
    00406972test esi, esi
    00406974jne 0x40697e
    00406976mov rcx, rbx
    00406979call [rbx+56]
    0040697cmov esi, eax
    0040697e
    0040697eloc_40697e:
    0040697etest esi, esi
    00406980je 0x4069a1
    00406982mov ecx, esi
    00406984call fn_405a70
    00406989jmp 0x4069a1
    0040698b
    0040698bloc_40698b:
    0040698blea rax, [rip+0x5e716]
    00406992cmp rbx, rax
    00406995je 0x4069a1
    00406997mov ecx, 103
    0040699ccall fn_405a70
    004069a1
    004069a1loc_4069a1:
    004069a1mov eax, esi
    004069a3add rsp, 40
    004069a7pop rbx
    004069a8pop rsi
    004069a9ret
    00406940
    004069aa
    004069aa // align 0x10
    004069b0
    004069b0fn_4069b0:
    004069b0test rdx, rdx
    004069b3jle 0x406afb
    004069b9mov eax, [rip+0x5f04d]
    004069bftest eax, 512
    004069c4jne 0x406aed
    004069camovzx rax, r8b
    004069cecmp rdx, 16
    004069d2jl 0x406acc
    004069d8test rax, rax
    004069dbje 0x4069f1
    004069ddmov r8, rax
    004069e0shl rax, 8
    004069e4or rax, r8
    004069e7mov r8, rax
    004069eashl rax, 16
    004069eeor rax, r8
    004069f1
    004069f1loc_4069f1:
    004069f1movd x0, eax
    004069f5shufps x0, x0, 0
    004069f9mov r8, rcx
    004069fcand r8, 15
    00406a00je 0x406a17
    00406a02sub r8, 16
    00406a06add rdx, r8
    00406a09sub rcx, r8
    00406a0cnop
    00406a0d
    00406a0dloc_406a0d:
    00406a0dmov [rcx+r8], al
    00406a11add r8, 1
    00406a15jne 0x406a0d
    00406a17
    00406a17loc_406a17:
    00406a17mov r8, 128
    00406a1ecmp rdx, r8
    00406a21jl 0x406a5f
    00406a23sub rdx, r8
    00406a26nop [rax]
    00406a2d
    00406a2dloc_406a2d:
    00406a2dmovdqa [rcx], x0
    00406a31movdqa [rcx+16], x0
    00406a36movdqa [rcx+32], x0
    00406a3bmovdqa [rcx+48], x0
    00406a40movdqa [rcx+64], x0
    00406a45movdqa [rcx+80], x0
    00406a4amovdqa [rcx+96], x0
    00406a4fmovdqa [rcx+112], x0
    00406a54add rcx, r8
    00406a57sub rdx, r8
    00406a5ajg 0x406a2d
    00406a5cadd rdx, r8
    00406a5f
    00406a5floc_406a5f:
    00406a5fshr r8, 1
    00406a62cmp rdx, r8
    00406a65jl 0x406a8b
    00406a67sub rdx, r8
    00406a6anop [rax]
    00406a6d
    00406a6dloc_406a6d:
    00406a6dmovdqa [rcx], x0
    00406a71movdqa [rcx+16], x0
    00406a76movdqa [rcx+32], x0
    00406a7bmovdqa [rcx+48], x0
    00406a80add rcx, r8
    00406a83sub rdx, r8
    00406a86jg 0x406a6d
    00406a88add rdx, r8
    00406a8b
    00406a8bloc_406a8b:
    00406a8bshr r8, 1
    00406a8ecmp rdx, r8
    00406a91jl 0x406ab1
    00406a93sub rdx, r8
    00406a96nop [rax]
    00406a9d
    00406a9dloc_406a9d:
    00406a9dmovdqa [rcx], x0
    00406aa1movdqa [rcx+16], x0
    00406aa6add rcx, r8
    00406aa9sub rdx, r8
    00406aacjg 0x406a9d
    00406aaeadd rdx, r8
    00406ab1
    00406ab1loc_406ab1:
    00406ab1shr r8, 1
    00406ab4cmp rdx, r8
    00406ab7jl 0x406acc
    00406ab9sub rdx, r8
    00406abcnop
    00406abd
    00406abdloc_406abd:
    00406abdmovdqa [rcx], x0
    00406ac1add rcx, r8
    00406ac4sub rdx, r8
    00406ac7jg 0x406abd
    00406ac9add rdx, r8
    00406acc
    00406accloc_406acc:
    00406acctest rdx, rdx
    00406acfje 0x406afb
    00406ad1add rcx, rdx
    00406ad4neg rdx
    00406ad7nop [rax+rax]
    00406add
    00406addloc_406add:
    00406addmov [rcx+rdx], al
    00406ae0add rdx, 1
    00406ae4jne 0x406add
    00406ae6ret
    00406ae7
    00406ae7 66 0f 1f 44 00 00 f..D..
    00406aed
    00406aedloc_406aed:
    00406aedpush rdi
    00406aeecld
    00406aefmov rdi, rcx
    00406af2mov rcx, rdx
    00406af5mov al, r8b
    00406af8rep stosb [rdi], al
    00406afapop rdi
    00406afb
    00406afbloc_406afb:
    00406afbret
    004069b0
    00406afc
    00406afc // align 0x10
    00406b00
    00406b00fn_406b00:
    00406b00push rbx
    00406b01sub rsp, 32
    00406b05mov rbx, rcx
    00406b08lea rax, [rip+0x5e599]
    00406b0fcmp rbx, rax
    00406b12jne 0x406b28
    00406b14movzx ax, [rip+0x5251f]
    00406b1cmov [rbx+10], ax
    00406b20mov rcx, rbx
    00406b23call fn_406340
    00406b28
    00406b28loc_406b28:
    00406b28cmp [rbx+8], -10319
    00406b2esete bl
    00406b31test bl, bl
    00406b33jne 0x406b3f
    00406b35mov ecx, 104
    00406b3acall fn_405a70
    00406b3f
    00406b3floc_406b3f:
    00406b3fmov eax, ebx
    00406b41add rsp, 32
    00406b45pop rbx
    00406b46ret
    00406b00
    00406b47
    00406b47 // align 0x10
    00406b50
    00406b50fn_406b50:
    00406b50push rdi
    00406b51push rsi
    00406b52push rbx
    00406b53sub rsp, 32
    00406b57mov rbx, rcx
    00406b5amov rsi, rdx
    00406b5dmov dil, 26
    00406b60mov [rsi], 1
    00406b63cmp [rbx+8], -10319
    00406b69je 0x406b77
    00406b6bmov rcx, rbx
    00406b6ecall fn_406b00
    00406b73test al, al
    00406b75je 0x406be1
    00406b77
    00406b77loc_406b77:
    00406b77mov eax, [rbx+16]
    00406b7acmp eax, [rbx+20]
    00406b7djb 0x406bb9
    00406b7fmov rcx, rbx
    00406b82call [rbx+40]
    00406b85test eax, eax
    00406b87je 0x406b92
    00406b89mov ecx, eax
    00406b8bcall fn_405a70
    00406b90jmp 0x406be1
    00406b92
    00406b92loc_406b92:
    00406b92mov eax, [rbx+16]
    00406b95cmp eax, [rbx+20]
    00406b98jb 0x406bb9
    00406b9amovzx rcx, [rbx+10]
    00406b9ftest cx, 1
    00406ba4je 0x406be1
    00406ba6mov rcx, [rbx+24]
    00406baamov eax, eax
    00406bacmov [rcx+rax], 26
    00406bb0lea rax, [rbx+20]
    00406bb4add [rax], 1
    00406bb7jmp 0x406be1
    00406bb9
    00406bb9loc_406bb9:
    00406bb9mov rax, [rbx+24]
    00406bbdmov ecx, [rbx+16]
    00406bc0movzx rdi, [rax+rcx]
    00406bc5movzx rax, [rbx+10]
    00406bcatest ax, 1
    00406bcfje 0x406bd7
    00406bd1cmp dil, 26
    00406bd5je 0x406be1
    00406bd7
    00406bd7loc_406bd7:
    00406bd7lea rax, [rbx+16]
    00406bdbadd [rax], 1
    00406bdemov [rsi], 0
    00406be1
    00406be1loc_406be1:
    00406be1mov eax, edi
    00406be4add rsp, 32
    00406be8pop rbx
    00406be9pop rsi
    00406beapop rdi
    00406bebret
    00406b50
    00406bec
    00406bec // align 0x10
    00406bf0
    00406bf0fn_406bf0:
    00406bf0push rdi
    00406bf1push rsi
    00406bf2push rbx
    00406bf3sub rsp, 32
    00406bf7mov rbx, rcx
    00406bfamov rsi, rdx
    00406bfdmov di, 26
    00406c01mov [rsi], 1
    00406c04cmp [rbx+8], -10319
    00406c0aje 0x406c18
    00406c0cmov rcx, rbx
    00406c0fcall fn_406b00
    00406c14test al, al
    00406c16je 0x406c82
    00406c18
    00406c18loc_406c18:
    00406c18mov eax, [rbx+16]
    00406c1bcmp eax, [rbx+20]
    00406c1ejb 0x406c5a
    00406c20mov rcx, rbx
    00406c23call [rbx+40]
    00406c26test eax, eax
    00406c28je 0x406c33
    00406c2amov ecx, eax
    00406c2ccall fn_405a70
    00406c31jmp 0x406c82
    00406c33
    00406c33loc_406c33:
    00406c33mov eax, [rbx+16]
    00406c36cmp eax, [rbx+20]
    00406c39jb 0x406c5a
    00406c3bmovzx rcx, [rbx+10]
    00406c40test cx, 1
    00406c45je 0x406c82
    00406c47mov rcx, [rbx+24]
    00406c4bmov eax, eax
    00406c4dmov [rcx+rax], 26
    00406c51lea rax, [rbx+20]
    00406c55add [rax], 1
    00406c58jmp 0x406c82
    00406c5a
    00406c5aloc_406c5a:
    00406c5amov rax, [rbx+24]
    00406c5emov ecx, [rbx+16]
    00406c61movzx rdi, [rax+rcx]
    00406c66movzx rax, [rbx+10]
    00406c6btest ax, 1
    00406c70je 0x406c78
    00406c72cmp di, 26
    00406c76je 0x406c82
    00406c78
    00406c78loc_406c78:
    00406c78lea rax, [rbx+16]
    00406c7cadd [rax], 2
    00406c7fmov [rsi], 0
    00406c82
    00406c82loc_406c82:
    00406c82mov eax, edi
    00406c84add rsp, 32
    00406c88pop rbx
    00406c89pop rsi
    00406c8apop rdi
    00406c8bret
    00406bf0
    00406c8c
    00406c8c // align 0x10
    00406c90
    00406c90fn_406c90:
    00406c90push rbp
    00406c91push rbx
    00406c92sub rsp, 120
    00406c96mov rbp, rsp
    00406c99mov [rbp+56], rcx
    00406c9dmov [rbp+64], rdx
    00406ca1mov [rbp+76], r8w
    00406ca6mov [rbp+96], 0
    00406caenop
    00406cafmov rax, [rbp+64]
    00406cb3mov [rax], 0
    00406cb6mov rax, [rbp+56]
    00406cbamovzx rax, [rax+746]
    00406cc2test al, al
    00406cc4jge 0x406d2f
    00406cc6mov rcx, [rbp+56]
    00406ccacmp [rcx+747], 0
    00406cd1je 0x406ce0
    00406cd3mov rax, [rbp+56]
    00406cd7mov [rax+746], 0
    00406cdejmp 0x406d2f
    00406ce0
    00406ce0loc_406ce0:
    00406ce0lea rcx, [rbp+89]
    00406ce4mov edx, 6
    00406ce9mov r8, [rbp+56]
    00406cedlea r8, [r8+748]
    00406cf4movsx r9, al
    00406cf8neg r9l
    00406cfbmovzx rax, [rbp+76]
    00406d00movzx eax, ax
    00406d03mov [rsp+32], eax
    00406d07call fn_40bf50
    00406d0cmov ebx, eax
    00406d0emov rax, [rbp+56]
    00406d12mov [rax+746], bl
    00406d18lea rcx, [rbp+89]
    00406d1cmov rax, [rbp+56]
    00406d20lea rdx, [rax+748]
    00406d27movsxd r8, ebx
    00406d2acall fn_405ac0
    00406d2f
    00406d2floc_406d2f:
    00406d2fmov rax, [rbp+56]
    00406d33cmp [rax+746], 0
    00406d3ajle 0x406d59
    00406d3cmov rcx, [rbp+56]
    00406d40movzx rax, [rcx+747]
    00406d48movzx rax, [rcx+rax+748]
    00406d51mov [rbp+79], al
    00406d54jmp 0x406e72
    00406d59
    00406d59loc_406d59:
    00406d59movzx rax, [rbp+76]
    00406d5emov rcx, [rbp+56]
    00406d62cmp [rcx+744], ax
    00406d69jne 0x406d98
    00406d6bmov rcx, [rbp+56]
    00406d6fmov rdx, [rbp+64]
    00406d73call fn_406b50
    00406d78mov [rbp+79], al
    00406d7bmov rax, [rbp+64]
    00406d7fcmp [rax], 0
    00406d82jne 0x406e71
    00406d88mov rax, [rbp+56]
    00406d8clea rax, [rax+16]
    00406d90sub [rax], 1
    00406d93jmp 0x406e71
    00406d98
    00406d98loc_406d98:
    00406d98mov ebx, 1
    00406d9dmov rcx, [rbp+56]
    00406da1mov rdx, [rbp+64]
    00406da5call fn_406ef0
    00406daamov [rbp+106], ax
    00406daemov rax, [rbp+64]
    00406db2cmp [rax], 0
    00406db5jne 0x406e6c
    00406dbbmovzx rax, [rbp+106]
    00406dc0cmp ax, -10240
    00406dc5jb 0x406dfb
    00406dc7cmp ax, -9216
    00406dccjae 0x406dfb
    00406dceadd ebx, 1
    00406dd1mov rcx, [rbp+56]
    00406dd5call fn_407220
    00406ddamov rcx, [rbp+56]
    00406ddemov rdx, [rbp+64]
    00406de2call fn_406ef0
    00406de7mov [rbp+108], ax
    00406debmov rax, [rbp+64]
    00406defcmp [rax], 0
    00406df2je 0x406dfb
    00406df4mov al, 26
    00406df6mov [rbp+79], al
    00406df9jmp 0x406e72
    00406dfb
    00406dfbloc_406dfb:
    00406dfbmov rcx, [rbp+56]
    00406dffcall fn_407220
    00406e04lea rcx, [rbp+96]
    00406e08lea rdx, [rbp+106]
    00406e0cmov r8l, ebx
    00406e0fmovzx r9, [rbp+76]
    00406e14call fn_40c2b0
    00406e19mov rcx, [rbp+96]
    00406e1dcall fn_40c570
    00406e22mov ebx, eax
    00406e24test ebx, ebx
    00406e26jne 0x406e2f
    00406e28xor eax, eax
    00406e2amov [rbp+79], al
    00406e2djmp 0x406e71
    00406e2f
    00406e2floc_406e2f:
    00406e2flea rcx, [rbp+96]
    00406e33call fn_40c690
    00406e38mov rcx, rax
    00406e3bmov rax, [rbp+56]
    00406e3flea rdx, [rax+748]
    00406e46movsxd r8, ebx
    00406e49call fn_405ac0
    00406e4emov rax, [rbp+56]
    00406e52mov [rax+747], 0
    00406e59mov [rax+746], bl
    00406e5fmov rax, [rbp+96]
    00406e63movzx rax, [rax]
    00406e67mov [rbp+79], al
    00406e6ajmp 0x406e71
    00406e6c
    00406e6cloc_406e6c:
    00406e6cmov al, 26
    00406e6emov [rbp+79], al
    00406e71
    00406e71loc_406e71:
    00406e71nop
    00406e72
    00406e72loc_406e72:
    00406e72lea rcx, [rbp+96]
    00406e76call fn_40bd40
    00406e7bmovzx rax, [rbp+79]
    00406e80lea rsp, [rbp+120]
    00406e84pop rbx
    00406e85pop rbp
    00406e86ret
    00406c90
    00406e87
    00406e87 90 48 8d 04 05 00 00 00 00 .H.......
    00406e90
    00406e90fn_406e90:
    00406e90push rbp
    00406e91sub rsp, 32
    00406e95mov rbp, rsp
    00406e98lea rcx, [rdx+96]
    00406e9ccall fn_40bd40
    00406ea1lea rsp, [rbp+32]
    00406ea5pop rbp
    00406ea6ret
    00406e90
    00406ea7
    00406ea7 // align 0x10
    00406eb0
    00406eb0fn_406eb0:
    00406eb0cmp [rcx+746], 0
    00406eb7jle 0x406edc
    00406eb9lea rax, [rcx+747]
    00406ec0add [rax], 1
    00406ec3movzx rax, [rcx+746]
    00406ecbcmp al, [rcx+747]
    00406ed1jne 0x406ee3
    00406ed3mov [rcx+746], 0
    00406edajmp 0x406ee3
    00406edc
    00406edcloc_406edc:
    00406edclea rax, [rcx+16]
    00406ee0add [rax], 1
    00406ee3
    00406ee3loc_406ee3:
    00406ee3ret
    00406eb0
    00406ee4
    00406ee4 // align 0x10
    00406ef0
    00406ef0fn_406ef0:
    00406ef0push rbp
    00406ef1push rdi
    00406ef2push rsi
    00406ef3push rbx
    00406ef4sub rsp, 120
    00406ef8mov rbp, rsp
    00406efbmov [rbp+56], rcx
    00406effmov [rbp+64], rdx
    00406f03mov [rbp+96], 0
    00406f0bmov [rbp+88], 0
    00406f13nop
    00406f14mov rax, [rbp+64]
    00406f18mov [rax], 0
    00406f1bmov rax, [rbp+56]
    00406f1fmovzx rax, [rax+746]
    00406f27test al, al
    00406f29jle 0x406f9a
    00406f2bmov rcx, [rbp+56]
    00406f2fcmp [rcx+747], 0
    00406f36je 0x406f45
    00406f38mov rax, [rbp+56]
    00406f3cmov [rax+746], 0
    00406f43jmp 0x406f9a
    00406f45
    00406f45loc_406f45:
    00406f45lea rcx, [rbp+108]
    00406f49mov edx, 2
    00406f4emov r8, [rbp+56]
    00406f52lea r8, [r8+748]
    00406f59movsx r9, al
    00406f5dmov eax, [rip+0x5eab5]
    00406f63mov [rsp+32], eax
    00406f67call fn_40bfa0
    00406f6cmov edi, eax
    00406f6emov eax, edi
    00406f71neg al
    00406f73mov rcx, [rbp+56]
    00406f77mov [rcx+746], al
    00406f7dlea rcx, [rbp+108]
    00406f81mov rax, [rbp+56]
    00406f85lea rdx, [rax+748]
    00406f8cmov r8l, edi
    00406f8fadd r8l, r8l
    00406f92movsxd r8, r8l
    00406f95call fn_405ac0
    00406f9a
    00406f9aloc_406f9a:
    00406f9amov rax, [rbp+56]
    00406f9ecmp [rax+746], 0
    00406fa5jge 0x406fc5
    00406fa7mov rcx, [rbp+56]
    00406fabmovzx rax, [rcx+747]
    00406fb3movzx rax, [rcx+2*rax+748]
    00406fbcmov [rbp+78], ax
    00406fc0jmp 0x4071cf
    00406fc5
    00406fc5loc_406fc5:
    00406fc5mov rax, [rbp+56]
    00406fc9cmp [rax+744], 1200
    00406fd2jne 0x407002
    00406fd4mov rcx, [rbp+56]
    00406fd8mov rdx, [rbp+64]
    00406fdccall fn_406bf0
    00406fe1mov [rbp+78], ax
    00406fe5mov rax, [rbp+64]
    00406fe9cmp [rax], 0
    00406fecjne 0x4071ce
    00406ff2mov rax, [rbp+56]
    00406ff6lea rax, [rax+16]
    00406ffasub [rax], 2
    00406ffdjmp 0x4071ce
    00407002
    00407002loc_407002:
    00407002mov rcx, [rbp+56]
    00407006mov rdx, [rbp+64]
    0040700acall fn_406b50
    0040700fmov ebx, eax
    00407011mov rax, [rbp+64]
    00407015cmp [rax], 0
    00407018je 0x407027
    0040701amov ax, 26
    0040701emov [rbp+78], ax
    00407022jmp 0x4071cf
    00407027
    00407027loc_407027:
    00407027mov rax, [rbp+56]
    0040702bcmp [rax+744], -535
    00407034jne 0x4070d5
    0040703amov eax, ebx
    0040703csub al, -64
    0040703fcmp al, 31
    00407042ja 0x40705f
    00407044mov edx, 1
    00407049movzx rcx, al
    0040704dand ecx, 127
    00407050shl edx, cl
    00407052mov eax, [rip+448]
    00407058test edx, eax
    0040705asetne al
    0040705djmp 0x407061
    0040705f
    0040705floc_40705f:
    0040705fxor eax, eax
    00407061
    00407061loc_407061:
    00407061test al, al
    00407063je 0x40706f
    00407065mov edi, 2
    0040706ajmp 0x4070f2
    0040706f
    0040706floc_40706f:
    0040706fmov eax, ebx
    00407071sub al, -32
    00407074cmp al, 15
    00407077ja 0x407097
    00407079mov dx, 1
    0040707dmovzx cx, al
    00407081and cx, 127
    00407085shl edx, cl
    00407087movzx rax, [rip+397]
    0040708ftest dx, ax
    00407092setne al
    00407095jmp 0x407099
    00407097
    00407097loc_407097:
    00407097xor eax, eax
    00407099
    00407099loc_407099:
    00407099test al, al
    0040709bje 0x4070a4
    0040709dmov edi, 3
    004070a2jmp 0x4070f2
    004070a4
    004070a4loc_4070a4:
    004070a4mov ecx, ebx
    004070a6sub cl, -16
    004070a9cmp cl, 7
    004070acja 0x4070c1
    004070aemov al, 1
    004070b0shl eax, cl
    004070b2movzx rcx, [rip+356]
    004070batest al, cl
    004070bcsetne al
    004070bfjmp 0x4070c3
    004070c1
    004070c1loc_4070c1:
    004070c1xor eax, eax
    004070c3
    004070c3loc_4070c3:
    004070c3test al, al
    004070c5je 0x4070ce
    004070c7mov edi, 4
    004070ccjmp 0x4070f2
    004070ce
    004070celoc_4070ce:
    004070cemov edi, 1
    004070d3jmp 0x4070f2
    004070d5
    004070d5loc_4070d5:
    004070d5mov ecx, [rip+0x5e93d]
    004070dbmov edx, ebx
    004070ddcall IsDBCSLeadByteEx
    004070e2test eax, eax
    004070e4je 0x4070ed
    004070e6mov edi, 2
    004070ebjmp 0x4070f2
    004070ed
    004070edloc_4070ed:
    004070edmov edi, 1
    004070f2
    004070f2loc_4070f2:
    004070f2lea rcx, [rbp+96]
    004070f6mov edx, edi
    004070f8xor r8, r8
    004070fbcall fn_40cf30
    00407100lea rcx, [rbp+96]
    00407104mov rax, [rbp+56]
    00407108movzx rdx, [rax+744]
    00407110xor r8, r8
    00407113call fn_40dfb0
    00407118lea rcx, [rbp+96]
    0040711ccall fn_40c690
    00407121mov [rax], bl
    00407123mov esi, 2
    00407128sub edi, 1
    0040712btest edi, edi
    0040712djle 0x407158
    0040712f
    0040712floc_40712f:
    0040712fmov rcx, [rbp+56]
    00407133mov rdx, [rbp+64]
    00407137call fn_406b50
    0040713cmov ebx, eax
    0040713elea rcx, [rbp+96]
    00407142call fn_40c690
    00407147movsxd rcx, esi
    0040714amov [rax+rcx-1], bl
    0040714eadd esi, 1
    00407151sub edi, 1
    00407154test edi, edi
    00407156jg 0x40712f
    00407158
    00407158loc_407158:
    00407158nop
    00407159lea rcx, [rbp+88]
    0040715dmov rdx, [rbp+96]
    00407161call fn_40d7f0
    00407166mov rcx, [rbp+88]
    0040716acall fn_40c560
    0040716fmov edi, eax
    00407171test edi, edi
    00407173jle 0x4071c8
    00407175lea rcx, [rbp+88]
    00407179call fn_40c680
    0040717emov rcx, rax
    00407181mov rax, [rbp+56]
    00407185lea rdx, [rax+748]
    0040718cmov r8l, edi
    0040718fadd r8l, r8l
    00407192movsxd r8, r8l
    00407195call fn_405ac0
    0040719amov rax, [rbp+56]
    0040719emov [rax+747], 0
    004071a5mov rcx, [rbp+88]
    004071a9call fn_40c560
    004071aeneg al
    004071b0mov rcx, [rbp+56]
    004071b4mov [rcx+746], al
    004071bamov rax, [rbp+88]
    004071bemovzx rax, [rax]
    004071c2mov [rbp+78], ax
    004071c6jmp 0x4071ce
    004071c8
    004071c8loc_4071c8:
    004071c8xor eax, eax
    004071camov [rbp+78], ax
    004071ce
    004071celoc_4071ce:
    004071cenop
    004071cf
    004071cfloc_4071cf:
    004071cflea rcx, [rbp+88]
    004071d3call fn_40bcf0
    004071d8lea rcx, [rbp+96]
    004071dccall fn_40bd40
    004071e1movzx rax, [rbp+78]
    004071e6lea rsp, [rbp+120]
    004071eapop rbx
    004071ebpop rsi
    004071ecpop rdi
    004071edpop rbp
    004071eeret
    00406ef0
    004071ef
    004071ef // align 0x10
    004071f0
    004071f0fn_4071f0:
    004071f0push rbp
    004071f1push rbx
    004071f2sub rsp, 40
    004071f6mov rbp, rsp
    004071f9mov rbx, rdx
    004071fclea rcx, [rbx+88]
    00407200call fn_40bcf0
    00407205lea rcx, [rbx+96]
    00407209call fn_40bd40
    0040720elea rsp, [rbp+40]
    00407212pop rbx
    00407213pop rbp
    00407214ret
    004071f0
    00407215
    00407215 00 00 00 fc ff ff ff ff ff 1f cc ...........
    00407220
    00407220fn_407220:
    00407220cmp [rcx+746], 0
    00407227jge 0x407252
    00407229lea rax, [rcx+747]
    00407230add [rax], 1
    00407233movsx rax, [rcx+746]
    0040723bneg eax
    0040723dmovzx rdx, [rcx+747]
    00407245cmp eax, edx
    00407247jne 0x407259
    00407249mov [rcx+746], 0
    00407250jmp 0x407259
    00407252
    00407252loc_407252:
    00407252lea rax, [rcx+16]
    00407256add [rax], 2
    00407259
    00407259loc_407259:
    00407259ret
    00407220
    0040725a
    0040725a // align 0x10
    00407260
    00407260fn_407260:
    00407260mov [rcx+748], 13
    00407267mov [rcx+749], 10
    0040726emov [rcx+746], 2
    00407275mov [rcx+747], 0
    0040727cret
    00407260
    0040727d
    0040727d // align 0x10
    00407280
    00407280fn_407280:
    00407280push rbp
    00407281push r14
    00407283push r13
    00407285push rdi
    00407286push rsi
    00407287push rbx
    00407288sub rsp, 56
    0040728cmov rbp, rsp
    0040728fmov rbx, rcx
    00407292mov rsi, rdx
    00407295mov edi, r8l
    00407298mov r13, r9
    0040729bmov r14, rbx
    0040729emov [r13], 0
    004072a6cmp [rbx+8], -10319
    004072acje 0x4072be
    004072aemov rcx, rbx
    004072b1call fn_406b00
    004072b6test al, al
    004072b8je 0x407355
    004072be
    004072beloc_4072be:
    004072betest edi, edi
    004072c0jle 0x407355
    004072c6cmp [rbp+144], 0
    004072cejne 0x4072df
    004072d0movzx rax, [rip+0x5e740]
    004072d8mov [rbp+144], ax
    004072df
    004072dfloc_4072df:
    004072dftest edi, edi
    004072e1jle 0x407354
    004072e3
    004072e3loc_4072e3:
    004072e3mov rcx, rbx
    004072e6lea rdx, [rbp+47]
    004072eamovzx r8, [rbp+144]
    004072f2call fn_406c90
    004072f7cmp [rbp+47], 0
    004072fbjne 0x407355
    004072fdcmp al, 10
    00407300je 0x407355
    00407302cmp al, 13
    00407305jne 0x40733a
    00407307mov rcx, rbx
    0040730acall fn_406eb0
    0040730fmov rcx, rbx
    00407312lea rdx, [rbp+47]
    00407316movzx r8, [rbp+144]
    0040731ecall fn_406c90
    00407323cmp al, 10
    00407326jne 0x407350
    00407328mov rcx, rbx
    0040732bcall fn_406eb0
    00407330mov rcx, rbx
    00407333call fn_407260
    00407338jmp 0x407355
    0040733a
    0040733aloc_40733a:
    0040733amov [rsi], al
    0040733cmov rcx, rbx
    0040733fcall fn_406eb0
    00407344add rsi, 1
    00407348sub edi, 1
    0040734badd [r13], 1
    00407350
    00407350loc_407350:
    00407350test edi, edi
    00407352jg 0x4072e3
    00407354
    00407354loc_407354:
    00407354nop
    00407355
    00407355loc_407355:
    00407355mov rax, r14
    00407358lea rsp, [rbp+56]
    0040735cpop rbx
    0040735dpop rsi
    0040735epop rdi
    0040735fpop r13
    00407361pop r14
    00407363pop rbp
    00407364ret
    00407280