File trigona_be6dfedd91e1ebc81d58a61b05b0ef93322425b247636a0f7f5c3eeebbc52edd.exe
Function:
    00422df0
    00422df0fn_422df0:
    00422df0xor eax, eax
    00422df2cmp [rcx], 0
    00422df6je 0x422e43
    00422df8cmp [rdx], 0
    00422dfcje 0x422e43
    00422dfejmp 0x422e39
    00422e00
    00422e00loc_422e00:
    00422e00cmp r8w, [rdx]
    00422e04jne 0x422e35
    00422e06lea r8, [rcx+2]
    00422e0alea r9, [rdx+2]
    00422e0e
    00422e0eloc_422e0e:
    00422e0ecmp [r9], 0
    00422e13jne 0x422e1a
    00422e15mov rax, rcx
    00422e18jmp 0x422e43
    00422e1a
    00422e1aloc_422e1a:
    00422e1amovzx r10, [r8]
    00422e1ecmp r10w, [r9]
    00422e22jne 0x422e34
    00422e24test r10w, r10w
    00422e28je 0x422e34
    00422e2aadd r8, 2
    00422e2eadd r9, 2
    00422e32jmp 0x422e0e
    00422e34
    00422e34loc_422e34:
    00422e34nop
    00422e35
    00422e35loc_422e35:
    00422e35add rcx, 2
    00422e39
    00422e39loc_422e39:
    00422e39movzx r8, [rcx]
    00422e3dtest r8w, r8w
    00422e41jne 0x422e00
    00422e43
    00422e43loc_422e43:
    00422e43ret
    00422df0
    00422e44
    00422e44 // align 0x10
    00422e50
    00422e50fn_422e50:
    00422e50push rbp
    00422e51push rdi
    00422e52push rsi
    00422e53push rbx
    00422e54sub rsp, 120
    00422e58mov rbp, rsp
    00422e5bmov ebx, ecx
    00422e5dmov rsi, rdx
    00422e60mov edi, r8l
    00422e63cmp edi, 31
    00422e66jbe 0x422e6d
    00422e68mov edi, 31
    00422e6d
    00422e6dloc_422e6d:
    00422e6dmov rcx, rsi
    00422e70mov edx, edi
    00422e72sub edx, 1
    00422e75call fn_42b540
    00422e7acmp al, 1
    00422e7djne 0x422e82
    00422e7fsub edi, 1
    00422e82
    00422e82loc_422e82:
    00422e82lea rcx, [rbp+48]
    00422e86mov rdx, rsi
    00422e89mov r8l, edi
    00422e8ccall fn_422c60
    00422e91mov edi, edi
    00422e93mov [rbp+2*rdi+48], 0
    00422e9alea rax, [rbp+48]
    00422e9emov [rbp+32], rax
    00422ea2mov [rbp+40], 10
    00422ea6lea rax, [rip+0x3a0fb]
    00422eadmovsxd rbx, ebx
    00422eb0mov rcx, [rax+8*rbx]
    00422eb4lea rdx, [rbp+32]
    00422eb8xor r8, r8
    00422ebbcall fn_421de0
    00422ec0lea rsp, [rbp+120]
    00422ec4pop rbx
    00422ec5pop rsi
    00422ec6pop rdi
    00422ec7pop rbp
    00422ec8ret
    00422e50
    00422ec9
    00422ec9 // align 0x10
    00422ed0
    00422ed0fn_422ed0:
    00422ed0sub rsp, 56
    00422ed4mov rax, [rsp+96]
    00422ed9mov [rsp+32], rax
    00422edemov eax, [rsp+104]
    00422ee2mov [rsp+40], eax
    00422ee6lea rax, [rip+0x48483]
    00422eedmov [rsp+48], rax
    00422ef2call fn_422f00
    00422ef7add rsp, 56
    00422efbret
    00422ed0
    00422efc
    00422efc // align 0x10
    00422f00
    00422f00fn_422f00:
    00422f00sub rsp, 56
    00422f04mov rax, [rsp+96]
    00422f09mov [rsp+32], rax
    00422f0emov eax, [rsp+104]
    00422f12mov [rsp+40], eax
    00422f16mov rax, [rsp+112]
    00422f1bmov [rsp+48], rax
    00422f20call fn_423490
    00422f25add rsp, 56
    00422f29ret
    00422f00
    00422f2a
    00422f2a // align 0x10
    00422f30
    00422f30fn_422f30:
    00422f30sub rsp, 56
    00422f34mov eax, [rsp+96]
    00422f38mov [rsp+32], eax
    00422f3clea rax, [rip+0x4842d]
    00422f43mov [rsp+40], rax
    00422f48call fn_422f60
    00422f4dadd rsp, 56
    00422f51ret
    00422f30
    00422f52
    00422f52 // align 0x10
    00422f60
    00422f60fn_422f60:
    00422f60push r13
    00422f62push rdi
    00422f63push rsi
    00422f64push rbx
    00422f65sub rsp, 56
    00422f69mov rbx, rcx
    00422f6cmov esi, edx
    00422f6emov rdi, r8
    00422f71mov r13, r9
    00422f74test rbx, rbx
    00422f77je 0x422fc0
    00422f79test rdi, rdi
    00422f7cje 0x422fc0
    00422f7emov rcx, rdi
    00422f81call fn_40c5a0
    00422f86mov rcx, rbx
    00422f89mov edx, esi
    00422f8bmov r8, rdi
    00422f8emov r9l, eax
    00422f91mov [rsp+32], r13
    00422f96mov eax, [rsp+128]
    00422f9dmov [rsp+40], eax
    00422fa1mov rax, [rsp+136]
    00422fa9mov [rsp+48], rax
    00422faecall fn_423490
    00422fb3mov eax, eax
    00422fb5mov [rbx+2*rax], 0
    00422fbbmov rax, rbx
    00422fbejmp 0x422fc2
    00422fc0
    00422fc0loc_422fc0:
    00422fc0xor eax, eax
    00422fc2
    00422fc2loc_422fc2:
    00422fc2add rsp, 56
    00422fc6pop rbx
    00422fc7pop rsi
    00422fc8pop rdi
    00422fc9pop r13
    00422fcbret
    00422f60
    00422fcc
    00422fcc // align 0x10
    00422fd0
    00422fd0fn_422fd0:
    00422fd0push rbx
    00422fd1sub rsp, 48
    00422fd5mov rbx, rcx
    00422fd8mov rcx, rbx
    00422fdblea rax, [rip+0x4838e]
    00422fe2mov [rsp+32], rax
    00422fe7call fn_423000
    00422fecmov rax, rbx
    00422fefadd rsp, 48
    00422ff3pop rbx
    00422ff4ret
    00422fd0
    00422ff5
    00422ff5 // align 0x10
    00423000
    00423000fn_423000:
    00423000push rbx
    00423001sub rsp, 48
    00423005mov rbx, rcx
    00423008mov rcx, rbx
    0042300bmov rax, [rsp+96]
    00423010mov [rsp+32], rax
    00423015call fn_423030
    0042301amov rax, rbx
    0042301dadd rsp, 48
    00423021pop rbx
    00423022ret
    00423000
    00423023
    00423023 // align 0x10
    00423030
    00423030fn_423030:
    00423030push rbp
    00423031push r13
    00423033push rdi
    00423034push rsi
    00423035push rbx
    00423036mov [rsp-96], 0
    0042303bmov [rsp-4192], 0
    00423043mov [rsp-8288], 0
    0042304bsub rsp, 8288
    00423052mov rbp, rsp
    00423055mov [rbp+72], rcx
    00423059mov [rbp+80], rdx
    0042305dmov [rbp+88], r8
    00423061mov ebx, r9l
    00423064mov rax, [rbp+8368]
    0042306bmov [rbp+8368], rax
    00423072mov esi, 4096
    00423077xor eax, eax
    00423079mov rcx, [rbp+80]
    0042307dtest rcx, rcx
    00423080je 0x423085
    00423082mov eax, [rcx-4]
    00423085
    00423085loc_423085:
    00423085cmp eax, 3072
    0042308bjge 0x4230d0
    0042308dxor eax, eax
    0042308ftest rcx, rcx
    00423092je 0x423097
    00423094mov eax, [rcx-4]
    00423097
    00423097loc_423097:
    00423097lea rdx, [rbp+96]
    0042309bmov r8l, 4095
    004230a1mov r9, rcx
    004230a4mov rcx, [rbp+88]
    004230a8mov [rsp+32], rcx
    004230admov [rsp+40], ebx
    004230b1mov rcx, [rbp+8368]
    004230b8mov [rsp+48], rcx
    004230bdmov rcx, rdx
    004230c0mov edx, r8l
    004230c3mov r8, r9
    004230c6mov r9l, eax
    004230c9call fn_422f00
    004230cejmp 0x4230dc
    004230d0
    004230d0loc_4230d0:
    004230d0xor esi, esi
    004230d2test rcx, rcx
    004230d5je 0x4230da
    004230d7mov esi, [rcx-4]
    004230da
    004230daloc_4230da:
    004230damov eax, esi
    004230dc
    004230dcloc_4230dc:
    004230dcmov ecx, esi
    004230desub ecx, 1
    004230e1cmp eax, ecx
    004230e3jl 0x42315a
    004230e5jmp 0x423144
    004230e7
    004230e7loc_4230e7:
    004230e7add esi, esi
    004230e9mov rcx, [rbp+72]
    004230edcall fn_40bcf0
    004230f2mov rcx, [rbp+72]
    004230f6mov edx, esi
    004230f8call fn_40d8d0
    004230fdxor edi, edi
    004230ffmov r13, [rbp+80]
    00423103test r13, r13
    00423106je 0x42310c
    00423108mov edi, [r13-4]
    0042310c
    0042310cloc_42310c:
    0042310cmov rax, [rbp+72]
    00423110mov rcx, [rax]
    00423113call fn_40d710
    00423118mov rcx, rax
    0042311bmov edx, esi
    0042311dsub edx, 1
    00423120mov r8, r13
    00423123mov r9l, edi
    00423126mov rax, [rbp+88]
    0042312amov [rsp+32], rax
    0042312fmov [rsp+40], ebx
    00423133mov rax, [rbp+8368]
    0042313amov [rsp+48], rax
    0042313fcall fn_422f00
    00423144
    00423144loc_423144:
    00423144mov ecx, esi
    00423146sub ecx, 1
    00423149cmp eax, ecx
    0042314bjge 0x4230e7
    0042314dmov rcx, [rbp+72]
    00423151mov edx, eax
    00423153call fn_40d8d0
    00423158jmp 0x42316a
    0042315a
    0042315aloc_42315a:
    0042315amov rcx, [rbp+72]
    0042315elea rdx, [rbp+96]
    00423162mov r8l, eax
    00423165call fn_40bfd0
    0042316a
    0042316aloc_42316a:
    0042316alea rsp, [rbp+8288]
    00423171pop rbx
    00423172pop rsi
    00423173pop rdi
    00423174pop r13
    00423176pop rbp
    00423177ret
    00423030
    00423178
    00423178 // align 0x10
    00423180
    00423180fn_423180:
    00423180push rbp
    00423181mov rbp, rsp
    00423184xor eax, eax
    00423186cmp [rcx+364], edx
    0042318cjle 0x42319e
    0042318ecmp [rcx+362], 83
    00423196je 0x42319e
    00423198mov edx, [rcx+364]
    0042319e
    0042319eloc_42319e:
    0042319ecmp [rcx+356], -1
    004231a5je 0x42320d
    004231a7mov r9l, edx
    004231aaadd r9l, r8l
    004231adcmp [rcx+356], r9l
    004231b4jle 0x42320d
    004231b6add edx, r8l
    004231b9add edx, 1
    004231bcmov r8l, edx
    004231bfmov r9l, [rcx+356]
    004231c6mov edx, r8l
    004231c9cmp edx, r9l
    004231ccjg 0x42320c
    004231cesub r9l, r8l
    004231d1add r9l, 1
    004231d5
    004231d5loc_4231d5:
    004231d5cmp [rcx+352], 0
    004231dcjne 0x4231e2
    004231demov al, 1
    004231e0jmp 0x42320c
    004231e2
    004231e2loc_4231e2:
    004231e2mov rdx, [rcx+344]
    004231e9mov [rdx], 32
    004231eelea rdx, [rcx+344]
    004231f5add [rdx], 2
    004231f9lea rdx, [rcx+352]
    00423200sub [rdx], 2
    00423203sub r9l, 1
    00423207test r9l, r9l
    0042320ajne 0x4231d5
    0042320c
    0042320cloc_42320c:
    0042320cnop
    0042320d
    0042320dloc_42320d:
    0042320dmov rsp, rbp
    00423210pop rbp
    00423211ret
    00423180
    00423212
    00423212 // align 0x10
    00423220
    00423220fn_423220:
    00423220push rbp
    00423221push r14
    00423223push r13
    00423225push rdi
    00423226push rsi
    00423227push rbx
    00423228sub rsp, 56
    0042322cmov rbp, rsp
    0042322fmov [rbp+32], rcx
    00423233mov [rbp+40], rdx
    00423237mov ebx, r8l
    0042323amov rdi, [rbp+40]
    0042323emov rax, [rbp+40]
    00423242test rax, rax
    00423245je 0x42325e
    00423247cmp r9l, -1
    0042324bjne 0x423259
    0042324dmov rcx, rdi
    00423250call fn_40c5a0
    00423255mov esi, eax
    00423257jmp 0x423260
    00423259
    00423259loc_423259:
    00423259mov esi, r9l
    0042325cjmp 0x423260
    0042325e
    0042325eloc_42325e:
    0042325exor esi, esi
    00423260
    00423260loc_423260:
    00423260cmp ebx, -1
    00423263jle 0x42326b
    00423265cmp esi, ebx
    00423267jle 0x42326b
    00423269mov esi, ebx
    0042326b
    0042326bloc_42326b:
    0042326bmov r13l, esi
    0042326eadd r13l, r13l
    00423271mov rax, [rbp+40]
    00423275test rax, rax
    00423278je 0x42329d
    0042327acmp [rdi], 45
    0042327ejne 0x42329d
    00423280mov rax, [rbp+32]
    00423284cmp [rax+362], 83
    0042328cje 0x42329d
    0042328esub r13l, 2
    00423292sub esi, 1
    00423295mov r14l, 1
    0042329bjmp 0x4232a0
    0042329d
    0042329dloc_42329d:
    0042329dxor r14, r14
    004232a0
    004232a0loc_4232a0:
    004232a0mov rax, [rbp+32]
    004232a4cmp [rax+343], 0
    004232abjne 0x4232c5
    004232admov rcx, [rbp+32]
    004232b1mov edx, esi
    004232b3mov r8l, r14l
    004232b6call fn_423180
    004232bbmov ebx, eax
    004232bdtest bl, bl
    004232bfjne 0x42341e
    004232c5
    004232c5loc_4232c5:
    004232c5cmp r14l, 1
    004232c9jne 0x423310
    004232cbmov rax, [rbp+32]
    004232cfcmp [rax+352], 0
    004232d6jne 0x4232df
    004232d8mov bl, 1
    004232dajmp 0x42341e
    004232df
    004232dfloc_4232df:
    004232dfadd rdi, 2
    004232e3mov rax, [rbp+32]
    004232e7mov rax, [rax+344]
    004232eemov [rax], 45
    004232f3mov rax, [rbp+32]
    004232f7lea rax, [rax+344]
    004232feadd [rax], 2
    00423302mov rax, [rbp+32]
    00423306lea rax, [rax+352]
    0042330dsub [rax], 2
    00423310
    00423310loc_423310:
    00423310mov rax, [rbp+32]
    00423314cmp [rax+364], -1
    0042331bje 0x42339a
    0042331dmov rax, [rbp+32]
    00423321cmp [rax+364], esi
    00423327jle 0x42339a
    00423329mov rax, [rbp+32]
    0042332dcmp [rax+362], 83
    00423335je 0x42339a
    00423337mov ecx, esi
    00423339add ecx, 1
    0042333cmov rax, [rbp+32]
    00423340mov edx, [rax+364]
    00423346mov eax, ecx
    00423348cmp eax, edx
    0042334ajg 0x423399
    0042334csub edx, ecx
    0042334eadd edx, 1
    00423351
    00423351loc_423351:
    00423351mov rax, [rbp+32]
    00423355cmp [rax+352], 0
    0042335cjne 0x423365
    0042335emov bl, 1
    00423360jmp 0x42341e
    00423365
    00423365loc_423365:
    00423365mov rax, [rbp+32]
    00423369mov rax, [rax+344]
    00423370mov [rax], 48
    00423375mov rax, [rbp+32]
    00423379lea rax, [rax+344]
    00423380add [rax], 2
    00423384mov rax, [rbp+32]
    00423388lea rax, [rax+352]
    0042338fsub [rax], 2
    00423392sub edx, 1
    00423395test edx, edx
    00423397jne 0x423351
    00423399
    00423399loc_423399:
    00423399nop
    0042339a
    0042339aloc_42339a:
    0042339amov rax, [rbp+40]
    0042339etest rax, rax
    004233a1je 0x4233ff
    004233a3mov rax, [rbp+32]
    004233a7cmp [rax+352], r13l
    004233aesetb bl
    004233b1test bl, bl
    004233b3je 0x4233c0
    004233b5mov rax, [rbp+32]
    004233b9mov r13l, [rax+352]
    004233c0
    004233c0loc_4233c0:
    004233c0mov rcx, rdi
    004233c3mov rax, [rbp+32]
    004233c7mov rdx, [rax+344]
    004233cemov r8l, r13l
    004233d1call fn_405ac0
    004233d6mov rax, [rbp+32]
    004233damov rax, [rax+344]
    004233e1mov ecx, r13l
    004233e4lea rax, [rax+rcx]
    004233e8mov rcx, [rbp+32]
    004233ecmov [rcx+344], rax
    004233f3lea rax, [rcx+352]
    004233fasub [rax], r13l
    004233fdjmp 0x423401
    004233ff
    004233ffloc_4233ff:
    004233ffxor ebx, ebx
    00423401
    00423401loc_423401:
    00423401mov rax, [rbp+32]
    00423405cmp [rax+343], 0
    0042340cje 0x42341e
    0042340emov rcx, [rbp+32]
    00423412mov edx, esi
    00423414mov r8l, r14l
    00423417call fn_423180
    0042341cmov ebx, eax
    0042341e
    0042341eloc_42341e:
    0042341emov eax, ebx
    00423420lea rsp, [rbp+56]
    00423424pop rbx
    00423425pop rsi
    00423426pop rdi
    00423427pop r13
    00423429pop r14
    0042342bpop rbp
    0042342cret
    00423220
    0042342d
    0042342d // align 0x10
    00423430
    00423430fn_423430:
    00423430push rbp
    00423431push rdi
    00423432push rsi
    00423433push rbx
    00423434sub rsp, 72
    00423438mov rbp, rsp
    0042343bmov rbx, rdx
    0042343emov rsi, r8
    00423441lea rdi, [rbp+40]
    00423445movsq [rdi], [rsi]
    00423447movsq [rdi], [rsi]
    00423449movsq [rdi], [rsi]
    0042344bmov rcx, rbx
    0042344ecall fn_40bcf0
    00423453cmp [rbp+40], 1
    00423458je 0x423480
    0042345amov rax, [rip+0x40a3f]
    00423461cmp [rax], 0
    00423465je 0x423479
    00423467mov rcx, rbx
    0042346alea rdx, [rbp+40]
    0042346emov rsi, [rip+0x40a2b]
    00423475call [rsi]
    00423477jmp 0x423480
    00423479
    00423479loc_423479:
    00423479mov cl, 16
    0042347bcall fn_405a20
    00423480
    00423480loc_423480:
    00423480mov rax, rbx
    00423483lea rsp, [rbp+72]
    00423487pop rbx
    00423488pop rsi
    00423489pop rdi
    0042348apop rbp
    0042348bret
    00423430
    0042348c
    0042348c // align 0x10
    00423490
    00423490fn_423490:
    00423490push rbp
    00423491push rdi
    00423492push rsi
    00423493push rbx
    00423494sub rsp, 376
    0042349bmov rbp, rsp
    0042349emov [rbp+72], rcx
    004234a2mov [rbp+112], edx
    004234a5mov [rbp+80], r8
    004234a9mov [rbp+92], r9l
    004234admov [rbp+128], 0
    004234b8mov [rbp+136], 0
    004234c3mov [rbp+144], 0
    004234cemov [rbp+152], 0
    004234d9mov [rbp+160], 0
    004234e4mov [rbp+168], 0
    004234efmov [rbp+328], 0
    004234famov rax, [rbp+464]
    00423501mov [rbp+464], rax
    00423508nop
    00423509mov rax, [rbp+72]
    0042350dtest rax, rax
    00423510je 0x42351b
    00423512mov rax, [rbp+80]
    00423516test rax, rax
    00423519jne 0x423525
    0042351b
    0042351bloc_42351b:
    0042351bxor eax, eax
    0042351dmov [rbp+116], eax
    00423520jmp 0x42441d
    00423525
    00423525loc_423525:
    00423525or eax, -1
    00423528mov [rbp+108], eax
    0042352bmov ebx, [rbp+456]
    00423531add ebx, 1
    00423534mov rax, [rbp+72]
    00423538mov [rbp+344], rax
    0042353fmov rax, [rbp+80]
    00423543mov [rbp+96], rax
    00423547mov eax, [rbp+112]
    0042354acmp eax, 0x7fffffff
    00423550jae 0x42355f
    00423552mov eax, [rbp+112]
    00423555add eax, eax
    00423557mov [rbp+352], eax
    0042355djmp 0x423568
    0042355f
    0042355floc_42355f:
    0042355fmov eax, [rbp+112]
    00423562mov [rbp+352], eax
    00423568
    00423568loc_423568:
    00423568mov eax, [rbp+92]
    0042356bmov eax, eax
    0042356dmov rcx, [rbp+96]
    00423571lea rax, [rcx+2*rax]
    00423575mov [rbp+120], rax
    00423579mov rax, [rbp+120]
    0042357dmov rcx, [rbp+96]
    00423581cmp rcx, rax
    00423584mov [rbp+96], rcx
    00423588jae 0x424400
    0042358e
    0042358eloc_42358e:
    0042358emov rax, [rbp+96]
    00423592movzx rax, [rax]
    00423596cmp ax, 37
    0042359ajne 0x4243a0
    004235a0mov rax, [rbp+96]
    004235a4add rax, 2
    004235a8mov [rbp+96], rax
    004235acmov rax, [rbp+120]
    004235b0mov rcx, [rbp+96]
    004235b4cmp rcx, rax
    004235b7mov [rbp+96], rcx
    004235bbjae 0x424400
    004235c1mov rax, [rbp+96]
    004235c5cmp [rax], 37
    004235c9jne 0x423615
    004235cbcmp [rbp+352], 0
    004235d2jne 0x4235e3
    004235d4xor ecx, ecx
    004235d6mov rdx, [rbp+80]
    004235damov r8l, [rbp+92]
    004235decall fn_422e50
    004235e3
    004235e3loc_4235e3:
    004235e3mov rax, [rbp+344]
    004235eamov rcx, [rbp+96]
    004235eemovzx rcx, [rcx]
    004235f2mov [rax], cx
    004235f5mov rax, [rbp+96]
    004235f9add rax, 2
    004235fdmov [rbp+96], rax
    00423601add [rbp+344], 2
    00423609sub [rbp+352], 2
    00423610jmp 0x4243eb
    00423615
    00423615loc_423615:
    00423615mov [rbp+356], -1
    0042361fmov eax, [rbp+108]
    00423622add eax, 1
    00423625mov [rbp+108], eax
    00423628mov rcx, [rbp+96]
    0042362ccall fn_41d620
    00423631test al, al
    00423633je 0x423704
    00423639mov rsi, [rbp+96]
    0042363djmp 0x42364b
    0042363f
    0042363floc_42363f:
    0042363fmov rax, [rbp+96]
    00423643add rax, 2
    00423647mov [rbp+96], rax
    0042364b
    0042364bloc_42364b:
    0042364bmov rax, [rbp+120]
    0042364fmov rcx, [rbp+96]
    00423653cmp rcx, rax
    00423656mov [rbp+96], rcx
    0042365ajae 0x423669
    0042365cmov rcx, [rbp+96]
    00423660call fn_41d620
    00423665test al, al
    00423667jne 0x42363f
    00423669
    00423669loc_423669:
    00423669mov rax, [rbp+96]
    0042366dcmp rsi, rax
    00423670je 0x42371f
    00423676lea rcx, [rbp+198]
    0042367dmov rdx, rsi
    00423680mov r8, [rbp+96]
    00423684sub r8, rsi
    00423687sar r8, 1
    0042368bjns 0x423691
    0042368dadc r8, 0
    00423691
    00423691loc_423691:
    00423691call fn_422c90
    00423696lea rcx, [rbp+168]
    0042369dlea rdx, [rbp+198]
    004236a4mov r8l, 65
    004236aacall fn_40d7b0
    004236afmov rcx, [rbp+168]
    004236b6lea rdx, [rbp+192]
    004236bdcall fn_422920
    004236c2test al, al
    004236c4jne 0x4236d5
    004236c6xor ecx, ecx
    004236c8mov rdx, [rbp+80]
    004236ccmov r8l, [rbp+92]
    004236d0call fn_422e50
    004236d5
    004236d5loc_4236d5:
    004236d5mov rax, [rbp+96]
    004236d9cmp [rax], 58
    004236ddjne 0x4236f6
    004236dfmov rax, [rbp+96]
    004236e3add rax, 2
    004236e7mov [rbp+96], rax
    004236ebmov eax, [rbp+192]
    004236f1mov [rbp+108], eax
    004236f4jmp 0x42371f
    004236f6
    004236f6loc_4236f6:
    004236f6mov eax, [rbp+192]
    004236fcmov [rbp+356], eax
    00423702jmp 0x42371f
    00423704
    00423704loc_423704:
    00423704mov rax, [rbp+96]
    00423708cmp [rax], 58
    0042370cjne 0x42371f
    0042370exor eax, eax
    00423710mov [rbp+108], eax
    00423713mov rax, [rbp+96]
    00423717add rax, 2
    0042371bmov [rbp+96], rax
    0042371f
    0042371floc_42371f:
    0042371fmov rax, [rbp+96]
    00423723cmp [rax], 45
    00423727jne 0x42373e
    00423729mov [rbp+343], 1
    00423730mov rax, [rbp+96]
    00423734add rax, 2
    00423738mov [rbp+96], rax
    0042373cjmp 0x423745
    0042373e
    0042373eloc_42373e:
    0042373emov [rbp+343], 0
    00423745
    00423745loc_423745:
    00423745mov rsi, [rbp+96]
    00423749mov rax, [rbp+96]
    0042374dcmp [rax], 42
    00423751jne 0x42376e
    00423753mov [rbp+356], -2
    0042375dmov rax, [rbp+96]
    00423761add rax, 2
    00423765mov [rbp+96], rax
    00423769jmp 0x423813
    0042376e
    0042376eloc_42376e:
    0042376emov rcx, [rbp+96]
    00423772call fn_41d620
    00423777test al, al
    00423779je 0x423813
    0042377fjmp 0x42378d
    00423781
    00423781loc_423781:
    00423781mov rax, [rbp+96]
    00423785add rax, 2
    00423789mov [rbp+96], rax
    0042378d
    0042378dloc_42378d:
    0042378dmov rax, [rbp+120]
    00423791mov rcx, [rbp+96]
    00423795cmp rcx, rax
    00423798mov [rbp+96], rcx
    0042379cjae 0x4237ab
    0042379emov rcx, [rbp+96]
    004237a2call fn_41d620
    004237a7test al, al
    004237a9jne 0x423781
    004237ab
    004237abloc_4237ab:
    004237abmov rax, [rbp+96]
    004237afcmp rsi, rax
    004237b2je 0x423813
    004237b4lea rcx, [rbp+198]
    004237bbmov rdx, rsi
    004237bemov r8, [rbp+96]
    004237c2sub r8, rsi
    004237c5sar r8, 1
    004237c9jns 0x4237cf
    004237cbadc r8, 0
    004237cf
    004237cfloc_4237cf:
    004237cfcall fn_422c90
    004237d4lea rcx, [rbp+160]
    004237dblea rdx, [rbp+198]
    004237e2mov r8l, 65
    004237e8call fn_40d7b0
    004237edmov rcx, [rbp+160]
    004237f4lea rdx, [rbp+356]
    004237fbcall fn_422920
    00423800test al, al
    00423802jne 0x423813
    00423804xor ecx, ecx
    00423806mov rdx, [rbp+80]
    0042380amov r8l, [rbp+92]
    0042380ecall fn_422e50
    00423813
    00423813loc_423813:
    00423813mov rax, [rbp+96]
    00423817cmp [rax], 46
    0042381bjne 0x4238f3
    00423821mov rax, [rbp+96]
    00423825add rax, 2
    00423829mov [rbp+96], rax
    0042382dmov rax, [rbp+120]
    00423831mov rcx, [rbp+96]
    00423835cmp rcx, rax
    00423838mov [rbp+96], rcx
    0042383cjae 0x424400
    00423842mov rax, [rbp+96]
    00423846cmp [rax], 42
    0042384ajne 0x423867
    0042384cmov [rbp+364], -2
    00423856mov rax, [rbp+96]
    0042385aadd rax, 2
    0042385emov [rbp+96], rax
    00423862jmp 0x4238fd
    00423867
    00423867loc_423867:
    00423867mov rsi, [rbp+96]
    0042386bjmp 0x423879
    0042386d
    0042386dloc_42386d:
    0042386dmov rax, [rbp+96]
    00423871add rax, 2
    00423875mov [rbp+96], rax
    00423879
    00423879loc_423879:
    00423879mov rax, [rbp+120]
    0042387dmov rcx, [rbp+96]
    00423881cmp rcx, rax
    00423884mov [rbp+96], rcx
    00423888jae 0x423897
    0042388amov rcx, [rbp+96]
    0042388ecall fn_41d620
    00423893test al, al
    00423895jne 0x42386d
    00423897
    00423897loc_423897:
    00423897lea rcx, [rbp+198]
    0042389emov rdx, rsi
    004238a1mov r8, [rbp+96]
    004238a5sub r8, rsi
    004238a8sar r8, 1
    004238acjns 0x4238b2
    004238aeadc r8, 0
    004238b2
    004238b2loc_4238b2:
    004238b2call fn_422c90
    004238b7lea rcx, [rbp+152]
    004238belea rdx, [rbp+198]
    004238c5mov r8l, 65
    004238cbcall fn_40d7b0
    004238d0mov rcx, [rbp+152]
    004238d7lea rdx, [rbp+364]
    004238decall fn_422920
    004238e3test al, al
    004238e5jne 0x4238fd
    004238e7mov [rbp+364], -1
    004238f1jmp 0x4238fd
    004238f3
    004238f3loc_4238f3:
    004238f3mov [rbp+364], -1
    004238fd
    004238fdloc_4238fd:
    004238fdmov rcx, [rbp+96]
    00423901call fn_41d580
    00423906test al, al
    00423908je 0x424400
    0042390emov rax, [rbp+96]
    00423912movzx rax, [rax]
    00423916mov ecx, eax
    00423918sub cx, 97
    0042391ccmp cx, 26
    00423920jae 0x423937
    00423922mov rax, [rbp+96]
    00423926movzx rax, [rax]
    0042392axor ax, 32
    0042392emov [rbp+362], ax
    00423935jmp 0x42393e
    00423937
    00423937loc_423937:
    00423937mov [rbp+362], ax
    0042393e
    0042393eloc_42393e:
    0042393emov rax, [rbp+96]
    00423942add rax, 2
    00423946mov [rbp+96], rax
    0042394acmp [rbp+356], -2
    00423951jne 0x423a77
    00423957mov eax, [rbp+108]
    0042395acmp eax, ebx
    0042395cmov [rbp+108], eax
    0042395fjl 0x423973
    00423961mov ecx, 1
    00423966mov rdx, [rbp+80]
    0042396amov r8l, [rbp+92]
    0042396ecall fn_422e50
    00423973
    00423973loc_423973:
    00423973mov eax, [rbp+108]
    00423976movsxd rax, eax
    00423979mov rcx, [rbp+448]
    00423980mov rdx, rax
    00423983add rdx, rdx
    00423986movzx rcx, [rcx+8*rdx+8]
    0042398ccmp cl, 31
    0042398fja 0x4239ac
    00423991mov edx, 1
    00423996movzx rcx, cl
    0042399aand ecx, 127
    0042399dshl edx, cl
    0042399fmov ecx, [rip+2779]
    004239a5test edx, ecx
    004239a7setne cl
    004239aajmp 0x4239ae
    004239ac
    004239acloc_4239ac:
    004239acxor ecx, ecx
    004239ae
    004239aeloc_4239ae:
    004239aetest cl, cl
    004239b0je 0x423a68
    004239b6mov rcx, [rbp+448]
    004239bdmov rdx, rax
    004239c0add rdx, rdx
    004239c3cmp [rcx+8*rdx+8], 0
    004239c8jne 0x4239df
    004239camov rcx, [rbp+448]
    004239d1add rax, rax
    004239d4mov eax, [rcx+8*rax]
    004239d7mov [rbp+356], eax
    004239ddjmp 0x423a3e
    004239df
    004239dfloc_4239df:
    004239dfmov esi, [rbp+108]
    004239e2movsxd rsi, esi
    004239e5mov rax, [rbp+448]
    004239ecmov rcx, rsi
    004239efadd rcx, rcx
    004239f2mov rax, [rax+8*rcx]
    004239f6cmp [rax], 0x7fffffff
    004239fdjg 0x423a19
    004239ffmov rax, [rbp+448]
    00423a06mov rcx, rsi
    00423a09add rcx, rcx
    00423a0cmov rax, [rax+8*rcx]
    00423a10cmp [rax], 0xffffffff80000000
    00423a17jge 0x423a28
    00423a19
    00423a19loc_423a19:
    00423a19xor ecx, ecx
    00423a1bmov rdx, [rbp+80]
    00423a1fmov r8l, [rbp+92]
    00423a23call fn_422e50
    00423a28
    00423a28loc_423a28:
    00423a28mov rax, [rbp+448]
    00423a2fadd rsi, rsi
    00423a32mov rax, [rax+8*rsi]
    00423a36mov eax, [rax]
    00423a38mov [rbp+356], eax
    00423a3e
    00423a3eloc_423a3e:
    00423a3ecmp [rbp+356], 0
    00423a45jge 0x423a5d
    00423a47cmp [rbp+343], 0
    00423a4esete al
    00423a51mov [rbp+343], al
    00423a57neg [rbp+356]
    00423a5d
    00423a5dloc_423a5d:
    00423a5dmov eax, [rbp+108]
    00423a60add eax, 1
    00423a63mov [rbp+108], eax
    00423a66jmp 0x423a77
    00423a68
    00423a68loc_423a68:
    00423a68xor ecx, ecx
    00423a6amov rdx, [rbp+80]
    00423a6emov r8l, [rbp+92]
    00423a72call fn_422e50
    00423a77
    00423a77loc_423a77:
    00423a77cmp [rbp+364], -2
    00423a7ejne 0x423b85
    00423a84mov eax, [rbp+108]
    00423a87cmp eax, ebx
    00423a89mov [rbp+108], eax
    00423a8cjl 0x423aa0
    00423a8emov ecx, 1
    00423a93mov rdx, [rbp+80]
    00423a97mov r8l, [rbp+92]
    00423a9bcall fn_422e50
    00423aa0
    00423aa0loc_423aa0:
    00423aa0mov eax, [rbp+108]
    00423aa3movsxd rax, eax
    00423aa6mov rcx, [rbp+448]
    00423aadmov rdx, rax
    00423ab0add rdx, rdx
    00423ab3movzx rcx, [rcx+8*rdx+8]
    00423ab9cmp cl, 31
    00423abcja 0x423ad9
    00423abemov edx, 1
    00423ac3movzx rcx, cl
    00423ac7and ecx, 127
    00423acashl edx, cl
    00423accmov ecx, [rip+2478]
    00423ad2test edx, ecx
    00423ad4setne cl
    00423ad7jmp 0x423adb
    00423ad9
    00423ad9loc_423ad9:
    00423ad9xor ecx, ecx
    00423adb
    00423adbloc_423adb:
    00423adbtest cl, cl
    00423addje 0x423b76
    00423ae3mov rcx, [rbp+448]
    00423aeamov rdx, rax
    00423aedadd rdx, rdx
    00423af0cmp [rcx+8*rdx+8], 0
    00423af5jne 0x423b0c
    00423af7mov rcx, [rbp+448]
    00423afeadd rax, rax
    00423b01mov eax, [rcx+8*rax]
    00423b04mov [rbp+364], eax
    00423b0ajmp 0x423b6b
    00423b0c
    00423b0cloc_423b0c:
    00423b0cmov esi, [rbp+108]
    00423b0fmovsxd rsi, esi
    00423b12mov rax, [rbp+448]
    00423b19mov rcx, rsi
    00423b1cadd rcx, rcx
    00423b1fmov rax, [rax+8*rcx]
    00423b23cmp [rax], 0x7fffffff
    00423b2ajg 0x423b46
    00423b2cmov rax, [rbp+448]
    00423b33mov rcx, rsi
    00423b36add rcx, rcx
    00423b39mov rax, [rax+8*rcx]
    00423b3dcmp [rax], 0xffffffff80000000
    00423b44jge 0x423b55
    00423b46
    00423b46loc_423b46:
    00423b46xor ecx, ecx
    00423b48mov rdx, [rbp+80]
    00423b4cmov r8l, [rbp+92]
    00423b50call fn_422e50
    00423b55
    00423b55loc_423b55:
    00423b55mov rax, [rbp+448]
    00423b5cadd rsi, rsi
    00423b5fmov rax, [rax+8*rsi]
    00423b63mov eax, [rax]
    00423b65mov [rbp+364], eax
    00423b6b
    00423b6bloc_423b6b:
    00423b6bmov eax, [rbp+108]
    00423b6eadd eax, 1
    00423b71mov [rbp+108], eax
    00423b74jmp 0x423b85
    00423b76
    00423b76loc_423b76:
    00423b76xor ecx, ecx
    00423b78mov rdx, [rbp+80]
    00423b7cmov r8l, [rbp+92]
    00423b80call fn_422e50
    00423b85
    00423b85loc_423b85:
    00423b85mov eax, [rbp+108]
    00423b88cmp eax, ebx
    00423b8amov [rbp+108], eax
    00423b8djl 0x423ba1
    00423b8fmov ecx, 1
    00423b94mov rdx, [rbp+80]
    00423b98mov r8l, [rbp+92]
    00423b9ccall fn_422e50
    00423ba1
    00423ba1loc_423ba1:
    00423ba1mov rax, [rbp+448]
    00423ba8mov ecx, [rbp+108]
    00423babmovsxd rcx, ecx
    00423baeadd rcx, rcx
    00423bb1lea rdi, [rbp+176]
    00423bb8lea rsi, [rax+8*rcx]
    00423bbcmovsq [rdi], [rsi]
    00423bbemovsq [rdi], [rsi]
    00423bc0xor esi, esi
    00423bc3movzx rax, [rbp+184]
    00423bcbmovzx rcx, al
    00423bcfcmp ecx, 9
    00423bd2jg 0x423c3e
    00423bd4cmp ecx, 9
    00423bd7je 0x423d69
    00423bddcmp ecx, 4
    00423be0jg 0x423c1a
    00423be2cmp ecx, 4
    00423be5je 0x4240f6
    00423bebsub ecx, 1
    00423beecmp ecx, -1
    00423bf1je 0x423cb3
    00423bf7test ecx, ecx
    00423bf9je 0x423c9f
    00423bffsub ecx, 1
    00423c02test ecx, ecx
    00423c04je 0x423d69
    00423c0asub ecx, 1
    00423c0dtest ecx, ecx
    00423c0fjne 0x42437e
    00423c15jmp 0x423de0
    00423c1a
    00423c1aloc_423c1a:
    00423c1asub ecx, 5
    00423c1dtest ecx, ecx
    00423c1fje 0x423ffd
    00423c25sub ecx, 1
    00423c28test ecx, ecx
    00423c2aje 0x42405b
    00423c30sub ecx, 1
    00423c33cmp ecx, 2
    00423c36jae 0x42437e
    00423c3cjmp 0x423c9f
    00423c3e
    00423c3eloc_423c3e:
    00423c3ecmp ecx, 14
    00423c41jg 0x423c79
    00423c43cmp ecx, 14
    00423c46je 0x423c9f
    00423c48sub ecx, 10
    00423c4btest ecx, ecx
    00423c4dje 0x4240b6
    00423c53sub ecx, 1
    00423c56test ecx, ecx
    00423c58je 0x4241a9
    00423c5esub ecx, 1
    00423c61test ecx, ecx
    00423c63je 0x423de0
    00423c69sub ecx, 1
    00423c6ctest ecx, ecx
    00423c6ejne 0x42437e
    00423c74jmp 0x424214
    00423c79
    00423c79loc_423c79:
    00423c79sub ecx, 15
    00423c7ctest ecx, ecx
    00423c7eje 0x424151
    00423c84sub ecx, 1
    00423c87test ecx, ecx
    00423c89je 0x424272
    00423c8fsub ecx, 1
    00423c92test ecx, ecx
    00423c94jne 0x42437e
    00423c9ajmp 0x424331
    00423c9f
    00423c9floc_423c9f:
    00423c9fxor ecx, ecx
    00423ca1mov rdx, [rbp+80]
    00423ca5mov r8l, [rbp+92]
    00423ca9call fn_422e50
    00423caejmp 0x42437e
    00423cb3
    00423cb3loc_423cb3:
    00423cb3cmp [rbp+364], 16
    00423cbajg 0x423cc5
    00423cbccmp [rbp+364], -1
    00423cc3jne 0x423ccf
    00423cc5
    00423cc5loc_423cc5:
    00423cc5mov [rbp+364], 0
    00423ccf
    00423ccfloc_423ccf:
    00423ccfmovzx rax, [rbp+362]
    00423cd7sub ax, 68
    00423cdbtest ax, ax
    00423cdeje 0x423cf4
    00423ce0sub ax, 17
    00423ce4test ax, ax
    00423ce7je 0x423d08
    00423ce9sub ax, 3
    00423cedtest ax, ax
    00423cf0jne 0x423d33
    00423cf2jmp 0x423d1c
    00423cf4
    00423cf4loc_423cf4:
    00423cf4lea rcx, [rbp+328]
    00423cfbmov edx, [rbp+176]
    00423d01call fn_4225b0
    00423d06jmp 0x423d42
    00423d08
    00423d08loc_423d08:
    00423d08lea rcx, [rbp+328]
    00423d0fmov edx, [rbp+176]
    00423d15call fn_422620
    00423d1ajmp 0x423d42
    00423d1c
    00423d1cloc_423d1c:
    00423d1clea rcx, [rbp+328]
    00423d23mov edx, [rbp+176]
    00423d29xor r8, r8
    00423d2ccall fn_422860
    00423d31jmp 0x423d42
    00423d33
    00423d33loc_423d33:
    00423d33xor ecx, ecx
    00423d35mov rdx, [rbp+80]
    00423d39mov r8l, [rbp+92]
    00423d3dcall fn_422e50
    00423d42
    00423d42loc_423d42:
    00423d42mov rcx, [rbp+328]
    00423d49call fn_40d710
    00423d4emov rcx, rbp
    00423d51mov rdx, rax
    00423d54or r8l, -1
    00423d58or r9l, -1
    00423d5ccall fn_423220
    00423d61mov esi, eax
    00423d64jmp 0x42437e
    00423d69
    00423d69loc_423d69:
    00423d69cmp [rbp+362], 83
    00423d71jne 0x423dcc
    00423d73cmp al, 2
    00423d76jne 0x423d8e
    00423d78lea rcx, [rbp+328]
    00423d7fmovzx dx, [rbp+176]
    00423d87call fn_40d730
    00423d8cjmp 0x423da2
    00423d8e
    00423d8eloc_423d8e:
    00423d8elea rcx, [rbp+328]
    00423d95movzx rdx, [rbp+176]
    00423d9dcall fn_40d730
    00423da2
    00423da2loc_423da2:
    00423da2mov rcx, [rbp+328]
    00423da9call fn_40d710
    00423daemov rcx, rbp
    00423db1mov rdx, rax
    00423db4mov r8l, [rbp+364]
    00423dbbor r9l, -1
    00423dbfcall fn_423220
    00423dc4mov esi, eax
    00423dc7jmp 0x42437e
    00423dcc
    00423dccloc_423dcc:
    00423dccxor ecx, ecx
    00423dcemov rdx, [rbp+80]
    00423dd2mov r8l, [rbp+92]
    00423dd6call fn_422e50
    00423ddbjmp 0x42437e
    00423de0
    00423de0loc_423de0:
    00423de0cmp al, 3
    00423de3jne 0x423de9
    00423de5xor eax, eax
    00423de7jmp 0x423deb
    00423de9
    00423de9loc_423de9:
    00423de9mov al, 1
    00423deb
    00423debloc_423deb:
    00423debxor esi, esi
    00423dedcmp [rbp+362], 71
    00423df5je 0x423e01
    00423df7cmp [rbp+362], 69
    00423dffjne 0x423e16
    00423e01
    00423e01loc_423e01:
    00423e01cmp [rbp+364], 18
    00423e08jbe 0x423e45
    00423e0amov [rbp+364], 15
    00423e14jmp 0x423e45
    00423e16
    00423e16loc_423e16:
    00423e16cmp [rbp+364], 18
    00423e1djbe 0x423e45
    00423e1fmov [rbp+364], 2
    00423e29cmp [rbp+362], 77
    00423e31jne 0x423e45
    00423e33mov rcx, [rbp+464]
    00423e3amovzx rcx, [rcx+9]
    00423e3fmov [rbp+364], ecx
    00423e45
    00423e45loc_423e45:
    00423e45movzx ecx, [rbp+362]
    00423e4ccmp ecx, 71
    00423e4fjg 0x423e6d
    00423e51cmp ecx, 71
    00423e54je 0x423e88
    00423e56sub ecx, 69
    00423e59test ecx, ecx
    00423e5bje 0x423ec6
    00423e5dsub ecx, 1
    00423e60test ecx, ecx
    00423e62jne 0x423fb8
    00423e68jmp 0x423f04
    00423e6d
    00423e6dloc_423e6d:
    00423e6dsub ecx, 77
    00423e70test ecx, ecx
    00423e72je 0x423f7d
    00423e78sub ecx, 1
    00423e7btest ecx, ecx
    00423e7djne 0x423fb8
    00423e83jmp 0x423f42
    00423e88
    00423e88loc_423e88:
    00423e88lea rcx, [rbp+198]
    00423e8fmov rdx, [rbp+176]
    00423e96mov r8l, eax
    00423e99xor r9, r9
    00423e9cmov eax, [rbp+364]
    00423ea2mov [rsp+32], eax
    00423ea6mov [rsp+40], 3
    00423eaemov rax, [rbp+464]
    00423eb5mov [rsp+48], rax
    00423ebacall fn_424f20
    00423ebfmov esi, eax
    00423ec1jmp 0x423fc7
    00423ec6
    00423ec6loc_423ec6:
    00423ec6lea rcx, [rbp+198]
    00423ecdmov rdx, [rbp+176]
    00423ed4mov r8l, eax
    00423ed7mov r9b, 1
    00423edamov eax, [rbp+364]
    00423ee0mov [rsp+32], eax
    00423ee4mov [rsp+40], 3
    00423eecmov rax, [rbp+464]
    00423ef3mov [rsp+48], rax
    00423ef8call fn_424f20
    00423efdmov esi, eax
    00423effjmp 0x423fc7
    00423f04
    00423f04loc_423f04:
    00423f04lea rcx, [rbp+198]
    00423f0bmov rdx, [rbp+176]
    00423f12mov r8l, eax
    00423f15mov r9b, 2
    00423f18mov [rsp+32], 18
    00423f20mov eax, [rbp+364]
    00423f26mov [rsp+40], eax
    00423f2amov rax, [rbp+464]
    00423f31mov [rsp+48], rax
    00423f36call fn_424f20
    00423f3bmov esi, eax
    00423f3djmp 0x423fc7
    00423f42
    00423f42loc_423f42:
    00423f42lea rcx, [rbp+198]
    00423f49mov rdx, [rbp+176]
    00423f50mov r8l, eax
    00423f53mov r9b, 3
    00423f56mov [rsp+32], 18
    00423f5emov eax, [rbp+364]
    00423f64mov [rsp+40], eax
    00423f68mov rax, [rbp+464]
    00423f6fmov [rsp+48], rax
    00423f74call fn_424f20
    00423f79mov esi, eax
    00423f7bjmp 0x423fc7
    00423f7d
    00423f7dloc_423f7d:
    00423f7dlea rcx, [rbp+198]
    00423f84mov rdx, [rbp+176]
    00423f8bmov r8l, eax
    00423f8emov r9b, 4
    00423f91mov [rsp+32], 18
    00423f99mov eax, [rbp+364]
    00423f9fmov [rsp+40], eax
    00423fa3mov rax, [rbp+464]
    00423faamov [rsp+48], rax
    00423fafcall fn_424f20
    00423fb4mov esi, eax
    00423fb6jmp 0x423fc7
    00423fb8
    00423fb8loc_423fb8:
    00423fb8xor ecx, ecx
    00423fbamov rdx, [rbp+80]
    00423fbemov r8l, [rbp+92]
    00423fc2call fn_422e50
    00423fc7
    00423fc7loc_423fc7:
    00423fc7movsxd rsi, esi
    00423fcamov [rbp+2*rsi+198], 0
    00423fd4mov [rbp+364], 0
    00423fdemov rcx, rbp
    00423fe1lea rdx, [rbp+198]
    00423fe8or r8l, -1
    00423fecor r9l, -1
    00423ff0call fn_423220
    00423ff5mov esi, eax
    00423ff8jmp 0x42437e
    00423ffd
    00423ffdloc_423ffd:
    00423ffdcmp [rbp+362], 80
    00424005jne 0x424047
    00424007lea rcx, [rbp+328]
    0042400emov rdx, [rbp+176]
    00424015mov r8l, 16
    0042401bcall fn_422880
    00424020mov rcx, [rbp+328]
    00424027call fn_40d710
    0042402cmov rcx, rbp
    0042402fmov rdx, rax
    00424032or r8l, -1
    00424036or r9l, -1
    0042403acall fn_423220
    0042403fmov esi, eax
    00424042jmp 0x42437e
    00424047
    00424047loc_424047:
    00424047xor ecx, ecx
    00424049mov rdx, [rbp+80]
    0042404dmov r8l, [rbp+92]
    00424051call fn_422e50
    00424056jmp 0x42437e
    0042405b
    0042405bloc_42405b:
    0042405bcmp [rbp+362], 83
    00424063jne 0x4240a2
    00424065lea rcx, [rbp+144]
    0042406cmov rdx, [rbp+176]
    00424073call fn_40d750
    00424078mov rcx, [rbp+144]
    0042407fcall fn_40d710
    00424084mov rcx, rbp
    00424087mov rdx, rax
    0042408amov r8l, [rbp+364]
    00424091or r9l, -1
    00424095call fn_423220
    0042409amov esi, eax
    0042409djmp 0x42437e
    004240a2
    004240a2loc_4240a2:
    004240a2xor ecx, ecx
    004240a4mov rdx, [rbp+80]
    004240a8mov r8l, [rbp+92]
    004240accall fn_422e50
    004240b1jmp 0x42437e
    004240b6
    004240b6loc_4240b6:
    004240b6cmp [rbp+362], 83
    004240bejne 0x4240e2
    004240c0mov rcx, rbp
    004240c3mov rdx, [rbp+176]
    004240camov r8l, [rbp+364]
    004240d1or r9l, -1
    004240d5call fn_423220
    004240damov esi, eax
    004240ddjmp 0x42437e
    004240e2
    004240e2loc_4240e2:
    004240e2xor ecx, ecx
    004240e4mov rdx, [rbp+80]
    004240e8mov r8l, [rbp+92]
    004240eccall fn_422e50
    004240f1jmp 0x42437e
    004240f6
    004240f6loc_4240f6:
    004240f6cmp [rbp+362], 83
    004240fejne 0x42413d
    00424100lea rcx, [rbp+136]
    00424107mov rdx, [rbp+176]
    0042410ecall fn_40d880
    00424113mov rcx, [rbp+136]
    0042411acall fn_40d710
    0042411fmov rcx, rbp
    00424122mov rdx, rax
    00424125mov r8l, [rbp+364]
    0042412cor r9l, -1
    00424130call fn_423220
    00424135mov esi, eax
    00424138jmp 0x42437e
    0042413d
    0042413dloc_42413d:
    0042413dxor ecx, ecx
    0042413fmov rdx, [rbp+80]
    00424143mov r8l, [rbp+92]
    00424147call fn_422e50
    0042414cjmp 0x42437e
    00424151
    00424151loc_424151:
    00424151cmp [rbp+362], 83
    00424159jne 0x424195
    0042415bxor eax, eax
    0042415dmov rcx, [rbp+176]
    00424164test rcx, rcx
    00424167je 0x42416f
    00424169mov eax, [rcx-4]
    0042416cshr eax, 1
    0042416f
    0042416floc_42416f:
    0042416fmov rdx, rbp
    00424172mov r8, rcx
    00424175mov r9l, [rbp+364]
    0042417cmov rcx, rdx
    0042417fmov rdx, r8
    00424182mov r8l, r9l
    00424185mov r9l, eax
    00424188call fn_423220
    0042418dmov esi, eax
    00424190jmp 0x42437e
    00424195
    00424195loc_424195:
    00424195xor ecx, ecx
    00424197mov rdx, [rbp+80]
    0042419bmov r8l, [rbp+92]
    0042419fcall fn_422e50
    004241a4jmp 0x42437e
    004241a9
    004241a9loc_4241a9:
    004241a9cmp [rbp+362], 83
    004241b1jne 0x424200
    004241b3lea rcx, [rbp+328]
    004241bamov rdx, [rbp+176]
    004241c1call fn_40d7f0
    004241c6xor esi, esi
    004241c8mov rax, [rbp+328]
    004241cftest rax, rax
    004241d2je 0x4241d7
    004241d4mov esi, [rax-4]
    004241d7
    004241d7loc_4241d7:
    004241d7mov rcx, [rbp+328]
    004241decall fn_40d710
    004241e3mov rcx, rbp
    004241e6mov rdx, rax
    004241e9mov r8l, [rbp+364]
    004241f0mov r9l, esi
    004241f3call fn_423220
    004241f8mov esi, eax
    004241fbjmp 0x42437e
    00424200
    00424200loc_424200:
    00424200xor ecx, ecx
    00424202mov rdx, [rbp+80]
    00424206mov r8l, [rbp+92]
    0042420acall fn_422e50
    0042420fjmp 0x42437e
    00424214
    00424214loc_424214:
    00424214cmp [rbp+362], 83
    0042421cjne 0x42425e
    0042421emov rcx, rbp
    00424221lea rdx, [rbp+128]
    00424228mov r8, [rbp+176]
    0042422fcall fn_423430
    00424234mov rcx, [rbp+128]
    0042423bcall fn_40d710
    00424240mov rcx, rbp
    00424243mov rdx, rax
    00424246mov r8l, [rbp+364]
    0042424dor r9l, -1
    00424251call fn_423220
    00424256mov esi, eax
    00424259jmp 0x42437e
    0042425e
    0042425eloc_42425e:
    0042425exor ecx, ecx
    00424260mov rdx, [rbp+80]
    00424264mov r8l, [rbp+92]
    00424268call fn_422e50
    0042426djmp 0x42437e
    00424272
    00424272loc_424272:
    00424272cmp [rbp+364], 32
    00424279jg 0x424284
    0042427bcmp [rbp+364], -1
    00424282jne 0x42428e
    00424284
    00424284loc_424284:
    00424284mov [rbp+364], 0
    0042428e
    0042428eloc_42428e:
    0042428emovzx rax, [rbp+362]
    00424296sub ax, 68
    0042429atest ax, ax
    0042429dje 0x4242b3
    0042429fsub ax, 17
    004242a3test ax, ax
    004242a6je 0x4242cb
    004242a8sub ax, 3
    004242actest ax, ax
    004242afjne 0x4242fe
    004242b1jmp 0x4242e3
    004242b3
    004242b3loc_4242b3:
    004242b3lea rcx, [rbp+328]
    004242bamov rax, [rbp+176]
    004242c1mov rdx, [rax]
    004242c4call fn_4225f0
    004242c9jmp 0x42430d
    004242cb
    004242cbloc_4242cb:
    004242cblea rcx, [rbp+328]
    004242d2mov rax, [rbp+176]
    004242d9mov rdx, [rax]
    004242dccall fn_422640
    004242e1jmp 0x42430d
    004242e3
    004242e3loc_4242e3:
    004242e3lea rcx, [rbp+328]
    004242eamov rax, [rbp+176]
    004242f1mov rdx, [rax]
    004242f4xor r8, r8
    004242f7call fn_422880
    004242fcjmp 0x42430d
    004242fe
    004242feloc_4242fe:
    004242fexor ecx, ecx
    00424300mov rdx, [rbp+80]
    00424304mov r8l, [rbp+92]
    00424308call fn_422e50
    0042430d
    0042430dloc_42430d:
    0042430dmov rcx, [rbp+328]
    00424314call fn_40d710
    00424319mov rcx, rbp
    0042431cmov rdx, rax
    0042431for r8l, -1
    00424323or r9l, -1
    00424327call fn_423220
    0042432cmov esi, eax
    0042432fjmp 0x42437e
    00424331
    00424331loc_424331:
    00424331cmp [rbp+362], 83
    00424339jne 0x42436f
    0042433bxor eax, eax
    0042433dmov rcx, [rbp+176]
    00424344test rcx, rcx
    00424347je 0x42434c
    00424349mov eax, [rcx-4]
    0042434c
    0042434cloc_42434c:
    0042434cmov rdx, rbp
    0042434fmov r8, rcx
    00424352mov r9l, [rbp+364]
    00424359mov rcx, rdx
    0042435cmov rdx, r8
    0042435fmov r8l, r9l
    00424362mov r9l, eax
    00424365call fn_423220
    0042436amov esi, eax
    0042436djmp 0x42437e
    0042436f
    0042436floc_42436f:
    0042436fxor ecx, ecx
    00424371mov rdx, [rbp+80]
    00424375mov r8l, [rbp+92]
    00424379call fn_422e50
    0042437e
    0042437eloc_42437e:
    0042437etest sil, sil
    00424381je 0x4243eb
    00424383mov rax, [rbp+344]
    0042438amov rcx, [rbp+72]
    0042438esub rax, rcx
    00424391sar rax, 1
    00424395jns 0x42439b
    00424397adc rax, 0
    0042439b
    0042439bloc_42439b:
    0042439bmov [rbp+116], eax
    0042439ejmp 0x42441d
    004243a0
    004243a0loc_4243a0:
    004243a0cmp [rbp+352], 0
    004243a7jne 0x4243c6
    004243a9mov rax, [rbp+344]
    004243b0mov rcx, [rbp+72]
    004243b4sub rax, rcx
    004243b7sar rax, 1
    004243bbjns 0x4243c1
    004243bdadc rax, 0
    004243c1
    004243c1loc_4243c1:
    004243c1mov [rbp+116], eax
    004243c4jmp 0x42441d
    004243c6
    004243c6loc_4243c6:
    004243c6mov rcx, [rbp+344]
    004243cdmov [rcx], ax
    004243d0mov rax, [rbp+96]
    004243d4add rax, 2
    004243d8mov [rbp+96], rax
    004243dcadd [rbp+344], 2
    004243e4sub [rbp+352], 2
    004243eb
    004243ebloc_4243eb:
    004243ebmov rax, [rbp+120]
    004243efmov rcx, [rbp+96]
    004243f3cmp rcx, rax
    004243f6mov [rbp+96], rcx
    004243fajb 0x42358e
    00424400
    00424400loc_424400:
    00424400nop
    00424401mov rax, [rbp+344]
    00424408mov rcx, [rbp+72]
    0042440csub rax, rcx
    0042440fsar rax, 1
    00424413jns 0x424419
    00424415adc rax, 0
    00424419
    00424419loc_424419:
    00424419mov [rbp+116], eax
    0042441cnop
    0042441d
    0042441dloc_42441d:
    0042441dlea rcx, [rbp+128]
    00424424mov edx, 6
    00424429call fn_40bdd0
    0042442elea rcx, [rbp+328]
    00424435call fn_40bcf0
    0042443amov eax, [rbp+116]
    0042443dlea rsp, [rbp+376]
    00424444pop rbx
    00424445pop rsi
    00424446pop rdi
    00424447pop rbp
    00424448ret
    00423490
    00424449
    00424449 48 8d 80 00 00 00 00 H......
    00424450
    00424450fn_424450:
    00424450push rbp
    00424451push rbx
    00424452sub rsp, 40
    00424456mov rbp, rsp
    00424459mov rbx, rdx
    0042445clea rcx, [rbx+128]
    00424463mov edx, 6
    00424468call fn_40bdd0
    0042446dlea rcx, [rbx+328]
    00424474call fn_40bcf0
    00424479lea rsp, [rbp+40]
    0042447dpop rbx
    0042447epop rbp
    0042447fret
    00424450
    00424480
    00424480 01 00 01 00 b0 04 02 00 ff ff ff ff 03 00 00 00 ................
    00424490 49 00 4e 00 46 00 00 00 b0 04 02 00 ff ff ff ff I.N.F...........
    004244a0 03 00 00 00 4e 00 41 00 4e 00 00 00 b0 04 02 00 ....N.A.N.......
    004244b0 ff ff ff ff 05 00 00 00 24 00 2a 00 40 00 40 00 ........$.*.@.@.
    004244c0 40 00 00 00 b0 04 02 00 ff ff ff ff 05 00 00 00 @...............
    004244d0 2a 00 24 00 40 00 40 00 40 00 00 00 b0 04 02 00 *.$.@.@.@.......
    004244e0 ff ff ff ff 05 00 00 00 24 00 20 00 2a 00 40 00 ........$. .*.@.
    004244f0 40 00 00 00 b0 04 02 00 ff ff ff ff 05 00 00 00 @...............
    00424500 2a 00 20 00 24 00 40 00 40 00 00 00 b0 04 02 00 *. .$.@.@.......
    00424510 ff ff ff ff 05 00 00 00 28 00 24 00 2a 00 29 00 ........(.$.*.).
    00424520 40 00 00 00 b0 04 02 00 ff ff ff ff 05 00 00 00 @...............
    00424530 2d 00 24 00 2a 00 40 00 40 00 00 00 b0 04 02 00 -.$.*.@.@.......
    00424540 ff ff ff ff 05 00 00 00 24 00 2d 00 2a 00 40 00 ........$.-.*.@.
    00424550 40 00 00 00 b0 04 02 00 ff ff ff ff 05 00 00 00 @...............
    00424560 24 00 2a 00 2d 00 40 00 40 00 00 00 b0 04 02 00 $.*.-.@.@.......
    00424570 ff ff ff ff 05 00 00 00 28 00 2a 00 24 00 29 00 ........(.*.$.).
    00424580 40 00 00 00 b0 04 02 00 ff ff ff ff 05 00 00 00 @...............
    00424590 2d 00 2a 00 24 00 40 00 40 00 00 00 b0 04 02 00 -.*.$.@.@.......
    004245a0 ff ff ff ff 05 00 00 00 2a 00 2d 00 24 00 40 00 ........*.-.$.@.
    004245b0 40 00 00 00 b0 04 02 00 ff ff ff ff 05 00 00 00 @...............
    004245c0 2a 00 24 00 2d 00 40 00 40 00 00 00 b0 04 02 00 *.$.-.@.@.......
    004245d0 ff ff ff ff 05 00 00 00 2d 00 2a 00 20 00 24 00 ........-.*. .$.
    004245e0 40 00 00 00 b0 04 02 00 ff ff ff ff 05 00 00 00 @...............
    004245f0 2d 00 24 00 20 00 2a 00 40 00 00 00 b0 04 02 00 -.$. .*.@.......
    00424600 ff ff ff ff 05 00 00 00 2a 00 20 00 24 00 2d 00 ........*. .$.-.
    00424610 40 00 00 00 b0 04 02 00 ff ff ff ff 05 00 00 00 @...............
    00424620 24 00 20 00 2a 00 2d 00 40 00 00 00 b0 04 02 00 $. .*.-.@.......
    00424630 ff ff ff ff 05 00 00 00 24 00 20 00 2d 00 2a 00 ........$. .-.*.
    00424640 40 00 00 00 b0 04 02 00 ff ff ff ff 05 00 00 00 @...............
    00424650 2a 00 2d 00 20 00 24 00 40 00 00 00 b0 04 02 00 *.-. .$.@.......
    00424660 ff ff ff ff 05 00 00 00 28 00 24 00 20 00 2a 00 ........(.$. .*.
    00424670 29 00 00 00 b0 04 02 00 ff ff ff ff 05 00 00 00 )...............
    00424680 28 00 2a 00 20 00 24 00 29 00 00 00 cc cc cc cc (.*. .$.).......
    00424690
    00424690fn_424690:
    00424690push rbp
    00424691mov rbp, rsp
    00424694cmp [rcx+152], 0
    0042469bje 0x4246b4
    0042469dmov rax, [rcx+144]
    004246a4mov [rax], dx
    004246a7lea rax, [rcx+144]
    004246aeadd [rax], 2
    004246b2jmp 0x4246c8
    004246b4
    004246b4loc_4246b4:
    004246b4mov rax, [rcx+144]
    004246bbmov [rax], dl
    004246bdlea rax, [rcx+144]
    004246c4add [rax], 1
    004246c8
    004246c8loc_4246c8:
    004246c8lea rax, [rcx+108]
    004246ccadd [rax], 1
    004246cfmov rsp, rbp
    004246d2pop rbp
    004246d3ret
    00424690
    004246d4
    004246d4 // align 0x10
    004246e0
    004246e0fn_4246e0:
    004246e0push rbp
    004246e1push rdi
    004246e2push rsi
    004246e3push rbx
    004246e4sub rsp, 40
    004246e8mov rbp, rsp
    004246ebmov rbx, rcx
    004246eemov [rbp+88], rdx
    004246f2xor esi, esi
    004246f4mov rcx, [rbp+88]
    004246f8test rcx, rcx
    004246fbje 0x424700
    004246fdmov esi, [rcx-4]
    00424700
    00424700loc_424700:
    00424700test esi, esi
    00424702jle 0x424791
    00424708cmp [rbx+152], 0
    0042470fje 0x424742
    00424711mov rcx, [rbp+88]
    00424715call fn_40d710
    0042471amov rcx, [rbx+144]
    00424721mov edi, esi
    00424723add edi, edi
    00424725mov rdx, rcx
    00424728movsxd r8, edi
    0042472bmov rcx, rax
    0042472ecall fn_405ac0
    00424733lea rax, [rbx+144]
    0042473amovsxd rdi, edi
    0042473dadd [rax], rdi
    00424740jmp 0x42478b
    00424742
    00424742loc_424742:
    00424742xor eax, eax
    00424744test rcx, rcx
    00424747je 0x42474c
    00424749mov eax, [rcx-4]
    0042474c
    0042474cloc_42474c:
    0042474cmov ecx, 1
    00424751mov edx, eax
    00424753mov eax, ecx
    00424755cmp eax, edx
    00424757jg 0x42478a
    00424759sub edx, ecx
    0042475badd edx, 1
    0042475e
    0042475eloc_42475e:
    0042475emov rcx, [rbx+144]
    00424765mov r8, [rbp+88]
    00424769movsxd r9, eax
    0042476cmovzx r8, [r8+2*r9-2]
    00424772mov [rcx], r8b
    00424775lea rcx, [rbx+144]
    0042477cadd [rcx], 1
    00424780add eax, 1
    00424783sub edx, 1
    00424786test edx, edx
    00424788jne 0x42475e
    0042478a
    0042478aloc_42478a:
    0042478anop
    0042478b
    0042478bloc_42478b:
    0042478blea rax, [rbx+108]
    0042478fadd [rax], esi
    00424791
    00424791loc_424791:
    00424791lea rsp, [rbp+40]
    00424795pop rbx
    00424796pop rsi
    00424797pop rdi
    00424798pop rbp
    00424799ret
    004246e0
    0042479a
    0042479a // align 0x10
    004247a0
    004247a0fn_4247a0:
    004247a0push rbp
    004247a1mov rbp, rsp
    004247a4movsxd rax, [rcx+80]
    004247a8movzx rax, [rcx+rax+87]
    004247aemovzx dx, al
    004247b2test dx, dx
    004247b5jne 0x4247bb
    004247b7mov al, 48
    004247b9jmp 0x4247c2
    004247bb
    004247bbloc_4247bb:
    004247bblea rcx, [rcx+80]
    004247bfadd [rcx], 1
    004247c2
    004247c2loc_4247c2:
    004247c2mov rsp, rbp
    004247c5pop rbp
    004247c6ret
    004247a0
    004247c7
    004247c7 // align 0x10
    004247d0
    004247d0fn_4247d0:
    004247d0push rbp
    004247d1push rsi
    004247d2push rbx
    004247d3sub rsp, 32
    004247d7mov rbp, rsp
    004247damov rbx, rcx
    004247ddcmp [rbx+192], 17
    004247e4jle 0x4247ef
    004247e6mov [rbx+76], 17
    004247edjmp 0x4247f8
    004247ef
    004247efloc_4247ef:
    004247efmov eax, [rbx+192]
    004247f5mov [rbx+76], eax
    004247f8
    004247f8loc_4247f8:
    004247f8movsx rsi, [rbx+84]
    004247fdtest esi, esi
    004247ffjle 0x424877
    00424801mov [rbx+72], 0
    00424808cmp [rbx+176], 2
    0042480fje 0x424824
    00424811mov eax, esi
    00424813sub eax, 1
    00424816mov ecx, 3
    0042481bcdq
    0042481cidiv ecx
    0042481eadd edx, 1
    00424821mov [rbx+72], edx
    00424824
    00424824loc_424824:
    00424824mov rcx, rbx
    00424827call fn_4247a0
    0042482cmov rcx, rbx
    0042482fmovzx dx, al
    00424833call fn_424690
    00424838sub esi, 1
    0042483blea rax, [rbx+72]
    0042483fsub [rax], 1
    00424842cmp [rbx+72], 0
    00424846jne 0x424871
    00424848test esi, esi
    0042484ajle 0x424871
    0042484cmov [rbx+72], 3
    00424853mov rax, [rbx+200]
    0042485amovzx rax, [rax+376]
    00424862test ax, ax
    00424865je 0x424871
    00424867mov rcx, rbx
    0042486amov edx, eax
    0042486ccall fn_424690
    00424871
    00424871loc_424871:
    00424871test esi, esi
    00424873jne 0x424824
    00424875jmp 0x424887
    00424877
    00424877loc_424877:
    00424877mov rcx, rbx
    0042487amovzx rdx, [rip+0x38746]
    00424882call fn_424690
    00424887
    00424887loc_424887:
    00424887cmp [rbx+76], 0
    0042488bje 0x4248fa
    0042488dmov rax, [rbx+200]
    00424894movzx rax, [rax+378]
    0042489ctest ax, ax
    0042489fje 0x4248ab
    004248a1mov rcx, rbx
    004248a4mov edx, eax
    004248a6call fn_424690
    004248ab
    004248abloc_4248ab:
    004248abtest esi, esi
    004248adjge 0x4248d3
    004248af
    004248afloc_4248af:
    004248afmov rcx, rbx
    004248b2movzx rdx, [rip+0x3870e]
    004248bacall fn_424690
    004248bfadd esi, 1
    004248c2lea rax, [rbx+76]
    004248c6sub [rax], 1
    004248c9test esi, esi
    004248cbje 0x4248d3
    004248cdcmp [rbx+76], 0
    004248d1jne 0x4248af
    004248d3
    004248d3loc_4248d3:
    004248d3cmp [rbx+76], 0
    004248d7jle 0x4248fa
    004248d9
    004248d9loc_4248d9:
    004248d9mov rcx, rbx
    004248dccall fn_4247a0
    004248e1mov rcx, rbx
    004248e4movzx dx, al
    004248e8call fn_424690
    004248edlea rax, [rbx+76]
    004248f1sub [rax], 1
    004248f4cmp [rbx+76], 0
    004248f8jg 0x4248d9
    004248fa
    004248faloc_4248fa:
    004248falea rsp, [rbp+32]
    004248fepop rbx
    004248ffpop rsi
    00424900pop rbp
    00424901ret
    004247d0
    00424902
    00424902 // align 0x10
    00424910
    00424910fn_424910:
    00424910push rbp
    00424911push rsi
    00424912push rbx
    00424913sub rsp, 64
    00424917mov rbp, rsp
    0042491amov [rbp+40], rcx
    0042491emov [rbp+56], 0
    00424926nop
    00424927mov rax, [rbp+40]
    0042492bcmp [rax+192], 4
    00424932jle 0x424938
    00424934xor ebx, ebx
    00424936jmp 0x424942
    00424938
    00424938loc_424938:
    00424938mov rax, [rbp+40]
    0042493cmov ebx, [rax+192]
    00424942
    00424942loc_424942:
    00424942mov rax, [rbp+40]
    00424946movsx rsi, [rax+84]
    0042494bsub esi, 1
    0042494emov rcx, [rbp+40]
    00424952mov dx, 69
    00424956call fn_424690
    0042495bmov rax, [rbp+40]
    0042495fmovzx ax, [rax+87]
    00424964test ax, ax
    00424967je 0x4249a2
    00424969test esi, esi
    0042496bjge 0x424982
    0042496dneg esi
    0042496fmov rcx, [rbp+40]
    00424973movzx rdx, [rip+0x38649]
    0042497bcall fn_424690
    00424980jmp 0x4249c2
    00424982
    00424982loc_424982:
    00424982mov rax, [rbp+40]
    00424986cmp [rax+176], 0
    0042498dje 0x4249c2
    0042498fmov rcx, [rbp+40]
    00424993movzx rdx, [rip+0x3862b]
    0042499bcall fn_424690
    004249a0jmp 0x4249c2
    004249a2
    004249a2loc_4249a2:
    004249a2mov rax, [rbp+40]
    004249a6cmp [rax+176], 0
    004249adje 0x4249c0
    004249afmov rcx, [rbp+40]
    004249b3movzx rdx, [rip+0x3860b]
    004249bbcall fn_424690
    004249c0
    004249c0loc_4249c0:
    004249c0xor esi, esi
    004249c2
    004249c2loc_4249c2:
    004249c2lea rcx, [rbp+56]
    004249c6mov edx, esi
    004249c8call fn_4225b0
    004249cdxor esi, esi
    004249cfmov rax, [rbp+56]
    004249d3test rax, rax
    004249d6je 0x4249db
    004249d8mov esi, [rax-4]
    004249db
    004249dbloc_4249db:
    004249dbcmp esi, ebx
    004249ddjge 0x4249f7
    004249df
    004249dfloc_4249df:
    004249dfmov rcx, [rbp+40]
    004249e3movzx rdx, [rip+0x385dd]
    004249ebcall fn_424690
    004249f0add esi, 1
    004249f3cmp esi, ebx
    004249f5jl 0x4249df
    004249f7
    004249f7loc_4249f7:
    004249f7nop
    004249f8mov rcx, [rbp+40]
    004249fcmov rdx, [rbp+56]
    00424a00call fn_4246e0
    00424a05nop
    00424a06lea rcx, [rbp+56]
    00424a0acall fn_40bcf0
    00424a0flea rsp, [rbp+64]
    00424a13pop rbx
    00424a14pop rsi
    00424a15pop rbp
    00424a16ret
    00424910
    00424a17
    00424a17 90 48 8d 04 05 00 00 00 00 .H.......
    00424a20
    00424a20fn_424a20:
    00424a20push rbp
    00424a21sub rsp, 32
    00424a25mov rbp, rsp
    00424a28lea rcx, [rdx+56]
    00424a2ccall fn_40bcf0
    00424a31lea rsp, [rbp+32]
    00424a35pop rbp
    00424a36ret
    00424a20
    00424a37
    00424a37 // align 0x10
    00424a40
    00424a40fn_424a40:
    00424a40push rbp
    00424a41push rsi
    00424a42push rbx
    00424a43sub rsp, 112
    00424a47mov rbp, rsp
    00424a4amov [rbp+48], r8
    00424a4emov [rbp+63], r9b
    00424a52mov [rbp+64], 0
    00424a5amov [rbp+144], rcx
    00424a61mov [rbp+152], dl
    00424a67movzx rax, [rbp+176]
    00424a6fmov [rbp+176], al
    00424a75mov eax, [rbp+192]
    00424a7bmov [rbp+192], eax
    00424a81mov rax, [rbp+200]
    00424a88mov [rbp+200], rax
    00424a8fnop
    00424a90mov [rbp+80], 0
    00424a97mov [rbp+108], 0
    00424a9emovzx rax, [rbp+63]
    00424aa3test al, al
    00424aa5jne 0x424ad1
    00424aa7cmp [rbp+184], 2
    00424aaejge 0x424abc
    00424ab0mov [rbp+184], 2
    00424abajmp 0x424adb
    00424abc
    00424abcloc_424abc:
    00424abccmp [rbp+184], 17
    00424ac3jle 0x424adb
    00424ac5mov [rbp+184], 17
    00424acfjmp 0x424adb
    00424ad1
    00424ad1loc_424ad1:
    00424ad1mov [rbp+184], 19
    00424adb
    00424adbloc_424adb:
    00424adbmovzx rcx, [rbp+176]
    00424ae3cmp cl, 7
    00424ae6ja 0x424afb
    00424ae8mov al, 1
    00424aeashl eax, cl
    00424aecmovzx rcx, [rip+1060]
    00424af4test al, cl
    00424af6setne al
    00424af9jmp 0x424afd
    00424afb
    00424afbloc_424afb:
    00424afbxor eax, eax
    00424afd
    00424afdloc_424afd:
    00424afdtest al, al
    00424affje 0x424b0a
    00424b01mov [rbp+76], 9999
    00424b08jmp 0x424b13
    00424b0a
    00424b0aloc_424b0a:
    00424b0amov eax, [rbp+192]
    00424b10mov [rbp+76], eax
    00424b13
    00424b13loc_424b13:
    00424b13lea rcx, [rbp+84]
    00424b17mov rdx, [rbp+48]
    00424b1bmovzx r8, [rbp+63]
    00424b20mov r9l, [rbp+184]
    00424b27mov eax, [rbp+76]
    00424b2amov [rsp+32], eax
    00424b2ecall fn_425680
    00424b33movzx ebx, [rbp+84]
    00424b37sub ebx, 2047
    00424b3dcmp ebx, 2
    00424b40jae 0x424b72
    00424b42cmp [rbp+86], 0
    00424b46je 0x424b58
    00424b48mov rcx, rbp
    00424b4bmovzx rdx, [rip+0x38471]
    00424b53call fn_424690
    00424b58
    00424b58loc_424b58:
    00424b58mov rcx, rbp
    00424b5blea rax, [rip+0x3846e]
    00424b62mov ebx, ebx
    00424b64mov rdx, [rax+8*rbx]
    00424b68call fn_4246e0
    00424b6djmp 0x424eec
    00424b72
    00424b72loc_424b72:
    00424b72movzx rcx, [rbp+176]
    00424b7acmp cl, 7
    00424b7dja 0x424b92
    00424b7fmov al, 1
    00424b81shl eax, cl
    00424b83movzx rcx, [rip+910]
    00424b8btest al, cl
    00424b8dsetne al
    00424b90jmp 0x424b94
    00424b92
    00424b92loc_424b92:
    00424b92xor eax, eax
    00424b94
    00424b94loc_424b94:
    00424b94test al, al
    00424b96je 0x424bae
    00424b98movsx rax, [rbp+84]
    00424b9dcmp eax, [rbp+184]
    00424ba3jle 0x424bb5
    00424ba5cmp [rbp+176], 1
    00424bacje 0x424bb5
    00424bae
    00424baeloc_424bae:
    00424baemov [rbp+176], 0
    00424bb5
    00424bb5loc_424bb5:
    00424bb5movzx rax, [rbp+176]
    00424bbdsub al, 1
    00424bc0cmp al, -1
    00424bc3je 0x424be9
    00424bc5test al, al
    00424bc7je 0x424d35
    00424bcdsub al, 1
    00424bd0cmp al, 2
    00424bd3jb 0x424dae
    00424bd9sub al, 2
    00424bdctest al, al
    00424bdejne 0x424eeb
    00424be4jmp 0x424dd1
    00424be9
    00424be9loc_424be9:
    00424be9cmp [rbp+86], 0
    00424bedje 0x424bff
    00424befmov rcx, rbp
    00424bf2movzx rdx, [rip+0x383ca]
    00424bfacall fn_424690
    00424bff
    00424bffloc_424bff:
    00424bffxor ebx, ebx
    00424c01movsx rax, [rbp+84]
    00424c06mov [rbp+76], eax
    00424c09mov eax, [rbp+76]
    00424c0ccmp eax, [rbp+184]
    00424c12jg 0x424c1a
    00424c14cmp [rbp+76], -3
    00424c18jge 0x424c23
    00424c1a
    00424c1aloc_424c1a:
    00424c1amov [rbp+76], 1
    00424c21mov bl, 1
    00424c23
    00424c23loc_424c23:
    00424c23cmp [rbp+76], 0
    00424c27jle 0x424cb2
    00424c2dcmp [rbp+76], 0
    00424c31jle 0x424c51
    00424c33
    00424c33loc_424c33:
    00424c33mov rcx, rbp
    00424c36call fn_4247a0
    00424c3bmov rcx, rbp
    00424c3emovzx dx, al
    00424c42call fn_424690
    00424c47sub [rbp+76], 1
    00424c4bcmp [rbp+76], 0
    00424c4fjg 0x424c33
    00424c51
    00424c51loc_424c51:
    00424c51nop
    00424c52movsxd rax, [rbp+80]
    00424c56movzx ax, [rax+rbp+87]
    00424c5ctest ax, ax
    00424c5fje 0x424c9d
    00424c61mov rcx, rbp
    00424c64mov rax, [rbp+200]
    00424c6bmovzx rdx, [rax+378]
    00424c73call fn_424690
    00424c78jmp 0x424c8e
    00424c7a
    00424c7aloc_424c7a:
    00424c7amov rcx, rbp
    00424c7dcall fn_4247a0
    00424c82mov rcx, rbp
    00424c85movzx dx, al
    00424c89call fn_424690
    00424c8e
    00424c8eloc_424c8e:
    00424c8emovsxd rax, [rbp+80]
    00424c92movzx ax, [rax+rbp+87]
    00424c98test ax, ax
    00424c9bjne 0x424c7a
    00424c9d
    00424c9dloc_424c9d:
    00424c9dtest bl, bl
    00424c9fje 0x424eeb
    00424ca5mov rcx, rbp
    00424ca8call fn_424910
    00424cadjmp 0x424eeb
    00424cb2
    00424cb2loc_424cb2:
    00424cb2mov rcx, rbp
    00424cb5movzx rdx, [rip+0x3830b]
    00424cbdcall fn_424690
    00424cc2movzx ax, [rbp+87]
    00424cc7test ax, ax
    00424ccaje 0x424eeb
    00424cd0mov rcx, rbp
    00424cd3mov rax, [rbp+200]
    00424cdamovzx rdx, [rax+378]
    00424ce2call fn_424690
    00424ce7neg [rbp+76]
    00424ceacmp [rbp+76], 0
    00424ceejle 0x424d0a
    00424cf0
    00424cf0loc_424cf0:
    00424cf0mov rcx, rbp
    00424cf3movzx rdx, [rip+0x382cd]
    00424cfbcall fn_424690
    00424d00sub [rbp+76], 1
    00424d04cmp [rbp+76], 0
    00424d08jg 0x424cf0
    00424d0a
    00424d0aloc_424d0a:
    00424d0anop
    00424d0bjmp 0x424d21
    00424d0d
    00424d0dloc_424d0d:
    00424d0dmov rcx, rbp
    00424d10call fn_4247a0
    00424d15mov rcx, rbp
    00424d18movzx dx, al
    00424d1ccall fn_424690
    00424d21
    00424d21loc_424d21:
    00424d21movsxd rax, [rbp+80]
    00424d25movzx ax, [rax+rbp+87]
    00424d2btest ax, ax
    00424d2ejne 0x424d0d
    00424d30jmp 0x424eeb
    00424d35
    00424d35loc_424d35:
    00424d35cmp [rbp+86], 0
    00424d39je 0x424d4b
    00424d3bmov rcx, rbp
    00424d3emovzx rdx, [rip+0x3827e]
    00424d46call fn_424690
    00424d4b
    00424d4bloc_424d4b:
    00424d4bmov rcx, rbp
    00424d4ecall fn_4247a0
    00424d53mov rcx, rbp
    00424d56movzx dx, al
    00424d5acall fn_424690
    00424d5fmov rcx, rbp
    00424d62mov rax, [rbp+200]
    00424d69movzx rdx, [rax+378]
    00424d71call fn_424690
    00424d76sub [rbp+184], 1
    00424d7d
    00424d7dloc_424d7d:
    00424d7dmov rcx, rbp
    00424d80call fn_4247a0
    00424d85mov rcx, rbp
    00424d88movzx dx, al
    00424d8ccall fn_424690
    00424d91sub [rbp+184], 1
    00424d98cmp [rbp+184], 0
    00424d9fjne 0x424d7d
    00424da1mov rcx, rbp
    00424da4call fn_424910
    00424da9jmp 0x424eeb
    00424dae
    00424daeloc_424dae:
    00424daecmp [rbp+86], 0
    00424db2je 0x424dc4
    00424db4mov rcx, rbp
    00424db7movzx rdx, [rip+0x38205]
    00424dbfcall fn_424690
    00424dc4
    00424dc4loc_424dc4:
    00424dc4mov rcx, rbp
    00424dc7call fn_4247d0
    00424dccjmp 0x424eeb
    00424dd1
    00424dd1loc_424dd1:
    00424dd1cmp [rbp+86], 0
    00424dd5je 0x424e17
    00424dd7mov rax, [rbp+200]
    00424ddemovzx rax, [rax+382]
    00424de6cmp al, 15
    00424de9jbe 0x424dfd
    00424deblea rcx, [rbp+64]
    00424defmov rdx, [rip+0x38282]
    00424df6call fn_40c3e0
    00424dfbjmp 0x424e52
    00424dfd
    00424dfdloc_424dfd:
    00424dfdlea rcx, [rbp+64]
    00424e01lea rdx, [rip+0x381f8]
    00424e08movzx rax, al
    00424e0cmov rdx, [rdx+8*rax]
    00424e10call fn_40c3e0
    00424e15jmp 0x424e52
    00424e17
    00424e17loc_424e17:
    00424e17mov rax, [rbp+200]
    00424e1emovzx rax, [rax+8]
    00424e23cmp al, 3
    00424e26jbe 0x424e3a
    00424e28lea rcx, [rbp+64]
    00424e2cmov rdx, [rip+0x381c5]
    00424e33call fn_40c3e0
    00424e38jmp 0x424e52
    00424e3a
    00424e3aloc_424e3a:
    00424e3alea rcx, [rbp+64]
    00424e3elea rdx, [rip+0x3819b]
    00424e45movzx rax, al
    00424e49mov rdx, [rdx+8*rax]
    00424e4dcall fn_40c3e0
    00424e52
    00424e52loc_424e52:
    00424e52xor eax, eax
    00424e54mov rcx, [rbp+64]
    00424e58test rcx, rcx
    00424e5bje 0x424e60
    00424e5dmov eax, [rcx-4]
    00424e60
    00424e60loc_424e60:
    00424e60mov ecx, 1
    00424e65mov esi, eax
    00424e67mov ebx, ecx
    00424e69cmp ebx, esi
    00424e6bjg 0x424eea
    00424e6dsub esi, ecx
    00424e6fadd esi, 1
    00424e72
    00424e72loc_424e72:
    00424e72mov rax, [rbp+64]
    00424e76movsxd rcx, ebx
    00424e79movzx rax, [rax+2*rcx-2]
    00424e7fmov ecx, eax
    00424e81sub cx, 36
    00424e85test cx, cx
    00424e88je 0x424e9e
    00424e8asub cx, 6
    00424e8etest cx, cx
    00424e91je 0x424ecc
    00424e93sub cx, 22
    00424e97test cx, cx
    00424e9ajne 0x424ed6
    00424e9cjmp 0x424eea
    00424e9e
    00424e9eloc_424e9e:
    00424e9emov rax, [rbp+200]
    00424ea5mov rcx, [rax]
    00424ea8mov rdx, [rip+0x379a9]
    00424eafcall fn_40dc90
    00424eb4test eax, eax
    00424eb6je 0x424ee0
    00424eb8mov rcx, rbp
    00424ebbmov rax, [rbp+200]
    00424ec2mov rdx, [rax]
    00424ec5call fn_4246e0
    00424ecajmp 0x424ee0
    00424ecc
    00424eccloc_424ecc:
    00424eccmov rcx, rbp
    00424ecfcall fn_4247d0
    00424ed4jmp 0x424ee0
    00424ed6
    00424ed6loc_424ed6:
    00424ed6mov rcx, rbp
    00424ed9mov edx, eax
    00424edbcall fn_424690
    00424ee0
    00424ee0loc_424ee0:
    00424ee0add ebx, 1
    00424ee3sub esi, 1
    00424ee6test esi, esi
    00424ee8jne 0x424e72
    00424eea
    00424eealoc_424eea:
    00424eeanop
    00424eeb
    00424eebloc_424eeb:
    00424eebnop
    00424eec
    00424eecloc_424eec:
    00424eeclea rcx, [rbp+64]
    00424ef0call fn_40bcf0
    00424ef5mov eax, [rbp+108]
    00424ef8lea rsp, [rbp+112]
    00424efcpop rbx
    00424efdpop rsi
    00424efepop rbp
    00424effret
    00424a40