File trigona_be6dfedd91e1ebc81d58a61b05b0ef93322425b247636a0f7f5c3eeebbc52edd.exe
Function:
    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
    00424f00
    00424f00fn_424f00:
    00424f00push rbp
    00424f01sub rsp, 32
    00424f05mov rbp, rsp
    00424f08lea rcx, [rdx+64]
    00424f0ccall fn_40bcf0
    00424f11lea rsp, [rbp+32]
    00424f15pop rbp
    00424f16ret
    00424f00
    00424f17
    00424f17 00 03 1f cc cc cc cc cc cc .........
    00424f20
    00424f20fn_424f20:
    00424f20sub rsp, 72
    00424f24mov al, 1
    00424f26mov r10, rdx
    00424f29mov r11l, r8l
    00424f2cmov [rsp+32], r9b
    00424f31mov edx, [rsp+112]
    00424f35mov [rsp+40], edx
    00424f39mov edx, [rsp+120]
    00424f3dmov [rsp+48], edx
    00424f41mov rdx, [rsp+128]
    00424f49mov [rsp+56], rdx
    00424f4emov edx, eax
    00424f50mov r8, r10
    00424f53mov r9l, r11l
    00424f56call fn_424a40
    00424f5badd rsp, 72
    00424f5fret
    00424f20
    00424f60
    00424f60fn_424f60:
    00424f60push rsi
    00424f61push rbx
    00424f62sub rsp, 56
    00424f66movdqa [rsp+32], x6
    00424f6cmov rbx, rdx
    00424f6fmovapd x6, x2
    00424f73mov rcx, rbx
    00424f76mov edx, 10
    00424f7bxor r8, r8
    00424f7ecall fn_4069b0
    00424f83movsd_xmm x0, [rip+141]
    00424f8bcomisd x0, x6
    00424f8fjbe 0x424f95
    00424f91mov [rbx+9], -128
    00424f95
    00424f95loc_424f95:
    00424f95movapd x0, x6
    00424f99call fn_4062a0
    00424f9ecall fn_406280
    00424fa3mov rcx, rax
    00424fa6xor r8, r8
    00424fa9jmp 0x424ff9
    00424fab
    00424fabloc_424fab:
    00424fabmov r9l, 100
    00424fb1mov rax, rcx
    00424fb4cqo
    00424fb6idiv r9
    00424fb9mov r9, rdx
    00424fbcmovsxd r10, r8l
    00424fbfmov r11l, 10
    00424fc5mov eax, r9l
    00424fc8cdq
    00424fc9idiv r11l
    00424fccmov r11, rdx
    00424fcfmov esi, 10
    00424fd4mov eax, r9l
    00424fd7cdq
    00424fd8idiv esi
    00424fdashl eax, 4
    00424fddadd r11b, al
    00424fe0mov [rbx+r10], r11b
    00424fe4mov r9l, 100
    00424feamov rax, rcx
    00424fedcqo
    00424fefidiv r9
    00424ff2mov rcx, rax
    00424ff5add r8l, 1
    00424ff9
    00424ff9loc_424ff9:
    00424ff9test rcx, rcx
    00424ffcjle 0x425004
    00424ffecmp r8l, 9
    00425002jl 0x424fab
    00425004
    00425004loc_425004:
    00425004mov rax, rbx
    00425007movdqa x6, [rsp+32]
    0042500dadd rsp, 56
    00425011pop rbx
    00425012pop rsi
    00425013ret
    00424f60
    00425014
    00425014 48 8d 40 00 00 00 00 00 00 00 00 00 H.@.........
    00425020
    00425020fn_425020:
    00425020push rbp
    00425021push rbx
    00425022sub rsp, 56
    00425026mov rbp, rsp
    00425029mov rbx, rcx
    0042502cmovsd_xmm [rbp+88], x1
    00425031movzx eax, [rbp+94]
    00425035shr eax, 4
    00425038mov [rbp+44], eax
    0042503bmov rax, [rbx+48]
    0042503fmov ecx, [rbp+44]
    00425042and ecx, 2048
    00425048cmp ecx, 2048
    0042504esete cl
    00425051mov [rax+2], cl
    00425054and [rbp+44], 2047
    0042505bcmp [rbp+44], 0
    0042505fjne 0x4250a0
    00425061movzx rax, [rbp+94]
    00425066test ax, 15
    0042506bjne 0x4250a0
    0042506dcmp [rbp+92], 0
    00425072jne 0x4250a0
    00425074cmp [rbp+90], 0
    00425079jne 0x4250a0
    0042507bcmp [rbp+88], 0
    00425080jne 0x4250a0
    00425082mov rax, [rbx+48]
    00425086mov [rax], 0
    0042508bmov rax, [rbx+48]
    0042508fmov [rax+3], 0
    00425093mov rax, [rbx+48]
    00425097mov [rax+2], 0
    0042509bjmp 0x42530b
    004250a0
    004250a0loc_4250a0:
    004250a0cmp [rbp+44], 2047
    004250a7jne 0x4250f3
    004250a9movzx rax, [rbp+94]
    004250aetest ax, 15
    004250b3jne 0x4250d5
    004250b5cmp [rbp+92], 0
    004250bajne 0x4250d5
    004250bccmp [rbp+90], 0
    004250c1jne 0x4250d5
    004250c3cmp [rbp+88], 0
    004250c8jne 0x4250d5
    004250camov rax, [rbx+48]
    004250cemov [rax], 2047
    004250d3jmp 0x4250e6
    004250d5
    004250d5loc_4250d5:
    004250d5mov rax, [rbx+48]
    004250d9mov [rax], 2048
    004250demov rax, [rbx+48]
    004250e2mov [rax+2], 0
    004250e6
    004250e6loc_4250e6:
    004250e6mov rax, [rbx+48]
    004250eamov [rax+3], 0
    004250eejmp 0x42530b
    004250f3
    004250f3loc_4250f3:
    004250f3mov rax, [rbx+48]
    004250f7cmp [rax+2], 0
    004250fbje 0x42510f
    004250fdmovsd_xmm x0, [rbp+88]
    00425102xorpd x0, [rip+534]
    0042510amovsd_xmm [rbp+88], x0
    0042510f
    0042510floc_42510f:
    0042510fcmp [rbp+44], 0
    00425113jne 0x425134
    00425115mov rax, [rbp+88]
    00425119jmp 0x425122
    0042511b
    0042511bloc_42511b:
    0042511bsub [rbp+44], 1
    0042511fadd rax, rax
    00425122
    00425122loc_425122:
    00425122mov rcx, 0x8000000000000
    0042512cmov rdx, rax
    0042512ftest rcx, rdx
    00425132je 0x42511b
    00425134
    00425134loc_425134:
    00425134sub [rbp+44], 1023
    0042513bmov eax, [rbp+44]
    0042513eimul eax, eax, 19728
    00425144mov [rbp+44], eax
    00425147movsx rax, [rbp+46]
    0042514cmov [rbp+44], eax
    0042514fadd [rbp+44], 1
    00425153mov rax, [rbx+48]
    00425157movzx rcx, [rbp+44]
    0042515cmov [rax], cx
    0042515fmovsd_xmm x0, [rbp+88]
    00425164mov edx, 18
    00425169sub edx, [rbp+44]
    0042516ccall fn_408300
    00425171call fn_406280
    00425176cvtsi2sd x0, rax
    0042517bmovsd_xmm [rbp+88], x0
    00425180movsd_xmm x0, [rbp+88]
    00425185comisd x0, [rip+0x37e2b]
    0042518djb 0x4251ad
    0042518fcvtsi2sd x0, [rip+0x37e29]
    00425197movsd_xmm x1, [rbp+88]
    0042519cdivsd x1, x0
    004251a0movsd_xmm [rbp+88], x1
    004251a5mov rax, [rbx+48]
    004251a9add [rax], 1
    004251ad
    004251adloc_4251ad:
    004251admov rcx, rbx
    004251b0lea rdx, [rbp+34]
    004251b4movsd_xmm x2, [rbp+88]
    004251b9call fn_424f60
    004251bemov eax, 8
    004251c3lea rcx, [rbp+42]
    004251c7
    004251c7loc_4251c7:
    004251c7movzx rdx, [rcx]
    004251cbmov r8, [rbx+48]
    004251cfmov r9l, 16
    004251d5mov r10l, eax
    004251d8add r10l, r10l
    004251dbsub r9l, r10l
    004251demovsxd r9, r9l
    004251e1mov r10l, edx
    004251e4and r10b, 15
    004251e8movzx r10w, r10b
    004251edshl r10l, 8
    004251f1and dl, 240
    004251f4movzx rdx, dl
    004251f8shr edx, 4
    004251fbadd r10w, dx
    004251ffadd r10w, 12336
    00425205mov [r8+r9+3], r10w
    0042520bsub eax, 1
    0042520esub rcx, 1
    00425212cmp eax, -1
    00425215jne 0x4251c7
    00425217nop
    00425218mov rax, [rbx+48]
    0042521cmov [rax+21], 0
    00425220mov rax, [rbx+48]
    00425224movsx rax, [rax]
    00425228add eax, [rbx+80]
    0042522btest eax, eax
    0042522djge 0x42524d
    0042522fmov rax, [rbx+48]
    00425233mov [rax], 0
    00425238mov rax, [rbx+48]
    0042523cmov [rax+2], 0
    00425240mov rax, [rbx+48]
    00425244mov [rax+3], 0
    00425248jmp 0x42530b
    0042524d
    0042524dloc_42524d:
    0042524dmov rax, [rbx+48]
    00425251movsx rax, [rax]
    00425255add eax, [rbx+80]
    00425258cmp eax, [rbx+72]
    0042525bjl 0x425260
    0042525dmov eax, [rbx+72]
    00425260
    00425260loc_425260:
    00425260cmp eax, 18
    00425263jge 0x425278
    00425265mov rcx, [rbx+48]
    00425269movsxd rdx, eax
    0042526cmovzx cx, [rcx+rdx+3]
    00425272cmp cx, 53
    00425276jae 0x4252b4
    00425278
    00425278loc_425278:
    00425278cmp eax, 18
    0042527bjle 0x425282
    0042527dmov eax, 18
    00425282
    00425282loc_425282:
    00425282mov rcx, [rbx+48]
    00425286movsxd rdx, eax
    00425289mov [rcx+rdx+3], 0
    0042528esub eax, 1
    00425291test eax, eax
    00425293jge 0x42529f
    00425295mov rax, [rbx+48]
    00425299mov [rax+2], 0
    0042529djmp 0x42530b
    0042529f
    0042529floc_42529f:
    0042529fmov rcx, [rbx+48]
    004252a3movsxd rdx, eax
    004252a6movzx cx, [rcx+rdx+3]
    004252accmp cx, 48
    004252b0jne 0x42530b
    004252b2jmp 0x425282
    004252b4
    004252b4loc_4252b4:
    004252b4mov rcx, [rbx+48]
    004252b8mov edx, eax
    004252baadd edx, 1
    004252bdmovsxd rdx, edx
    004252c0mov [rcx+rdx+3], 0
    004252c5
    004252c5loc_4252c5:
    004252c5mov rcx, [rbx+48]
    004252c9movsxd rdx, eax
    004252ccmov [rcx+rdx+3], 0
    004252d1sub eax, 1
    004252d4test eax, eax
    004252d6jge 0x4252ea
    004252d8mov rax, [rbx+48]
    004252dcmov [rax+3], 49
    004252e0mov rax, [rbx+48]
    004252e4add [rax], 1
    004252e8jmp 0x42530b
    004252ea
    004252ealoc_4252ea:
    004252eamovsxd rcx, eax
    004252edmov rdx, [rbx+48]
    004252f1lea rdx, [rdx+rcx+3]
    004252f6add [rdx], 1
    004252f9mov rdx, [rbx+48]
    004252fdmovzx cx, [rdx+rcx+3]
    00425303cmp cx, 57
    00425307jbe 0x42530b
    00425309jmp 0x4252c5
    0042530b
    0042530bloc_42530b:
    0042530blea rsp, [rbp+56]
    0042530fpop rbx
    00425310pop rbp
    00425311ret
    00425020
    00425312
    00425312 64 48 8d 44 20 00 48 8d 04 05 00 00 00 00 dH.D .H.......
    00425320 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 80 ................
    00425330
    00425330fn_425330:
    00425330push rbp
    00425331push rbx
    00425332sub rsp, 72
    00425336mov rbp, rsp
    00425339mov [rbp+40], rcx
    0042533dmov [rbp+56], 0
    00425345mov [rbp+48], 0
    0042534dmov [rbp+104], rdx
    00425351nop
    00425352mov rax, [rbp+40]
    00425356mov rax, [rax+48]
    0042535amov [rax+2], 0
    0042535emov rax, [rbp+40]
    00425362mov rax, [rax+48]
    00425366mov [rax], 0
    0042536bmov rax, [rbp+40]
    0042536fmov rax, [rax+48]
    00425373mov [rax+3], 0
    00425377mov rax, [rbp+104]
    0042537btest rax, rax
    0042537eje 0x425627
    00425384xor ebx, ebx
    00425386mov rcx, 0x8000000000000000
    00425390mov rdx, rax
    00425393test rcx, rdx
    00425396je 0x42539d
    00425398mov bl, 1
    0042539aneg rax
    0042539d
    0042539dloc_42539d:
    0042539dlea rcx, [rbp+48]
    004253a1mov rdx, rax
    004253a4xor r8, r8
    004253a7call fn_4222b0
    004253aclea rcx, [rbp+48]
    004253b0lea rdx, [rbp+56]
    004253b4call fn_42db90
    004253b9mov rax, [rbp+40]
    004253bdcmp [rax+80], 4
    004253c1jl 0x4253d0
    004253c3mov rax, [rbp+40]
    004253c7mov [rax+80], 4
    004253cejmp 0x4253e5
    004253d0
    004253d0loc_4253d0:
    004253d0mov rax, [rbp+40]
    004253d4cmp [rax+80], 0
    004253d8jge 0x4253e5
    004253damov rax, [rbp+40]
    004253demov [rax+80], 0
    004253e5
    004253e5loc_4253e5:
    004253e5mov rax, [rbp+40]
    004253e9cmp [rax+80], 4
    004253edjge 0x42558a
    004253f3mov ecx, 4
    004253f8mov rax, [rbp+40]
    004253fcsub ecx, [rax+80]
    004253ffmov rdx, [rbp+56]
    00425403mov rax, rdx
    00425406test rax, rax
    00425409je 0x42540f
    0042540bmov rax, [rax-8]
    0042540f
    0042540floc_42540f:
    0042540fmovsxd r8, ecx
    00425412cmp rax, r8
    00425415jl 0x425627
    0042541bmov rax, rdx
    0042541etest rax, rax
    00425421je 0x425427
    00425423mov rax, [rax-8]
    00425427
    00425427loc_425427:
    00425427mov edx, eax
    00425429sub edx, ecx
    0042542bmovsxd rax, edx
    0042542emov r8, [rbp+56]
    00425432movzx r8, [r8+2*rax]
    00425437mov r9, [rbp+56]
    0042543bmov [r9+2*rax], 48
    00425442add edx, 1
    00425445xor eax, eax
    00425447jmp 0x425468
    00425449
    00425449loc_425449:
    00425449movsxd r9, edx
    0042544cmov r10, [rbp+56]
    00425450cmp [r10+2*r9], 48
    00425456je 0x425465
    00425458mov al, 1
    0042545amov r10, [rbp+56]
    0042545emov [r10+2*r9], 48
    00425465
    00425465loc_425465:
    00425465add edx, 1
    00425468
    00425468loc_425468:
    00425468mov r9, [rbp+56]
    0042546ctest r9, r9
    0042546fje 0x425475
    00425471mov r9, [r9-8]
    00425475
    00425475loc_425475:
    00425475movsxd r10, edx
    00425478cmp r10, r9
    0042547bjl 0x425449
    0042547dcmp r8w, 53
    00425482jb 0x42558a
    00425488mov rdx, [rbp+56]
    0042548ctest rdx, rdx
    0042548fje 0x425495
    00425491mov rdx, [rdx-8]
    00425495
    00425495loc_425495:
    00425495lea rdx, [rdx-1]
    00425499sub edx, ecx
    0042549bcmp r8w, 53
    004254a0ja 0x4254f6
    004254a2test al, al
    004254a4jne 0x4254f6
    004254a6test edx, edx
    004254a8jl 0x42558a
    004254aemov rax, [rbp+56]
    004254b2movsxd rcx, edx
    004254b5movzx rcx, [rax+2*rcx]
    004254basub cx, 48
    004254becmp cx, 15
    004254c2ja 0x4254da
    004254c4mov ax, 1
    004254c8shl eax, cl
    004254camovzx rcx, [rip+426]
    004254d2test ax, cx
    004254d5setne al
    004254d8jmp 0x4254dc
    004254da
    004254daloc_4254da:
    004254daxor eax, eax
    004254dc
    004254dcloc_4254dc:
    004254dctest al, al
    004254deje 0x42558a
    004254e4jmp 0x4254f6
    004254e6
    004254e6loc_4254e6:
    004254e6mov rax, [rbp+56]
    004254eamovsxd rcx, edx
    004254edmov [rax+2*rcx], 48
    004254f3sub edx, 1
    004254f6
    004254f6loc_4254f6:
    004254f6test edx, edx
    004254f8jl 0x425508
    004254famov rax, [rbp+56]
    004254femovsxd rcx, edx
    00425501cmp [rax+2*rcx], 57
    00425506je 0x4254e6
    00425508
    00425508loc_425508:
    00425508test edx, edx
    0042550ajge 0x42557b
    0042550cmov rax, [rbp+56]
    00425510test rax, rax
    00425513je 0x425519
    00425515mov rax, [rax-8]
    00425519
    00425519loc_425519:
    00425519lea rcx, [rbp+56]
    0042551dmov rdx, [rip-0x22774]
    00425524mov r8l, 1
    0042552alea r9, [rax+1]
    0042552ecall fn_410430
    00425533mov rax, [rbp+56]
    00425537test rax, rax
    0042553aje 0x425540
    0042553cmov rax, [rax-8]
    00425540
    00425540loc_425540:
    00425540lea rcx, [rax-1]
    00425544cmp ecx, 1
    00425547jl 0x42556f
    00425549
    00425549loc_425549:
    00425549mov rax, [rbp+56]
    0042554dmovsxd rdx, ecx
    00425550mov r8, [rbp+56]
    00425554mov r9l, ecx
    00425557sub r9l, 1
    0042555bmovsxd r9, r9l
    0042555emovzx r8, [r8+2*r9]
    00425563mov [rax+2*rdx], r8w
    00425568sub ecx, 1
    0042556btest ecx, ecx
    0042556djne 0x425549
    0042556f
    0042556floc_42556f:
    0042556fnop
    00425570mov rax, [rbp+56]
    00425574mov [rax], 49
    00425579jmp 0x42558a
    0042557b
    0042557bloc_42557b:
    0042557bmov rax, [rbp+56]
    0042557fmovsxd rdx, edx
    00425582lea rax, [rax+2*rdx]
    00425586add [rax], 1
    0042558a
    0042558aloc_42558a:
    0042558amov rdx, [rbp+56]
    0042558etest rdx, rdx
    00425591je 0x425597
    00425593mov rdx, [rdx-8]
    00425597
    00425597loc_425597:
    00425597mov eax, edx
    00425599sub ax, 4
    0042559dsub edx, 1
    004255a0jmp 0x4255a5
    004255a2
    004255a2loc_4255a2:
    004255a2sub edx, 1
    004255a5
    004255a5loc_4255a5:
    004255a5test edx, edx
    004255a7jl 0x4255b8
    004255a9mov rcx, [rbp+56]
    004255admovsxd r8, edx
    004255b0cmp [rcx+2*r8], 48
    004255b6je 0x4255a2
    004255b8
    004255b8loc_4255b8:
    004255b8test edx, edx
    004255bajl 0x425626
    004255bcxor r8, r8
    004255bfmov r9l, edx
    004255c2mov ecx, r8l
    004255c5cmp ecx, r9l
    004255c8jg 0x4255fc
    004255casub r9l, r8l
    004255cdadd r9l, 1
    004255d1mov r8, [rbp+40]
    004255d5mov r8, [r8+48]
    004255d9lea r8, [r8+3]
    004255dd
    004255ddloc_4255dd:
    004255ddmov r10, [rbp+56]
    004255e1movsxd r11, ecx
    004255e4movzx r10, [r10+2*r11]
    004255e9mov [r8], r10b
    004255ecadd ecx, 1
    004255efadd r8, 1
    004255f3sub r9l, 1
    004255f7test r9l, r9l
    004255fajne 0x4255dd
    004255fc
    004255fcloc_4255fc:
    004255fcnop
    004255fdmov rcx, [rbp+40]
    00425601mov rcx, [rcx+48]
    00425605add edx, 1
    00425608movsxd rdx, edx
    0042560bmov [rcx+rdx+3], 0
    00425610mov rcx, [rbp+40]
    00425614mov rcx, [rcx+48]
    00425618mov [rcx], ax
    0042561bmov rax, [rbp+40]
    0042561fmov rax, [rax+48]
    00425623mov [rax+2], bl
    00425626
    00425626loc_425626:
    00425626nop
    00425627
    00425627loc_425627:
    00425627lea rcx, [rbp+48]
    0042562bcall fn_40bcf0
    00425630lea rcx, [rbp+56]
    00425634mov rdx, [rip-0x2288b]
    0042563bcall fn_410600
    00425640lea rsp, [rbp+72]
    00425644pop rbx
    00425645pop rbp
    00425646ret
    00425330