File trigona_be6dfedd91e1ebc81d58a61b05b0ef93322425b247636a0f7f5c3eeebbc52edd.exe
Function:
    0040a4e0
    0040a4e0fn_40a4e0:
    0040a4e0push rbp
    0040a4e1push rbx
    0040a4e2sub rsp, 296
    0040a4e9mov rbp, rsp
    0040a4ecmov [rbp+56], rbp
    0040a4f0mov [rbp+320], rcx
    0040a4f7mov [rbp+328], rdx
    0040a4femov [rbp+336], r8
    0040a505mov [rbp+344], r9
    0040a50cmov [rbp+244], 1
    0040a516mov rax, [rbp+344]
    0040a51dmov rcx, [rax+56]
    0040a521mov [rbp+144], rcx
    0040a528mov rcx, [rax+8]
    0040a52cmov [rbp+232], rcx
    0040a533mov rcx, [rax]
    0040a536sub rcx, [rbp+232]
    0040a53dmov [rbp+224], rcx
    0040a544mov rcx, [rbp+320]
    0040a54bmov ecx, [rcx+4]
    0040a54etest ecx, 102
    0040a554jne 0x40a8da
    0040a55axor eax, eax
    0040a55cmov rcx, [rbp+144]
    0040a563mov ebx, [rcx]
    0040a565sub ebx, 1
    0040a568mov [rbp+204], eax
    0040a56ecmp [rbp+204], ebx
    0040a574jg 0x40a8d4
    0040a57asub ebx, eax
    0040a57cadd ebx, 1
    0040a57f
    0040a57floc_40a57f:
    0040a57fmov rax, [rbp+144]
    0040a586movsxd rcx, [rbp+204]
    0040a58dadd rcx, rcx
    0040a590lea rax, [rax+8*rcx+4]
    0040a595mov [rbp+256], rax
    0040a59cmov rax, [rbp+256]
    0040a5a3mov eax, [rax]
    0040a5a5cmp [rbp+224], rax
    0040a5acjb 0x40a8c2
    0040a5b2mov rax, [rbp+256]
    0040a5b9mov eax, [rax+4]
    0040a5bccmp [rbp+224], rax
    0040a5c3jae 0x40a8c2
    0040a5c9mov rax, [rbp+256]
    0040a5d0cmp [rax+8], 0
    0040a5d4je 0x40a8c2
    0040a5dacall fn_4085e0
    0040a5dfmov rax, [rbp+256]
    0040a5e6mov eax, [rax+8]
    0040a5e9cmp eax, 2
    0040a5ecjbe 0x40a6b1
    0040a5f2mov rax, [rbp+320]
    0040a5f9cmp [rax], 0xeedfade
    0040a5ffjne 0x40a618
    0040a601mov rax, [rbp+320]
    0040a608mov rax, [rax+40]
    0040a60cmov rax, [rax]
    0040a60fmov [rbp+176], rax
    0040a616jmp 0x40a648
    0040a618
    0040a618loc_40a618:
    0040a618cmp [rip+0x5aa00], 0
    0040a620je 0x40a8c2
    0040a626mov rcx, [rbp+320]
    0040a62dcall [rip+0x5a9ed]
    0040a633mov [rbp+176], rax
    0040a63acmp [rbp+176], 0
    0040a642je 0x40a8c2
    0040a648
    0040a648loc_40a648:
    0040a648mov rax, [rbp+232]
    0040a64fmov rcx, [rbp+256]
    0040a656mov ecx, [rcx+8]
    0040a659lea rax, [rax+rcx]
    0040a65dmov [rbp+152], rax
    0040a664mov rcx, [rbp+344]
    0040a66bmov rdx, [rbp+176]
    0040a672mov r8, [rbp+152]
    0040a679call fn_40a3f0
    0040a67emov [rbp+160], rax
    0040a685cmp [rbp+160], 0
    0040a68dje 0x40a8c2
    0040a693mov rax, [rbp+232]
    0040a69amov rcx, [rbp+160]
    0040a6a1mov ecx, [rcx+4]
    0040a6a4lea rax, [rax+rcx]
    0040a6a8mov [rbp+136], rax
    0040a6afjmp 0x40a6f0
    0040a6b1
    0040a6b1loc_40a6b1:
    0040a6b1cmp eax, 1
    0040a6b4jne 0x40a6d4
    0040a6b6mov rax, [rbp+232]
    0040a6bdmov rcx, [rbp+256]
    0040a6c4mov ecx, [rcx+4]
    0040a6c7lea rax, [rax+rcx]
    0040a6cbmov [rbp+136], rax
    0040a6d2jmp 0x40a6f0
    0040a6d4
    0040a6d4loc_40a6d4:
    0040a6d4mov rax, [rbp+232]
    0040a6dbmov rcx, [rbp+256]
    0040a6e2mov ecx, [rcx+12]
    0040a6e5lea rax, [rax+rcx]
    0040a6e9mov [rbp+136], rax
    0040a6f0
    0040a6f0loc_40a6f0:
    0040a6f0mov rax, [rbp+320]
    0040a6f7cmp [rax], 0xeedfade
    0040a6fdjne 0x40a72c
    0040a6ffmov rax, [rbp+320]
    0040a706mov rax, [rax+40]
    0040a70amov [rbp+184], rax
    0040a711mov rax, [rbp+320]
    0040a718mov rax, [rax+32]
    0040a71cmov [rbp+168], rax
    0040a723mov [rbp+131], 1
    0040a72ajmp 0x40a7a3
    0040a72c
    0040a72cloc_40a72c:
    0040a72ccmp [rip+0x5a8f4], 0
    0040a734je 0x40a8c2
    0040a73amov rcx, [rbp+320]
    0040a741call [rip+0x5a8e1]
    0040a747mov [rbp+184], rax
    0040a74ecmp [rbp+184], 0
    0040a756je 0x40a8c2
    0040a75cmov rax, [rbp+320]
    0040a763mov rax, [rax+16]
    0040a767mov [rbp+168], rax
    0040a76emov [rbp+131], 1
    0040a775mov rax, [rbp+320]
    0040a77cmov eax, [rax]
    0040a77eand eax, -2
    0040a781cmp eax, 0xffffffffe36c6700
    0040a787jne 0x40a7a3
    0040a789mov rcx, [rbp+184]
    0040a790mov rdx, [rbp+336]
    0040a797call fn_40a2a0
    0040a79cmov [rbp+131], 0
    0040a7a3
    0040a7a3loc_40a7a3:
    0040a7a3movzx rax, [rip+0x4e88e]
    0040a7abcmp al, [rbp+131]
    0040a7b1jbe 0x40a7f7
    0040a7b3cmp [rip+0x4e87e], 0
    0040a7baja 0x40a7f7
    0040a7bcmov rax, [rbp+320]
    0040a7c3mov [rbp+208], rax
    0040a7camov rax, [rbp+336]
    0040a7d1mov [rbp+216], rax
    0040a7d8lea rcx, [rbp+208]
    0040a7dfcall UnhandledExceptionFilter
    0040a7e4mov [rbp+132], eax
    0040a7eacmp [rbp+132], 0
    0040a7f1je 0x40a8c2
    0040a7f7
    0040a7f7loc_40a7f7:
    0040a7f7mov rax, [rbp+320]
    0040a7felea rax, [rax+4]
    0040a802or [rax], 2
    0040a805mov rax, [rbp+256]
    0040a80ccmp [rax+8], 2
    0040a810jb 0x40a820
    0040a812call fn_4057e0
    0040a817mov [rbp+272], rax
    0040a81ejmp 0x40a82b
    0040a820
    0040a820loc_40a820:
    0040a820lea rax, [rbp+96]
    0040a824mov [rbp+272], rax
    0040a82b
    0040a82bloc_40a82b:
    0040a82bmov rax, [rbp+272]
    0040a832mov rcx, [rbp+168]
    0040a839mov [rax+8], rcx
    0040a83dmov rax, [rbp+272]
    0040a844mov rcx, [rbp+184]
    0040a84bmov [rax+16], rcx
    0040a84fmov rax, [rbp+272]
    0040a856mov [rbp+80], rax
    0040a85acall fn_414a40
    0040a85flea rcx, [0x208]
    0040a867lea rax, [rax+rcx]
    0040a86bmov [rbp+72], rax
    0040a86fmov rax, [rbp+80]
    0040a873mov rcx, [rbp+72]
    0040a877mov rcx, [rcx]
    0040a87amov [rax], rcx
    0040a87dmov rax, [rbp+72]
    0040a881mov rcx, [rbp+80]
    0040a885mov [rax], rcx
    0040a888mov rax, [rbp+344]
    0040a88fmov rcx, [rbp+328]
    0040a896mov rdx, [rbp+136]
    0040a89dmov r8, [rbp+320]
    0040a8a4mov r9, [rbp+184]
    0040a8abmov r10, [rax+40]
    0040a8afmov [rsp+32], r10
    0040a8b4mov rax, [rax+64]
    0040a8b8mov [rsp+40], rax
    0040a8bdcall RtlUnwindEx
    0040a8c2
    0040a8c2loc_40a8c2:
    0040a8c2add [rbp+204], 1
    0040a8c9sub ebx, 1
    0040a8cctest ebx, ebx
    0040a8cejne 0x40a57f
    0040a8d4
    0040a8d4loc_40a8d4:
    0040a8d4nop
    0040a8d5jmp 0x40adbd
    0040a8da
    0040a8daloc_40a8da:
    0040a8damov rax, [rax+32]
    0040a8desub rax, [rbp+232]
    0040a8e5mov [rbp+192], rax
    0040a8ecxor eax, eax
    0040a8eemov rcx, [rbp+144]
    0040a8f5mov ecx, [rcx]
    0040a8f7sub ecx, 1
    0040a8famov [rbp+52], ecx
    0040a8fdmov [rbp+204], eax
    0040a903mov ecx, [rbp+52]
    0040a906cmp [rbp+204], ecx
    0040a90cjg 0x40adbc
    0040a912mov ecx, [rbp+52]
    0040a915sub ecx, eax
    0040a917add ecx, 1
    0040a91amov [rbp+52], ecx
    0040a91d
    0040a91dloc_40a91d:
    0040a91dmov rax, [rbp+144]
    0040a924movsxd rcx, [rbp+204]
    0040a92badd rcx, rcx
    0040a92elea rax, [rax+8*rcx+4]
    0040a933mov [rbp+256], rax
    0040a93amov rax, [rbp+256]
    0040a941mov eax, [rax]
    0040a943cmp [rbp+224], rax
    0040a94ajb 0x40ada1
    0040a950mov rax, [rbp+256]
    0040a957mov eax, [rax+4]
    0040a95acmp [rbp+224], rax
    0040a961jae 0x40ada1
    0040a967mov rax, [rbp+256]
    0040a96emov eax, [rax]
    0040a970cmp [rbp+192], rax
    0040a977jb 0x40a9a2
    0040a979mov rax, [rbp+256]
    0040a980mov eax, [rax+4]
    0040a983cmp [rbp+192], rax
    0040a98ajae 0x40a9a2
    0040a98cmov rax, [rbp+320]
    0040a993mov eax, [rax+4]
    0040a996test eax, 32
    0040a99cjne 0x40adbd
    0040a9a2
    0040a9a2loc_40a9a2:
    0040a9a2mov rax, [rbp+256]
    0040a9a9mov eax, [rax+8]
    0040a9acmov [rbp+48], eax
    0040a9afcmp eax, 2
    0040a9b2jae 0x40ac52
    0040a9b8call fn_414a40
    0040a9bdmov rax, [rax+520]
    0040a9c4mov [rbp+264], rax
    0040a9cbnop
    0040a9ccmov eax, [rbp+48]
    0040a9cfsub eax, 1
    0040a9d2cmp eax, -1
    0040a9d5je 0x40a9e4
    0040a9d7test eax, eax
    0040a9d9jne 0x40ab5e
    0040a9dfjmp 0x40aa7c
    0040a9e4
    0040a9e4loc_40a9e4:
    0040a9e4mov rbx, [rbp+344]
    0040a9ebmov rax, [rbp+232]
    0040a9f2mov rcx, [rbp+256]
    0040a9f9mov ecx, [rcx+4]
    0040a9fclea rax, [rax+rcx]
    0040aa00mov [rbx], rax
    0040aa03mov rax, [rbp+232]
    0040aa0amov rcx, [rbp+256]
    0040aa11mov ecx, [rcx+12]
    0040aa14lea rax, [rax+rcx]
    0040aa18mov [rbp+136], rax
    0040aa1fmov rcx, [rbp+136]
    0040aa26call fn_40a350
    0040aa2bmov rax, [rbp+320]
    0040aa32mov [rbp+208], rax
    0040aa39mov rax, [rbp+336]
    0040aa40mov [rbp+216], rax
    0040aa47lea rcx, [rbp+208]
    0040aa4emov rdx, [rbp+328]
    0040aa55call [rbp+136]
    0040aa5bcall fn_406080
    0040aa60mov rcx, [rbx+40]
    0040aa64mov [rcx+52], eax
    0040aa67call fn_406020
    0040aa6cmov rcx, [rbx+40]
    0040aa70mov [rcx+256], ax
    0040aa77jmp 0x40ab5e
    0040aa7c
    0040aa7cloc_40aa7c:
    0040aa7cmov rax, [rbp+232]
    0040aa83mov rcx, [rbp+256]
    0040aa8amov ecx, [rcx+12]
    0040aa8dlea rax, [rax+rcx]
    0040aa91mov [rbp+136], rax
    0040aa98mov rax, [rbp+344]
    0040aa9fmov rcx, [rbp+232]
    0040aaa6mov rdx, [rbp+256]
    0040aaadmov edx, [rdx+4]
    0040aab0lea rcx, [rcx+rdx]
    0040aab4mov [rax], rcx
    0040aab7mov rax, [rbp+320]
    0040aabemov [rbp+208], rax
    0040aac5mov rax, [rbp+336]
    0040aaccmov [rbp+216], rax
    0040aad3mov rax, [rbp+264]
    0040aadamov rax, [rax+16]
    0040aademov [rbp+184], rax
    0040aae5mov rax, [rbp+264]
    0040aaecmov rax, [rax+8]
    0040aaf0mov [rbp+168], rax
    0040aaf7lea rcx, [rbp+208]
    0040aafemov rdx, [rbp+328]
    0040ab05mov r8, [rbp+184]
    0040ab0cmov r9, [rbp+168]
    0040ab13call [rbp+136]
    0040ab19mov [rbp+136], rax
    0040ab20mov rax, [rbp+344]
    0040ab27mov rcx, [rbp+136]
    0040ab2emov [rax], rcx
    0040ab31mov rax, [rbp+264]
    0040ab38cmp [rax+16], 0
    0040ab3dje 0x40ab5e
    0040ab3fmov rax, [rbp+264]
    0040ab46mov rcx, [rax+16]
    0040ab4acall TObject.Free
    0040ab4fmov rax, [rbp+264]
    0040ab56mov [rax+16], 0
    0040ab5e
    0040ab5eloc_40ab5e:
    0040ab5enop
    0040ab5fmov [rbp+280], 0
    0040ab6acall fn_414a40
    0040ab6fmov rax, [rax+520]
    0040ab76mov [rbp+272], rax
    0040ab7dcmp [rbp+272], 0
    0040ab85je 0x40ac4c
    0040ab8b
    0040ab8bloc_40ab8b:
    0040ab8bmov rax, [rbp+272]
    0040ab92cmp rax, [rbp+264]
    0040ab99jne 0x40ac1f
    0040ab9fcmp [rbp+280], 0
    0040aba7jne 0x40abba
    0040aba9mov rax, [rbp+256]
    0040abb0cmp [rax+8], 1
    0040abb4jne 0x40ac4c
    0040abba
    0040abbaloc_40abba:
    0040abbacmp [rbp+280], 0
    0040abc2jne 0x40abd6
    0040abc4call fn_414a40
    0040abc9mov [rax+520], 0
    0040abd4jmp 0x40abea
    0040abd6
    0040abd6loc_40abd6:
    0040abd6mov rax, [rbp+280]
    0040abddmov rcx, [rbp+272]
    0040abe4mov rcx, [rcx]
    0040abe7mov [rax], rcx
    0040abea
    0040abealoc_40abea:
    0040abeamov rax, [rbp+272]
    0040abf1mov rax, [rax+16]
    0040abf5test rax, rax
    0040abf8je 0x40ac11
    0040abfamov rcx, rax
    0040abfdcall TObject.Free
    0040ac02mov rax, [rbp+272]
    0040ac09mov [rax+16], 0
    0040ac11
    0040ac11loc_40ac11:
    0040ac11mov rcx, [rbp+272]
    0040ac18call fn_405890
    0040ac1djmp 0x40ac4c
    0040ac1f
    0040ac1floc_40ac1f:
    0040ac1fmov rax, [rbp+272]
    0040ac26mov [rbp+280], rax
    0040ac2dmov rax, [rbp+272]
    0040ac34mov rax, [rax]
    0040ac37mov [rbp+272], rax
    0040ac3ecmp [rbp+272], 0
    0040ac46jne 0x40ab8b
    0040ac4c
    0040ac4cloc_40ac4c:
    0040ac4cnop
    0040ac4djmp 0x40ada1
    0040ac52
    0040ac52loc_40ac52:
    0040ac52mov rax, [rbp+320]
    0040ac59mov eax, [rax+4]
    0040ac5ctest eax, 32
    0040ac62je 0x40ada1
    0040ac68mov [rbp+136], 0
    0040ac73mov eax, [rbp+48]
    0040ac76cmp eax, 2
    0040ac79jne 0x40ac9c
    0040ac7bmov rax, [rbp+232]
    0040ac82mov rcx, [rbp+256]
    0040ac89mov ecx, [rcx+12]
    0040ac8clea rax, [rax+rcx]
    0040ac90mov [rbp+136], rax
    0040ac97jmp 0x40ad5a
    0040ac9c
    0040ac9cloc_40ac9c:
    0040ac9cmov rax, [rbp+320]
    0040aca3cmp [rax], 0xeedfade
    0040aca9jne 0x40acc2
    0040acabmov rax, [rbp+320]
    0040acb2mov rax, [rax+40]
    0040acb6mov rax, [rax]
    0040acb9mov [rbp+176], rax
    0040acc0jmp 0x40aced
    0040acc2
    0040acc2loc_40acc2:
    0040acc2cmp [rip+0x5a356], 0
    0040accaje 0x40ace2
    0040acccmov rcx, [rbp+320]
    0040acd3call [rip+0x5a347]
    0040acd9mov [rbp+176], rax
    0040ace0jmp 0x40aced
    0040ace2
    0040ace2loc_40ace2:
    0040ace2mov [rbp+176], 0
    0040aced
    0040acedloc_40aced:
    0040acedcmp [rbp+176], 0
    0040acf5je 0x40ad5a
    0040acf7mov rax, [rbp+232]
    0040acfemov rcx, [rbp+256]
    0040ad05mov ecx, [rcx+8]
    0040ad08lea rax, [rax+rcx]
    0040ad0cmov [rbp+152], rax
    0040ad13mov rcx, [rbp+344]
    0040ad1amov rdx, [rbp+176]
    0040ad21mov r8, [rbp+152]
    0040ad28call fn_40a3f0
    0040ad2dmov [rbp+160], rax
    0040ad34cmp [rbp+160], 0
    0040ad3cje 0x40ad5a
    0040ad3emov rax, [rbp+232]
    0040ad45mov rcx, [rbp+160]
    0040ad4cmov ecx, [rcx+4]
    0040ad4flea rax, [rax+rcx]
    0040ad53mov [rbp+136], rax
    0040ad5a
    0040ad5aloc_40ad5a:
    0040ad5acmp [rbp+136], 0
    0040ad62je 0x40ada1
    0040ad64mov rax, [rbp+344]
    0040ad6bmov rcx, [rbp+136]
    0040ad72cmp rcx, [rax+32]
    0040ad76jne 0x40ada1
    0040ad78mov rax, [rbp+256]
    0040ad7fcmp [rax+8], 2
    0040ad83jne 0x40ad93
    0040ad85mov rcx, [rbp+136]
    0040ad8ccall fn_40a330
    0040ad91jmp 0x40adbc
    0040ad93
    0040ad93loc_40ad93:
    0040ad93mov rcx, [rbp+136]
    0040ad9acall fn_40a310
    0040ad9fjmp 0x40adbc
    0040ada1
    0040ada1loc_40ada1:
    0040ada1add [rbp+204], 1
    0040ada8mov eax, [rbp+52]
    0040adabsub eax, 1
    0040adaemov [rbp+52], eax
    0040adb1mov eax, [rbp+52]
    0040adb4test eax, eax
    0040adb6jne 0x40a91d
    0040adbc
    0040adbcloc_40adbc:
    0040adbcnop
    0040adbd
    0040adbdloc_40adbd:
    0040adbdmov eax, [rbp+244]
    0040adc3lea rsp, [rbp+296]
    0040adcapop rbx
    0040adcbpop rbp
    0040adccret
    0040a4e0
    0040adcd
    0040adcd 48 8b c0 H..
    0040add0
    0040add0fn_40add0:
    0040add0push rbp
    0040add1push rbx
    0040add2sub rsp, 40
    0040add6mov rbp, rsp
    0040add9mov rbx, rdx
    0040addcmov [rbx+280], 0
    0040ade7call fn_414a40
    0040adecmov rax, [rax+520]
    0040adf3mov [rbx+272], rax
    0040adfacmp [rbx+272], 0
    0040ae02je 0x40aec9
    0040ae08
    0040ae08loc_40ae08:
    0040ae08mov rax, [rbx+272]
    0040ae0fcmp rax, [rbx+264]
    0040ae16jne 0x40ae9c
    0040ae1ccmp [rbx+280], 0
    0040ae24jne 0x40ae37
    0040ae26mov rax, [rbx+256]
    0040ae2dcmp [rax+8], 1
    0040ae31jne 0x40aec9
    0040ae37
    0040ae37loc_40ae37:
    0040ae37cmp [rbx+280], 0
    0040ae3fjne 0x40ae53
    0040ae41call fn_414a40
    0040ae46mov [rax+520], 0
    0040ae51jmp 0x40ae67
    0040ae53
    0040ae53loc_40ae53:
    0040ae53mov rax, [rbx+280]
    0040ae5amov rcx, [rbx+272]
    0040ae61mov rcx, [rcx]
    0040ae64mov [rax], rcx
    0040ae67
    0040ae67loc_40ae67:
    0040ae67mov rax, [rbx+272]
    0040ae6emov rax, [rax+16]
    0040ae72test rax, rax
    0040ae75je 0x40ae8e
    0040ae77mov rcx, rax
    0040ae7acall TObject.Free
    0040ae7fmov rax, [rbx+272]
    0040ae86mov [rax+16], 0
    0040ae8e
    0040ae8eloc_40ae8e:
    0040ae8emov rcx, [rbx+272]
    0040ae95call fn_405890
    0040ae9ajmp 0x40aec9
    0040ae9c
    0040ae9cloc_40ae9c:
    0040ae9cmov rax, [rbx+272]
    0040aea3mov [rbx+280], rax
    0040aeaamov rax, [rbx+272]
    0040aeb1mov rax, [rax]
    0040aeb4mov [rbx+272], rax
    0040aebbcmp [rbx+272], 0
    0040aec3jne 0x40ae08
    0040aec9
    0040aec9loc_40aec9:
    0040aec9nop
    0040aecalea rsp, [rbp+40]
    0040aecepop rbx
    0040aecfpop rbp
    0040aed0ret
    0040add0
    0040aed1
    0040aed1 // align 0x10
    0040aee0
    0040aee0fn_40aee0:
    0040aee0push rbp
    0040aee1push rsi
    0040aee2push rbx
    0040aee3sub rsp, 240
    0040aeeamov rbp, rsp
    0040aeedmov rbx, rcx
    0040aef0mov rsi, rdx
    0040aef3test rbx, rbx
    0040aef6jne 0x40aeff
    0040aef8mov cl, 216
    0040aefacall fn_40ba30
    0040aeff
    0040aeffloc_40aeff:
    0040aeffmov [rbp+184], rsi
    0040af06mov [rbp+192], rbx
    0040af0dmov [rbp+200], 0
    0040af18mov [rbp+208], 0
    0040af23mov [rbp+216], 0
    0040af2emov [rbp+224], 0
    0040af39mov [rbp+232], 0
    0040af44cmp [rip+0x5a0f4], 0
    0040af4cje 0x40afc6
    0040af4emov [rbp+32], 0xeedfade
    0040af55mov [rbp+36], 1
    0040af5cmov [rbp+40], 0
    0040af64mov [rbp+48], rsi
    0040af68mov [rbp+56], 7
    0040af6fmov rax, [rbp+184]
    0040af76mov [rbp+64], rax
    0040af7amov rax, [rbp+192]
    0040af81mov [rbp+72], rax
    0040af85mov rax, [rbp+200]
    0040af8cmov [rbp+80], rax
    0040af90mov rax, [rbp+208]
    0040af97mov [rbp+88], rax
    0040af9bmov rax, [rbp+216]
    0040afa2mov [rbp+96], rax
    0040afa6mov rax, [rbp+224]
    0040afadmov [rbp+104], rax
    0040afb1mov rax, [rbp+232]
    0040afb8mov [rbp+112], rax
    0040afbclea rcx, [rbp+32]
    0040afc0call [rip+0x5a07a]
    0040afc6
    0040afc6loc_40afc6:
    0040afc6mov ecx, 0xeedfade
    0040afcbmov edx, 1
    0040afd0mov r8l, 7
    0040afd6lea r9, [rbp+184]
    0040afddcall [rip+0x5a04d]
    0040afe3lea rsp, [rbp+240]
    0040afeapop rbx
    0040afebpop rsi
    0040afecpop rbp
    0040afedret
    0040aee0
    0040afee
    0040afee // align 0x10
    0040aff0
    0040aff0fn_40aff0:
    0040aff0push rbp
    0040aff1sub rsp, 32
    0040aff5mov rbp, rsp
    0040aff8mov rdx, [rbp+40]
    0040affccall fn_40aee0
    0040b001lea rsp, [rbp+32]
    0040b005pop rbp
    0040b006ret
    0040aff0
    0040b007
    0040b007 // align 0x10
    0040b010
    0040b010fn_40b010:
    0040b010push rsi
    0040b011push rbx
    0040b012sub rsp, 40
    0040b016call fn_414a40
    0040b01bmov rax, [rax+520]
    0040b022mov rbx, [rax+16]
    0040b026mov rsi, [rax+8]
    0040b02amov [rax+16], 0
    0040b032mov rcx, rbx
    0040b035mov rdx, rsi
    0040b038call fn_40a270
    0040b03dmov rcx, rbx
    0040b040mov rdx, rsi
    0040b043call fn_40aee0
    0040b048add rsp, 40
    0040b04cpop rbx
    0040b04dpop rsi
    0040b04eret
    0040b010
    0040b04f
    0040b04f // align 0x10
    0040b050
    0040b050fn_40b050:
    0040b050push r13
    0040b052push rdi
    0040b053push rsi
    0040b054push rbx
    0040b055sub rsp, 40
    0040b059call fn_414a40
    0040b05elea rcx, [0x208]
    0040b066lea rsi, [rax+rcx]
    0040b06amov rbx, [rsi]
    0040b06dtest rbx, rbx
    0040b070jne 0x40b079
    0040b072mov cl, 216
    0040b074call fn_40ba30
    0040b079
    0040b079loc_40b079:
    0040b079mov rax, [rbx]
    0040b07cmov [rsi], rax
    0040b07fmov rsi, [rbx+16]
    0040b083mov rdi, [rbx+8]
    0040b087mov [rbx+16], 0
    0040b08fmov rcx, rbx
    0040b092call fn_405890
    0040b097call fn_414a40
    0040b09ccmp [rax+520], 0
    0040b0a4je 0x40b116
    0040b0a6test rsi, rsi
    0040b0a9je 0x40b116
    0040b0abcall fn_414a40
    0040b0b0lea rcx, [0x208]
    0040b0b8lea r13, [rax+rcx]
    0040b0bcmov rbx, [r13]
    0040b0c0test rbx, rbx
    0040b0c3jne 0x40b0cc
    0040b0c5mov cl, 216
    0040b0c7call fn_40ba30
    0040b0cc
    0040b0ccloc_40b0cc:
    0040b0ccmov rax, [rbx]
    0040b0cfmov [r13], rax
    0040b0d3mov rax, [rbx+16]
    0040b0d7test rax, rax
    0040b0daje 0x40b0e4
    0040b0dcmov rcx, rax
    0040b0dfcall TObject.Free
    0040b0e4
    0040b0e4loc_40b0e4:
    0040b0e4mov rcx, rbx
    0040b0e7call fn_405890
    0040b0eccall fn_4057e0
    0040b0f1mov [rax+8], rdi
    0040b0f5mov [rax+16], rsi
    0040b0f9mov rbx, rax
    0040b0fccall fn_414a40
    0040b101lea rcx, [0x208]
    0040b109lea rax, [rax+rcx]
    0040b10dmov rcx, [rax]
    0040b110mov [rbx], rcx
    0040b113mov [rax], rbx
    0040b116
    0040b116loc_40b116:
    0040b116add rsp, 40
    0040b11apop rbx
    0040b11bpop rsi
    0040b11cpop rdi
    0040b11dpop r13
    0040b11fret
    0040b050
    0040b120
    0040b120fn_40b120:
    0040b120push rbp
    0040b121push rsi
    0040b122push rbx
    0040b123sub rsp, 32
    0040b127mov rbp, rsp
    0040b12acall fn_414a40
    0040b12flea rcx, [0x208]
    0040b137lea rsi, [rax+rcx]
    0040b13bmov rbx, [rsi]
    0040b13etest rbx, rbx
    0040b141jne 0x40b14a
    0040b143mov cl, 216
    0040b145call fn_40ba30
    0040b14a
    0040b14aloc_40b14a:
    0040b14amov rax, [rbx]
    0040b14dmov [rsi], rax
    0040b150mov rax, [rbx+16]
    0040b154test rax, rax
    0040b157je 0x40b161
    0040b159mov rcx, rax
    0040b15ccall TObject.Free
    0040b161
    0040b161loc_40b161:
    0040b161mov rcx, rbx
    0040b164call fn_405890
    0040b169mov rax, [rbp+56]
    0040b16dmov rcx, rax
    0040b170call fn_40a380
    0040b175lea rsp, [rbp+32]
    0040b179pop rbx
    0040b17apop rsi
    0040b17bpop rbp
    0040b17cret
    0040b120
    0040b17d
    0040b17d // align 0x10
    0040b180
    0040b180fn_40b180:
    0040b180push rbp
    0040b181sub rsp, 80
    0040b185mov rbp, rsp
    0040b188mov [rbp+40], rbp
    0040b18cmov rax, [rip+0x5eaed]
    0040b193test rax, rax
    0040b196je 0x40b200
    0040b198mov ecx, [rip+0x5eaea]
    0040b19emov [rbp+76], ecx
    0040b1a1mov rax, [rax+8]
    0040b1a5mov [rbp+64], rax
    0040b1a9nop
    0040b1aacmp [rbp+76], 0
    0040b1aejle 0x40b1eb
    0040b1b0
    0040b1b0loc_40b1b0:
    0040b1b0sub [rbp+76], 1
    0040b1b4mov eax, [rbp+76]
    0040b1b7mov [rip+0x5eacb], eax
    0040b1bdmov rax, [rbp+64]
    0040b1c1movsxd rcx, [rbp+76]
    0040b1c5add rcx, rcx
    0040b1c8mov rax, [rax+8*rcx+8]
    0040b1cdmov [rbp+56], rax
    0040b1d1cmp [rbp+56], 0
    0040b1d6je 0x40b1e5
    0040b1d8mov rax, [rbp+56]
    0040b1dccmp [rax], 0
    0040b1e0je 0x40b1e5
    0040b1e2call [rbp+56]
    0040b1e5
    0040b1e5loc_40b1e5:
    0040b1e5cmp [rbp+76], 0
    0040b1e9jg 0x40b1b0
    0040b1eb
    0040b1ebloc_40b1eb:
    0040b1ebnop
    0040b1ecjmp 0x40b200
    0040b1ee
    0040b1ee 90 90 ..
    0040b1f0 e8 8b ff ff ff e8 16 fe ff ff e8 21 ff ff ff 90 ...........!....
    0040b200
    0040b200loc_40b200:
    0040b200lea rsp, [rbp+80]
    0040b204pop rbp
    0040b205ret
    0040b180
    0040b206
    0040b206 48 90 48 8d 04 05 00 00 00 00 H.H.......
    0040b210
    0040b210fn_40b210:
    0040b210sub rsp, 40
    0040b214call fn_40b050
    0040b219add rsp, 40
    0040b21dret
    0040b210
    0040b21e
    0040b21e // align 0x10
    0040b220
    0040b220fn_40b220:
    0040b220push rbp
    0040b221sub rsp, 80
    0040b225mov rbp, rsp
    0040b228mov [rbp+40], rbp
    0040b22cmov rax, [rip+0x5ea4d]
    0040b233test rax, rax
    0040b236je 0x40b2a6
    0040b238mov ecx, [rax]
    0040b23amov [rbp+76], ecx
    0040b23dmov [rbp+72], 0
    0040b244mov rax, [rax+8]
    0040b248mov [rbp+64], rax
    0040b24cnop
    0040b24dmov eax, [rbp+72]
    0040b250cmp eax, [rbp+76]
    0040b253jge 0x40b291
    0040b255
    0040b255loc_40b255:
    0040b255mov rax, [rbp+64]
    0040b259movsxd rcx, [rbp+72]
    0040b25dadd rcx, rcx
    0040b260mov rax, [rax+8*rcx]
    0040b264mov [rbp+56], rax
    0040b268add [rbp+72], 1
    0040b26cmov eax, [rbp+72]
    0040b26fmov [rip+0x5ea13], eax
    0040b275cmp [rbp+56], 0
    0040b27aje 0x40b289
    0040b27cmov rax, [rbp+56]
    0040b280cmp [rax], 0
    0040b284je 0x40b289
    0040b286call [rbp+56]
    0040b289
    0040b289loc_40b289:
    0040b289mov eax, [rbp+72]
    0040b28ccmp eax, [rbp+76]
    0040b28fjl 0x40b255
    0040b291
    0040b291loc_40b291:
    0040b291nop
    0040b292jmp 0x40b2a6
    0040b294
    0040b294 90 90 e8 e5 fe ff ff e8 70 fd ff ff ........p...
    0040b2a0 e8 7b fe ff ff 90 .{....
    0040b2a6
    0040b2a6loc_40b2a6:
    0040b2a6lea rsp, [rbp+80]
    0040b2aapop rbp
    0040b2abret
    0040b220
    0040b2ac
    0040b2ac 48 8d 40 00 H.@.
    0040b2b0
    0040b2b0fn_40b2b0:
    0040b2b0sub rsp, 40
    0040b2b4call fn_40b050
    0040b2b9add rsp, 40
    0040b2bdret
    0040b2b0
    0040b2be
    0040b2be // align 0x10
    0040b2c0
    0040b2c0fn_40b2c0:
    0040b2c0sub rsp, 40
    0040b2c4lea rax, [rip-32923]
    0040b2cbmov [rip+0x59d5e], rax
    0040b2d2lea rax, [rip-32921]
    0040b2d9mov [rip+0x59d58], rax
    0040b2e0mov [rip+0x5e999], rcx
    0040b2e7mov [rip+0x5e997], 0
    0040b2f1mov [rip+0x5e998], rdx
    0040b2f8mov rax, [rdx+8]
    0040b2fcmov [rip+0x59d6d], rax
    0040b303mov [rip+0x5e96a], 1
    0040b30emov [rip+0x59d67], 0
    0040b315call fn_40b220
    0040b31aadd rsp, 40
    0040b31eret
    0040b2c0
    0040b31f
    0040b31f // align 0x10
    0040b320
    0040b320fn_40b320:
    0040b320push rbp
    0040b321sub rsp, 80
    0040b325mov rbp, rsp
    0040b328mov [rbp+40], rcx
    0040b32cmov [rbp+48], rdx
    0040b330mov [rbp+62], r8w
    0040b335mov [rbp+72], 0
    0040b33dnop
    0040b33elea rcx, [rbp+72]
    0040b342mov rdx, [rbp+48]
    0040b346call fn_414600
    0040b34bmov rcx, [rbp+40]
    0040b34fmov rdx, [rbp+72]
    0040b353movzx r8, [rbp+62]
    0040b358call fn_40cff0
    0040b35dnop
    0040b35elea rcx, [rbp+72]
    0040b362call fn_40bcf0
    0040b367mov rax, [rbp+40]
    0040b36blea rsp, [rbp+80]
    0040b36fpop rbp
    0040b370ret
    0040b320
    0040b371
    0040b371 48 8d 80 00 00 00 00 48 8d 04 05 00 00 00 00 H......H.......
    0040b380
    0040b380fn_40b380:
    0040b380push rbp
    0040b381sub rsp, 32
    0040b385mov rbp, rsp
    0040b388lea rcx, [rdx+72]
    0040b38ccall fn_40bcf0
    0040b391lea rsp, [rbp+32]
    0040b395pop rbp
    0040b396ret
    0040b380
    0040b397
    0040b397 // align 0x10
    0040b3a0
    0040b3a0fn_40b3a0:
    0040b3a0push rbp
    0040b3a1sub rsp, 64
    0040b3a5mov rbp, rsp
    0040b3a8mov [rbp+40], rcx
    0040b3acmov [rbp+48], rdx
    0040b3b0mov [rbp+56], 0
    0040b3b8nop
    0040b3b9lea rcx, [rbp+56]
    0040b3bdmov rdx, [rbp+48]
    0040b3c1call fn_414600
    0040b3c6mov rcx, [rbp+40]
    0040b3camov rdx, [rbp+56]
    0040b3cecall fn_40d850
    0040b3d3nop
    0040b3d4lea rcx, [rbp+56]
    0040b3d8call fn_40bcf0
    0040b3ddmov rax, [rbp+40]
    0040b3e1lea rsp, [rbp+64]
    0040b3e5pop rbp
    0040b3e6ret
    0040b3a0
    0040b3e7
    0040b3e7 90 48 8d 04 05 00 00 00 00 .H.......
    0040b3f0
    0040b3f0fn_40b3f0:
    0040b3f0push rbp
    0040b3f1sub rsp, 32
    0040b3f5mov rbp, rsp
    0040b3f8lea rcx, [rdx+56]
    0040b3fccall fn_40bcf0
    0040b401lea rsp, [rbp+32]
    0040b405pop rbp
    0040b406ret
    0040b3f0
    0040b407
    0040b407 // align 0x10
    0040b410
    0040b410fn_40b410:
    0040b410push rbx
    0040b411sub rsp, 32
    0040b415mov rbx, rcx
    0040b418mov rcx, rbx
    0040b41bcall fn_414600
    0040b420mov rax, rbx
    0040b423add rsp, 32
    0040b427pop rbx
    0040b428ret
    0040b410
    0040b429
    0040b429 // align 0x10
    0040b430
    0040b430fn_40b430:
    0040b430push rbp
    0040b431push rdi
    0040b432push rsi
    0040b433push rbx
    0040b434sub rsp, 72
    0040b438mov rbp, rsp
    0040b43bmov [rbp+32], rcx
    0040b43fmov [rbp+40], 0
    0040b447mov [rbp+48], 0
    0040b44fmov [rbp+56], 0
    0040b457nop
    0040b458mov eax, 1
    0040b45dmov rcx, [rbp+32]
    0040b461mov edi, [rcx]
    0040b463mov ebx, eax
    0040b465cmp ebx, edi
    0040b467jg 0x40b51b
    0040b46dsub edi, eax
    0040b46fadd edi, 1
    0040b472
    0040b472loc_40b472:
    0040b472movsxd rax, ebx
    0040b475lea rax, [rax+2*rax]
    0040b479mov rcx, [rbp+32]
    0040b47dlea rsi, [rcx+8*rax-16]
    0040b482mov rax, [rsi+16]
    0040b486mov rcx, rax
    0040b489and rcx, 65535
    0040b490sub ecx, 1
    0040b493cmp ecx, -1
    0040b496je 0x40b4a5
    0040b498test ecx, ecx
    0040b49aje 0x40b4d3
    0040b49csub ecx, 1
    0040b49ftest ecx, ecx
    0040b4a1jne 0x40b50d
    0040b4a3jmp 0x40b4f1
    0040b4a5
    0040b4a5loc_40b4a5:
    0040b4a5lea rcx, [rbp+56]
    0040b4a9mov rdx, [rsi+8]
    0040b4admov rdx, [rdx]
    0040b4b0mov r8l, 0xffffffffffff0000
    0040b4b6and rax, r8
    0040b4b9shr rax, 16
    0040b4bdmov r8l, eax
    0040b4c0call fn_40b320
    0040b4c5mov rcx, [rsi]
    0040b4c8mov rdx, [rbp+56]
    0040b4cccall fn_40c4a0
    0040b4d1jmp 0x40b50d
    0040b4d3
    0040b4d3loc_40b4d3:
    0040b4d3lea rcx, [rbp+48]
    0040b4d7mov rax, [rsi+8]
    0040b4dbmov rdx, [rax]
    0040b4decall fn_40b3a0
    0040b4e3mov rcx, [rsi]
    0040b4e6mov rdx, [rbp+48]
    0040b4eacall fn_40c440
    0040b4efjmp 0x40b50d
    0040b4f1
    0040b4f1loc_40b4f1:
    0040b4f1lea rcx, [rbp+40]
    0040b4f5mov rax, [rsi+8]
    0040b4f9mov rdx, [rax]
    0040b4fccall fn_40b410
    0040b501mov rcx, [rsi]
    0040b504mov rdx, [rbp+40]
    0040b508call fn_40c360
    0040b50d
    0040b50dloc_40b50d:
    0040b50dadd ebx, 1
    0040b510sub edi, 1
    0040b513test edi, edi
    0040b515jne 0x40b472
    0040b51b
    0040b51bloc_40b51b:
    0040b51bnop
    0040b51cnop
    0040b51dlea rcx, [rbp+40]
    0040b521call fn_40bcf0
    0040b526lea rcx, [rbp+48]
    0040b52acall fn_40bd90
    0040b52flea rcx, [rbp+56]
    0040b533call fn_40bd40
    0040b538lea rsp, [rbp+72]
    0040b53cpop rbx
    0040b53dpop rsi
    0040b53epop rdi
    0040b53fpop rbp
    0040b540ret
    0040b430
    0040b541
    0040b541 48 8d 80 00 00 00 00 48 8d 04 05 00 00 00 00 H......H.......
    0040b550
    0040b550fn_40b550:
    0040b550push rbp
    0040b551push rbx
    0040b552sub rsp, 40
    0040b556mov rbp, rsp
    0040b559mov rbx, rdx
    0040b55clea rcx, [rbx+40]
    0040b560call fn_40bcf0
    0040b565lea rcx, [rbx+48]
    0040b569call fn_40bd90
    0040b56elea rcx, [rbx+56]
    0040b572call fn_40bd40
    0040b577lea rsp, [rbp+40]
    0040b57bpop rbx
    0040b57cpop rbp
    0040b57dret
    0040b550
    0040b57e
    0040b57e // align 0x10
    0040b580
    0040b580fn_40b580:
    0040b580mov edx, 1
    0040b585mov r8l, [rcx]
    0040b588mov eax, edx
    0040b58acmp eax, r8l
    0040b58djg 0x40b5c3
    0040b58fsub r8l, edx
    0040b592add r8l, 1
    0040b596
    0040b596loc_40b596:
    0040b596movsxd rdx, eax
    0040b599lea rdx, [rdx+2*rdx]
    0040b59dlea rdx, [rcx+8*rdx-16]
    0040b5a2mov r9, [rdx]
    0040b5a5mov r10, [rdx+8]
    0040b5a9mov r10, [r10]
    0040b5acmov rdx, [rdx+16]
    0040b5b0lea rdx, [r10+rdx]
    0040b5b4mov [r9], rdx
    0040b5b7add eax, 1
    0040b5basub r8l, 1
    0040b5betest r8l, r8l
    0040b5c1jne 0x40b596
    0040b5c3
    0040b5c3loc_40b5c3:
    0040b5c3nop
    0040b5c4ret
    0040b580
    0040b5c5
    0040b5c5 // align 0x10
    0040b5d0
    0040b5d0fn_40b5d0:
    0040b5d0push rdi
    0040b5d1push rsi
    0040b5d2push rbx
    0040b5d3sub rsp, 32
    0040b5d7mov rbx, rcx
    0040b5damov eax, 1
    0040b5dfmov edi, [rbx]
    0040b5e1mov esi, eax
    0040b5e3cmp esi, edi
    0040b5e5jg 0x40b63e
    0040b5e7sub edi, eax
    0040b5e9add edi, 1
    0040b5ec
    0040b5ecloc_40b5ec:
    0040b5ecmovsxd rax, esi
    0040b5eflea rax, [rax+2*rax]
    0040b5f3lea rax, [rbx+8*rax-16]
    0040b5f8mov rcx, [rax+16]
    0040b5fcand rcx, 65535
    0040b603sub ecx, 1
    0040b606cmp ecx, -1
    0040b609je 0x40b618
    0040b60btest ecx, ecx
    0040b60dje 0x40b622
    0040b60fsub ecx, 1
    0040b612test ecx, ecx
    0040b614jne 0x40b634
    0040b616jmp 0x40b62c
    0040b618
    0040b618loc_40b618:
    0040b618mov rcx, [rax]
    0040b61bcall fn_40bd40
    0040b620jmp 0x40b634
    0040b622
    0040b622loc_40b622:
    0040b622mov rcx, [rax]
    0040b625call fn_40bd90
    0040b62ajmp 0x40b634
    0040b62c
    0040b62cloc_40b62c:
    0040b62cmov rcx, [rax]
    0040b62fcall fn_40bcf0
    0040b634
    0040b634loc_40b634:
    0040b634add esi, 1
    0040b637sub edi, 1
    0040b63atest edi, edi
    0040b63cjne 0x40b5ec
    0040b63e
    0040b63eloc_40b63e:
    0040b63enop
    0040b63fadd rsp, 32
    0040b643pop rbx
    0040b644pop rsi
    0040b645pop rdi
    0040b646ret
    0040b5d0
    0040b647
    0040b647 // align 0x10
    0040b650
    0040b650fn_40b650:
    0040b650mov cl, 16
    0040b652mov r8l, [rip+0x4d9a7]
    0040b659
    0040b659loc_40b659:
    0040b659lea r9, [rip+0x4f820]
    0040b660movzx r10, cl
    0040b664mov r11l, 10
    0040b66amov eax, r8l
    0040b66dcdq
    0040b66eidiv r11l
    0040b671add dl, 48
    0040b674mov [r9+r10], dl
    0040b678mov r9l, 10
    0040b67emov eax, r8l
    0040b681cdq
    0040b682idiv r9l
    0040b685mov r8, rax
    0040b688sub cl, 1
    0040b68btest r8l, r8l
    0040b68ejne 0x40b659
    0040b690mov cl, 36
    0040b692mov rax, [rip+0x4d96f]
    0040b699
    0040b699loc_40b699:
    0040b699lea rdx, [rip+0x4f7e0]
    0040b6a0movzx r8, cl
    0040b6a4lea r9, [rip+0x4f841]
    0040b6abmov r10, rax
    0040b6aeand r10, 15
    0040b6b2movzx r9, [r9+r10]
    0040b6b7mov [rdx+r8], r9b
    0040b6bbshr rax, 4
    0040b6bfsub cl, 1
    0040b6c2test rax, rax
    0040b6c5jne 0x40b699
    0040b6c7ret
    0040b650
    0040b6c8
    0040b6c8 // align 0x10
    0040b6d0
    0040b6d0fn_40b6d0:
    0040b6d0xchg eax, edx
    0040b6d1lea rdx, [rcx+112]
    0040b6d5movapd x6, [rdx-32]
    0040b6damovapd x7, [rdx-16]
    0040b6dfmovapd x8, [rdx]
    0040b6e4movapd x9, [rdx+16]
    0040b6eamovapd x10, [rdx+32]
    0040b6f0movapd x11, [rdx+48]
    0040b6f6movapd x12, [rdx+64]
    0040b6fcmovapd x13, [rdx+80]
    0040b702movapd x14, [rdx+96]
    0040b708movapd x15, [rdx+112]
    0040b70emov rbx, [rcx+16]
    0040b712mov rbp, [rcx+24]
    0040b716mov rsi, [rcx+32]
    0040b71amov rdi, [rcx+40]
    0040b71emov r12, [rcx+48]
    0040b722mov r13, [rcx+56]
    0040b726mov r14, [rcx+64]
    0040b72amov r15, [rcx+72]
    0040b72emov rsp, [rcx+8]
    0040b732jmp [rcx]
    0040b734ret
    0040b6d0
    0040b735
    0040b735 // align 0x10
    0040b740
    0040b740fn_40b740:
    0040b740push rbp
    0040b741push rdi
    0040b742push rsi
    0040b743sub rsp, 272
    0040b74amov rbp, rsp
    0040b74dmov rax, rcx
    0040b750lea rdi, [rbp+32]
    0040b754lea rsi, [rax+56]
    0040b758mov ecx, 30
    0040b75drep movsq [rdi], [rsi]
    0040b760mov rsi, [rax]
    0040b763mov rdi, rax
    0040b766mov ecx, 37
    0040b76brep movsq [rdi], [rsi]
    0040b76ecmp [rip+0x4d88b], 0
    0040b775setne al
    0040b778movzx rax, al
    0040b77cadd eax, 1
    0040b77fmov [rip+0x4d877], 0
    0040b789lea rcx, [rbp+32]
    0040b78dmov edx, eax
    0040b78fcall fn_40b6d0
    0040b794lea rsp, [rbp+272]
    0040b79bpop rsi
    0040b79cpop rdi
    0040b79dpop rbp
    0040b79eret
    0040b740
    0040b79f
    0040b79f // align 0x10
    0040b7a0
    0040b7a0fn_40b7a0:
    0040b7a0push rbx
    0040b7a1sub rsp, 64
    0040b7a5cmp [rip+0x598ec], 0
    0040b7acje 0x40b83a
    0040b7b2cmp [rip+0x59bed], -10318
    0040b7bbjne 0x40b7d3
    0040b7bdcmp [rip+0x59bec], 0
    0040b7c4jbe 0x40b7d3
    0040b7c6lea rcx, [rip+0x59bd3]
    0040b7cdcall [rip+0x59bf5]
    0040b7d3
    0040b7d3loc_40b7d3:
    0040b7d3mov ecx, -11
    0040b7d8call GetStdHandle
    0040b7ddmov rcx, rax
    0040b7e0lea rdx, [rip+0x4f699]
    0040b7e7mov r8l, 37
    0040b7edlea r9, [rsp+60]
    0040b7f2mov [rsp+32], 0
    0040b7fbcall WriteFile
    0040b800mov ecx, -11
    0040b805call GetStdHandle
    0040b80amov rbx, rax
    0040b80dlea rcx, [rip+92]
    0040b814call fn_40ce10
    0040b819mov rcx, rbx
    0040b81cmov rdx, rax
    0040b81fmov r8l, 2
    0040b825lea r9, [rsp+60]
    0040b82amov [rsp+32], 0
    0040b833call WriteFile
    0040b838jmp 0x40b85b
    0040b83a
    0040b83aloc_40b83a:
    0040b83acmp [rip+0x4d7f9], 0
    0040b841jne 0x40b85b
    0040b843xor ecx, ecx
    0040b845lea rdx, [rip+0x4f634]
    0040b84clea r8, [rip+0x4f53d]
    0040b853xor r9, r9
    0040b856call MessageBoxA
    0040b85b
    0040b85bloc_40b85b:
    0040b85badd rsp, 64
    0040b85fpop rbx
    0040b860ret
    0040b7a0
    0040b861
    0040b861 00 00 00 e4 04 01 00 ff ff ff ff 02 00 00 00 ...............
    0040b870 0d 0a 00 cc cc cc cc cc cc cc cc cc cc cc cc cc ................
    0040b880
    0040b880fn_40b880:
    0040b880push rdi
    0040b881push rsi
    0040b882push rbx
    0040b883sub rsp, 32
    0040b887cmp [rip+0x4d779], 0
    0040b88fje 0x40b8a6
    0040b891call fn_40b650
    0040b896call fn_40b7a0
    0040b89bmov [rip+0x4d762], 0
    0040b8a6
    0040b8a6loc_40b8a6:
    0040b8a6cmp [rip+0x5e4f2], 0
    0040b8aeje 0x40b8d4
    0040b8b0call GetCurrentThreadId
    0040b8b5cmp eax, [rip+0x5e511]
    0040b8bbjne 0x40b8d4
    0040b8bdmov [rip+0x5e4d8], 0
    0040b8c8lea rcx, [rip+0x5e4c9]
    0040b8cfcall fn_40b740
    0040b8d4
    0040b8d4loc_40b8d4:
    0040b8d4cmp [rip+0x5e3c5], 0
    0040b8dbjne 0x40b906
    0040b8ddcmp [rip+0x597ab], 0
    0040b8e5je 0x40b905
    0040b8e7
    0040b8e7loc_40b8e7:
    0040b8e7mov rbx, [rip+0x597a2]
    0040b8eemov [rip+0x59797], 0
    0040b8f9call rbx
    0040b8fbcmp [rip+0x5978d], 0
    0040b903jne 0x40b8e7
    0040b905
    0040b905loc_40b905:
    0040b905nop
    0040b906
    0040b906loc_40b906:
    0040b906cmp [rip+0x5e393], 2
    0040b90djne 0x40b922
    0040b90fcmp [rip+0x4d6ea], 0
    0040b916jne 0x40b922
    0040b918mov [rip+0x5e366], 0
    0040b922
    0040b922loc_40b922:
    0040b922cmp [rip+0x5e377], 0
    0040b929jne 0x40b948
    0040b92bcall fn_405950
    0040b930test rax, rax
    0040b933je 0x40b947
    0040b935
    0040b935loc_40b935:
    0040b935mov rcx, rax
    0040b938call TObject.Free
    0040b93dcall fn_405950
    0040b942test rax, rax
    0040b945jne 0x40b935
    0040b947
    0040b947loc_40b947:
    0040b947nop
    0040b948
    0040b948loc_40b948:
    0040b948call fn_40b180
    0040b94dcmp [rip+0x5e34c], 1
    0040b954jbe 0x40b95f
    0040b956cmp [rip+0x4d6a3], 0
    0040b95dje 0x40b98e
    0040b95f
    0040b95floc_40b95f:
    0040b95fmov rax, [rip+0x5e32a]
    0040b966test rax, rax
    0040b969je 0x40b98e
    0040b96bmov rcx, rax
    0040b96ecall fn_412400
    0040b973mov rax, [rip+0x5e316]
    0040b97amov rcx, [rax+32]
    0040b97ecmp rcx, [rax+8]
    0040b982je 0x40b98e
    0040b984test rcx, rcx
    0040b987je 0x40b98e
    0040b989call FreeLibrary
    0040b98e
    0040b98eloc_40b98e:
    0040b98emov [rip+0x5e2df], 0
    0040b999cmp [rip+0x5e300], 1
    0040b9a0jne 0x40b9a8
    0040b9a2call [rip+0x5e2f0]
    0040b9a8
    0040b9a8loc_40b9a8:
    0040b9a8cmp [rip+0x5e2f1], 0
    0040b9afje 0x40b9bd
    0040b9b1lea rcx, [rip+0x5e2b8]
    0040b9b8call fn_40b740
    0040b9bd
    0040b9bdloc_40b9bd:
    0040b9bdcmp [rip+0x5e2ab], 0
    0040b9c5jne 0x40b9e2
    0040b9c7cmp [rip+0x59691], 0
    0040b9cfje 0x40b9d7
    0040b9d1call [rip+0x59689]
    0040b9d7
    0040b9d7loc_40b9d7:
    0040b9d7mov ecx, [rip+0x4d623]
    0040b9ddcall ExitProcess
    0040b9e2
    0040b9e2loc_40b9e2:
    0040b9e2mov rsi, [rip+0x5e287]
    0040b9e9lea rdi, [rip+0x5e280]
    0040b9f0mov ecx, 37
    0040b9f5rep movsq [rdi], [rsi]
    0040b9f8jmp 0x40b906
    0040b9fd
    0040b9fd 48 83 c4 H..
    0040ba00 20 5b 5e 5f c3 [^_.
    0040b880
    0040ba05
    0040ba05 // align 0x10
    0040ba10
    0040ba10fn_40ba10:
    0040ba10sub rsp, 40
    0040ba14mov [rip+0x4d5e6], ecx
    0040ba1acall fn_40b880
    0040ba1fadd rsp, 40
    0040ba23ret
    0040ba10
    0040ba24
    0040ba24 // align 0x10
    0040ba30
    0040ba30fn_40ba30:
    0040ba30push rbp
    0040ba31sub rsp, 32
    0040ba35mov rbp, rsp
    0040ba38mov rax, [rbp+40]
    0040ba3cmov [rip+0x4d5c5], rax
    0040ba43movzx rcx, cl
    0040ba47call fn_40ba10
    0040ba4clea rsp, [rbp+32]
    0040ba50pop rbp
    0040ba51ret
    0040ba30
    0040ba52
    0040ba52 // align 0x10
    0040ba60
    0040ba60fn_40ba60:
    0040ba60push rsi
    0040ba61push rbx
    0040ba62sub rsp, 40
    0040ba66call fn_4058f0
    0040ba6bmov rbx, rax
    0040ba6ecall fn_405920
    0040ba73mov rsi, rax
    0040ba76mov rcx, rbx
    0040ba79mov rdx, rsi
    0040ba7ccall fn_40a3b0
    0040ba81cmp [rip+0x59587], 0
    0040ba89je 0x40ba97
    0040ba8bmov rcx, rbx
    0040ba8emov rdx, rsi
    0040ba91call [rip+0x59579]
    0040ba97
    0040ba97loc_40ba97:
    0040ba97mov ecx, 217
    0040ba9cmov rdx, rsi
    0040ba9fcall fn_4059a0
    0040baa4add rsp, 40
    0040baa8pop rbx
    0040baa9pop rsi
    0040baaaret
    0040ba60
    0040baab
    0040baab // align 0x10
    0040bab0
    0040bab0fn_40bab0:
    0040bab0push rbp
    0040bab1push rdi
    0040bab2push rsi
    0040bab3sub rsp, 80
    0040bab7mov rbp, rsp
    0040babamov [rbp+40], rbp
    0040babemov [rbp+112], rcx
    0040bac2mov [rbp+76], 0
    0040bac9nop
    0040bacacall fn_4085e0
    0040bacfmov rax, [rbp+112]
    0040bad3lea rdi, [rbp+56]
    0040bad7mov rsi, rax
    0040badamovsq [rdi], [rsi]
    0040badcmovsq [rdi], [rsi]
    0040bademov rcx, rax
    0040bae1call fn_405730
    0040bae6mov rcx, [rbp+64]
    0040baeacall [rbp+56]
    0040baedmov [rbp+76], eax
    0040baf0jmp 0x40baff
    0040baf2
    0040baf2 90 90 e8 67 ff ff ff e8 22 f6 ff ff 90 ...g...."....
    0040baff
    0040baffloc_40baff:
    0040baffmov eax, [rbp+76]
    0040bb02lea rsp, [rbp+80]
    0040bb06pop rsi
    0040bb07pop rdi
    0040bb08pop rbp
    0040bb09ret
    0040bab0
    0040bb0a
    0040bb0a 64 48 8d 44 20 00 dH.D .
    0040bb10
    0040bb10fn_40bb10:
    0040bb10sub rsp, 40
    0040bb14call fn_40b050
    0040bb19add rsp, 40
    0040bb1dret
    0040bb10
    0040bb1e
    0040bb1e // align 0x10
    0040bb20
    0040bb20fn_40bb20:
    0040bb20push r13
    0040bb22push rdi
    0040bb23push rsi
    0040bb24push rbx
    0040bb25sub rsp, 72
    0040bb29mov [rsp+56], rcx
    0040bb2emov ebx, edx
    0040bb30mov rsi, r8
    0040bb33mov rdi, r9
    0040bb36cmp [rip+0x4d502], 0
    0040bb3eje 0x40bb51
    0040bb40mov rcx, rsi
    0040bb43mov rdx, rdi
    0040bb46call [rip+0x4d4f4]
    0040bb4cmov r13, rax
    0040bb4fjmp 0x40bb66
    0040bb51
    0040bb51loc_40bb51:
    0040bb51mov ecx, 16
    0040bb56call fn_405700
    0040bb5bmov r13, rax
    0040bb5emov [r13], rsi
    0040bb62mov [r13+8], rdi
    0040bb66
    0040bb66loc_40bb66:
    0040bb66mov [rip+0x5952c], 1
    0040bb6dmov rcx, [rsp+56]
    0040bb72mov edx, ebx
    0040bb74lea r8, [rip-203]
    0040bb7bmov r9, r13
    0040bb7emov eax, [rsp+144]
    0040bb85mov [rsp+32], eax
    0040bb89mov rax, [rsp+152]
    0040bb91mov [rsp+40], rax
    0040bb96call CreateThread
    0040bb9bmov rbx, rax
    0040bb9etest rbx, rbx
    0040bba1jne 0x40bbab
    0040bba3mov rcx, r13
    0040bba6call fn_405730
    0040bbab
    0040bbabloc_40bbab:
    0040bbabmov rax, rbx
    0040bbaeadd rsp, 72
    0040bbb2pop rbx
    0040bbb3pop rsi
    0040bbb4pop rdi
    0040bbb5pop r13
    0040bbb7ret
    0040bb20
    0040bbb8
    0040bbb8 // align 0x10
    0040bbc0
    0040bbc0fn_40bbc0:
    0040bbc0push rbx
    0040bbc1sub rsp, 32
    0040bbc5mov ebx, ecx
    0040bbc7xor eax, eax
    0040bbc9test ebx, ebx
    0040bbcbjle 0x40bc18
    0040bbcdcmp ebx, 0x3ffffff7
    0040bbd3jl 0x40bbda
    0040bbd5call fn_4085f0
    0040bbda
    0040bbdaloc_40bbda:
    0040bbdamov ecx, ebx
    0040bbdcadd ecx, 1
    0040bbdfadd ecx, ecx
    0040bbe1add ecx, 16
    0040bbe4movsxd rcx, ecx
    0040bbe7call fn_405700
    0040bbecmov rcx, rax
    0040bbeflea rax, [rcx+16]
    0040bbf3mov [rcx+12], ebx
    0040bbf6mov [rcx+8], 1
    0040bbfdmov [rcx+6], 2
    0040bc03movzx rdx, [rip+0x59e11]
    0040bc0bmov [rcx+4], dx
    0040bc0fmovsxd rbx, ebx
    0040bc12mov [rax+2*rbx], 0
    0040bc18
    0040bc18loc_40bc18:
    0040bc18add rsp, 32
    0040bc1cpop rbx
    0040bc1dret
    0040bbc0
    0040bc1e
    0040bc1e // align 0x10
    0040bc20
    0040bc20fn_40bc20:
    0040bc20push rsi
    0040bc21push rbx
    0040bc22sub rsp, 40
    0040bc26mov ebx, ecx
    0040bc28mov esi, edx
    0040bc2axor eax, eax
    0040bc2ctest ebx, ebx
    0040bc2ejle 0x40bc8f
    0040bc30cmp ebx, 0x7fffffef
    0040bc36jl 0x40bc3d
    0040bc38call fn_4085f0
    0040bc3d
    0040bc3dloc_40bc3d:
    0040bc3dmov eax, ebx
    0040bc3fadd eax, 1
    0040bc42and eax, 1
    0040bc45mov ecx, ebx
    0040bc47add ecx, eax
    0040bc49add ecx, 17
    0040bc4cmovsxd rcx, ecx
    0040bc4fcall fn_405700
    0040bc54mov rcx, rax
    0040bc57lea rax, [rcx+16]
    0040bc5bmov [rcx+12], ebx
    0040bc5emov [rcx+8], 1
    0040bc65test si, si
    0040bc68jne 0x40bc72
    0040bc6amovzx rsi, [rip+0x59da6]
    0040bc72
    0040bc72loc_40bc72:
    0040bc72mov [rcx+4], si
    0040bc76mov [rcx+6], 1
    0040bc7cmov ecx, ebx
    0040bc7eshr ecx, 31
    0040bc81add ecx, ebx
    0040bc83sar ecx, 1
    0040bc86movsxd rcx, ecx
    0040bc89mov [rax+2*rcx], 0
    0040bc8f
    0040bc8floc_40bc8f:
    0040bc8fadd rsp, 40
    0040bc93pop rbx
    0040bc94pop rsi
    0040bc95ret
    0040bc20
    0040bc96
    0040bc96 // align 0x10
    0040bca0
    0040bca0fn_40bca0:
    0040bca0push rbp
    0040bca1sub rsp, 32
    0040bca5mov rbp, rsp
    0040bca8mov cl, 1
    0040bcaamov rdx, [rbp+40]
    0040bcaecall fn_4059c0
    0040bcb3lea rsp, [rbp+32]
    0040bcb7pop rbp
    0040bcb8ret
    0040bca0
    0040bcb9
    0040bcb9 // align 0x10
    0040bcc0
    0040bcc0fn_40bcc0:
    0040bcc0push rbx
    0040bcc1sub rsp, 32
    0040bcc5xor ebx, ebx
    0040bcc7test ecx, ecx
    0040bcc9je 0x40bce4
    0040bccbxor eax, eax
    0040bccdmov edx, ecx
    0040bccfmov rcx, rax
    0040bcd2call SysAllocStringLen
    0040bcd7mov rbx, rax
    0040bcdatest rbx, rbx
    0040bcddjne 0x40bce4
    0040bcdfcall fn_40bca0
    0040bce4
    0040bce4loc_40bce4:
    0040bce4mov rax, rbx
    0040bce7add rsp, 32
    0040bcebpop rbx
    0040bcecret
    0040bcc0
    0040bced
    0040bced // align 0x10
    0040bcf0
    0040bcf0fn_40bcf0:
    0040bcf0push rbx
    0040bcf1sub rsp, 32
    0040bcf5mov rbx, rcx
    0040bcf8mov rax, [rbx]
    0040bcfbtest rax, rax
    0040bcfeje 0x40bd29
    0040bd00lea rax, [rax-16]
    0040bd04mov [rbx], 0
    0040bd0bcmp [rax+8], 0
    0040bd0fjle 0x40bd29
    0040bd11or edx, -1
    0040bd14mov ecx, edx
    0040bd16lock xadd [rax+8], edx
    0040bd1badd ecx, edx
    0040bd1dtest ecx, ecx
    0040bd1fjne 0x40bd29
    0040bd21mov rcx, rax
    0040bd24call fn_405730
    0040bd29
    0040bd29loc_40bd29:
    0040bd29mov rax, rbx
    0040bd2cadd rsp, 32
    0040bd30pop rbx
    0040bd31ret
    0040bcf0
    0040bd32
    0040bd32 // align 0x10
    0040bd40
    0040bd40fn_40bd40:
    0040bd40push rbx
    0040bd41sub rsp, 32
    0040bd45mov rbx, rcx
    0040bd48mov rax, [rbx]
    0040bd4btest rax, rax
    0040bd4eje 0x40bd79
    0040bd50lea rax, [rax-16]
    0040bd54mov [rbx], 0
    0040bd5bcmp [rax+8], 0
    0040bd5fjle 0x40bd79
    0040bd61or edx, -1
    0040bd64mov ecx, edx
    0040bd66lock xadd [rax+8], edx
    0040bd6badd ecx, edx
    0040bd6dtest ecx, ecx
    0040bd6fjne 0x40bd79
    0040bd71mov rcx, rax
    0040bd74call fn_405730
    0040bd79
    0040bd79loc_40bd79:
    0040bd79mov rax, rbx
    0040bd7cadd rsp, 32
    0040bd80pop rbx
    0040bd81ret
    0040bd40
    0040bd82
    0040bd82 // align 0x10
    0040bd90
    0040bd90fn_40bd90:
    0040bd90push rbp
    0040bd91push rbx
    0040bd92sub rsp, 56
    0040bd96mov rbp, rsp
    0040bd99mov rbx, rcx
    0040bd9cmov rax, [rbx]
    0040bd9ftest rax, rax
    0040bda2je 0x40bdb8
    0040bda4mov [rbp+40], rax
    0040bda8mov [rbx], 0
    0040bdafmov rcx, [rbp+40]
    0040bdb3call SysFreeString
    0040bdb8
    0040bdb8loc_40bdb8:
    0040bdb8mov rax, rbx
    0040bdbblea rsp, [rbp+56]
    0040bdbfpop rbx
    0040bdc0pop rbp
    0040bdc1ret
    0040bd90
    0040bdc2
    0040bdc2 // align 0x10
    0040bdd0
    0040bdd0fn_40bdd0:
    0040bdd0push rsi
    0040bdd1push rbx
    0040bdd2sub rsp, 40
    0040bdd6mov ebx, edx
    0040bdd8mov rsi, rcx
    0040bddb
    0040bddbloc_40bddb:
    0040bddbmov rax, [rsi]
    0040bddetest rax, rax
    0040bde1je 0x40be0c
    0040bde3mov [rsi], 0
    0040bdeasub rax, 16
    0040bdeecmp [rax+8], 0
    0040bdf2jle 0x40be0c
    0040bdf4or edx, -1
    0040bdf7mov ecx, edx
    0040bdf9lock xadd [rax+8], edx
    0040bdfeadd ecx, edx
    0040be00test ecx, ecx
    0040be02jne 0x40be0c
    0040be04mov rcx, rax
    0040be07call fn_405730
    0040be0c
    0040be0cloc_40be0c:
    0040be0cadd rsi, 8
    0040be10sub ebx, 1
    0040be13test ebx, ebx
    0040be15jne 0x40bddb
    0040be17add rsp, 40
    0040be1bpop rbx
    0040be1cpop rsi
    0040be1dret
    0040bdd0
    0040be1e
    0040be1e // align 0x10
    0040be20
    0040be20fn_40be20:
    0040be20push rsi
    0040be21push rbx
    0040be22sub rsp, 40
    0040be26mov ebx, edx
    0040be28mov rsi, rcx
    0040be2b
    0040be2bloc_40be2b:
    0040be2bmov rax, [rsi]
    0040be2etest rax, rax
    0040be31je 0x40be5c
    0040be33mov [rsi], 0
    0040be3asub rax, 16
    0040be3ecmp [rax+8], 0
    0040be42jle 0x40be5c
    0040be44or edx, -1
    0040be47mov ecx, edx
    0040be49lock xadd [rax+8], edx
    0040be4eadd ecx, edx
    0040be50test ecx, ecx
    0040be52jne 0x40be5c
    0040be54mov rcx, rax
    0040be57call fn_405730
    0040be5c
    0040be5cloc_40be5c:
    0040be5cadd rsi, 8
    0040be60sub ebx, 1
    0040be63test ebx, ebx
    0040be65jne 0x40be2b
    0040be67add rsp, 40
    0040be6bpop rbx
    0040be6cpop rsi
    0040be6dret
    0040be20
    0040be6e
    0040be6e // align 0x10
    0040be70
    0040be70fn_40be70:
    0040be70push rbp
    0040be71push rsi
    0040be72push rbx
    0040be73sub rsp, 48
    0040be77mov rbp, rsp
    0040be7amov ebx, edx
    0040be7cmov rsi, rcx
    0040be7ftest ebx, ebx
    0040be81jle 0x40beac
    0040be83
    0040be83loc_40be83:
    0040be83mov rax, [rsi]
    0040be86mov [rbp+40], rax
    0040be8acmp [rbp+40], 0
    0040be8fje 0x40bea1
    0040be91mov [rsi], 0
    0040be98mov rcx, [rbp+40]
    0040be9ccall SysFreeString
    0040bea1
    0040bea1loc_40bea1:
    0040bea1add rsi, 8
    0040bea5sub ebx, 1
    0040bea8test ebx, ebx
    0040beaajg 0x40be83
    0040beac
    0040beacloc_40beac:
    0040beacnop
    0040beadlea rsp, [rbp+48]
    0040beb1pop rbx
    0040beb2pop rsi
    0040beb3pop rbp
    0040beb4ret
    0040be70
    0040beb5
    0040beb5 // align 0x10
    0040bec0
    0040bec0fn_40bec0:
    0040bec0mov rax, rcx
    0040bec3test rcx, rcx
    0040bec6je 0x40bedc
    0040bec8lea rcx, [rcx-16]
    0040becccmp [rcx+8], 0
    0040bed0jl 0x40bedc
    0040bed2mov edx, 1
    0040bed7lock xadd [rcx+8], edx
    0040bedc
    0040bedcloc_40bedc:
    0040bedcret
    0040bec0
    0040bedd
    0040bedd // align 0x10
    0040bee0
    0040bee0fn_40bee0:
    0040bee0mov rax, rcx
    0040bee3test rcx, rcx
    0040bee6je 0x40befc
    0040bee8lea rcx, [rcx-16]
    0040beeccmp [rcx+8], 0
    0040bef0jl 0x40befc
    0040bef2mov edx, 1
    0040bef7lock xadd [rcx+8], edx
    0040befc
    0040befcloc_40befc:
    0040befcret
    0040bee0
    0040befd
    0040befd // align 0x10
    0040bf00
    0040bf00fn_40bf00:
    0040bf00push rsi
    0040bf01push rbx
    0040bf02sub rsp, 40
    0040bf06mov rbx, rcx
    0040bf09mov rcx, [rbx]
    0040bf0cmov rsi, rcx
    0040bf0ftest rcx, rcx
    0040bf12je 0x40bf37
    0040bf14mov eax, [rcx-4]
    0040bf17shr eax, 31
    0040bf1aadd eax, [rcx-4]
    0040bf1dsar eax, 1
    0040bf20mov edx, eax
    0040bf22call SysAllocStringLen
    0040bf27mov rsi, rax
    0040bf2atest rsi, rsi
    0040bf2djne 0x40bf34
    0040bf2fcall fn_40bca0
    0040bf34
    0040bf34loc_40bf34:
    0040bf34mov [rbx], rsi
    0040bf37
    0040bf37loc_40bf37:
    0040bf37mov rax, rsi
    0040bf3aadd rsp, 40
    0040bf3epop rbx
    0040bf3fpop rsi
    0040bf40ret
    0040bf00
    0040bf41
    0040bf41 // align 0x10
    0040bf50
    0040bf50fn_40bf50:
    0040bf50sub rsp, 72
    0040bf54cmp [rsp+112], 0
    0040bf59jne 0x40bf65
    0040bf5bmov eax, [rip+0x59ab7]
    0040bf61mov [rsp+112], eax
    0040bf65
    0040bf65loc_40bf65:
    0040bf65mov eax, [rsp+112]
    0040bf69xor r10, r10
    0040bf6cmov [rsp+32], rcx
    0040bf71mov [rsp+40], edx
    0040bf75mov [rsp+48], 0
    0040bf7emov [rsp+56], 0
    0040bf87mov ecx, eax
    0040bf89mov edx, r10l
    0040bf8ccall fn_4146a0
    0040bf91add rsp, 72
    0040bf95ret
    0040bf50
    0040bf96
    0040bf96 // align 0x10
    0040bfa0
    0040bfa0fn_40bfa0:
    0040bfa0sub rsp, 56
    0040bfa4mov eax, [rsp+96]
    0040bfa8xor r10, r10
    0040bfabmov [rsp+32], rcx
    0040bfb0mov [rsp+40], edx
    0040bfb4mov ecx, eax
    0040bfb6mov edx, r10l
    0040bfb9call fn_4146e0
    0040bfbeadd rsp, 56
    0040bfc2ret
    0040bfa0
    0040bfc3
    0040bfc3 // align 0x10
    0040bfd0
    0040bfd0fn_40bfd0:
    0040bfd0push rbp
    0040bfd1push rdi
    0040bfd2push rsi
    0040bfd3push rbx
    0040bfd4sub rsp, 56
    0040bfd8mov rbp, rsp
    0040bfdbmov rbx, rcx
    0040bfdemov rsi, rdx
    0040bfe1mov edi, r8l
    0040bfe4mov rax, [rbx]
    0040bfe7mov [rbp+40], rax
    0040bfebtest edi, edi
    0040bfedjle 0x40c014
    0040bfefmov ecx, edi
    0040bff1call fn_40bbc0
    0040bff6mov [rbx], rax
    0040bff9test rsi, rsi
    0040bffcje 0x40c01b
    0040bffemov rcx, rsi
    0040c001mov rdx, rax
    0040c004mov r8l, edi
    0040c007add r8l, r8l
    0040c00amovsxd r8, r8l
    0040c00dcall fn_405ac0
    0040c012jmp 0x40c01b
    0040c014
    0040c014loc_40c014:
    0040c014mov [rbx], 0
    0040c01b
    0040c01bloc_40c01b:
    0040c01blea rcx, [rbp+40]
    0040c01fcall fn_40bcf0
    0040c024lea rsp, [rbp+56]
    0040c028pop rbx
    0040c029pop rsi
    0040c02apop rdi
    0040c02bpop rbp
    0040c02cret
    0040bfd0
    0040c02d
    0040c02d // align 0x10
    0040c030
    0040c030fn_40c030:
    0040c030push rsi
    0040c031push rbx
    0040c032sub rsp, 40
    0040c036mov rbx, rcx
    0040c039test r8l, r8l
    0040c03cjg 0x40c048
    0040c03emov rcx, rbx
    0040c041call fn_40bd90
    0040c046jmp 0x40c071
    0040c048
    0040c048loc_40c048:
    0040c048mov rcx, rdx
    0040c04bmov edx, r8l
    0040c04ecall SysAllocStringLen
    0040c053mov rsi, rax
    0040c056test rsi, rsi
    0040c059jne 0x40c060
    0040c05bcall fn_40bca0
    0040c060
    0040c060loc_40c060:
    0040c060cmp [rbx], 0
    0040c064je 0x40c06e
    0040c066mov rcx, [rbx]
    0040c069call SysFreeString
    0040c06e
    0040c06eloc_40c06e:
    0040c06emov [rbx], rsi
    0040c071
    0040c071loc_40c071:
    0040c071add rsp, 40
    0040c075pop rbx
    0040c076pop rsi
    0040c077ret
    0040c030
    0040c078
    0040c078 // align 0x10
    0040c080
    0040c080fn_40c080:
    0040c080push r13
    0040c082push rdi
    0040c083push rsi
    0040c084push rbx
    0040c085sub rsp, 40
    0040c089mov rbx, rcx
    0040c08cmov rsi, rdx
    0040c08fmov edi, r8l
    0040c092mov ecx, edi
    0040c094mov edx, r9l
    0040c097call fn_40bc20
    0040c09cmov r13, rax
    0040c09ftest rsi, rsi
    0040c0a2je 0x40c0b2
    0040c0a4mov rcx, rsi
    0040c0a7mov rdx, r13
    0040c0aamovsxd r8, edi
    0040c0adcall fn_405ac0
    0040c0b2
    0040c0b2loc_40c0b2:
    0040c0b2mov rcx, rbx
    0040c0b5call fn_40bd40
    0040c0bamov [rbx], r13
    0040c0bdadd rsp, 40
    0040c0c1pop rbx
    0040c0c2pop rsi
    0040c0c3pop rdi
    0040c0c4pop r13
    0040c0c6ret
    0040c080
    0040c0c7
    0040c0c7 // align 0x10
    0040c0d0
    0040c0d0fn_40c0d0:
    0040c0d0push rbp
    0040c0d1push r13
    0040c0d3push rdi
    0040c0d4push rsi
    0040c0d5push rbx
    0040c0d6mov [rsp-64], 0
    0040c0dbmov [rsp-4160], 0
    0040c0e3sub rsp, 4160
    0040c0eamov rbp, rsp
    0040c0edmov [rbp+48], rcx
    0040c0f1mov [rbp+56], rdx
    0040c0f5mov ebx, r8l
    0040c0f8mov esi, r9l
    0040c0fbtest ebx, ebx
    0040c0fdjg 0x40c10a
    0040c0ffmov rcx, [rbp+48]
    0040c103call fn_40bcf0
    0040c108jmp 0x40c185
    0040c10a
    0040c10aloc_40c10a:
    0040c10amov r13l, ebx
    0040c10dadd r13l, 1
    0040c111cmp r13l, 2047
    0040c118jge 0x40c14b
    0040c11alea rcx, [rbp+64]
    0040c11emov edx, 2047
    0040c123mov r8, [rbp+56]
    0040c127mov r9l, ebx
    0040c12amov [rsp+32], esi
    0040c12ecall fn_40bfa0
    0040c133mov edi, eax
    0040c135test edi, edi
    0040c137jle 0x40c14b
    0040c139mov rcx, [rbp+48]
    0040c13dlea rdx, [rbp+64]
    0040c141mov r8l, edi
    0040c144call fn_40bfd0
    0040c149jmp 0x40c185
    0040c14b
    0040c14bloc_40c14b:
    0040c14bmov edi, r13l
    0040c14emov rcx, [rbp+48]
    0040c152mov edx, edi
    0040c154call fn_40d8d0
    0040c159mov rax, [rbp+48]
    0040c15dmov rcx, [rax]
    0040c160mov edx, edi
    0040c162mov r8, [rbp+56]
    0040c166mov r9l, ebx
    0040c169mov [rsp+32], esi
    0040c16dcall fn_40bfa0
    0040c172mov edi, eax
    0040c174test edi, edi
    0040c176jge 0x40c17a
    0040c178xor edi, edi
    0040c17a
    0040c17aloc_40c17a:
    0040c17amov rcx, [rbp+48]
    0040c17emov edx, edi
    0040c180call fn_40d8d0
    0040c185
    0040c185loc_40c185:
    0040c185lea rsp, [rbp+4160]
    0040c18cpop rbx
    0040c18dpop rsi
    0040c18epop rdi
    0040c18fpop r13
    0040c191pop rbp
    0040c192ret
    0040c0d0
    0040c193
    0040c193 // align 0x10
    0040c1a0
    0040c1a0fn_40c1a0:
    0040c1a0sub rsp, 40
    0040c1a4mov r9l, [rip+0x5986d]
    0040c1abcall fn_40c0d0
    0040c1b0add rsp, 40
    0040c1b4ret
    0040c1a0
    0040c1b5
    0040c1b5 // align 0x10
    0040c1c0
    0040c1c0fn_40c1c0:
    0040c1c0push rbp
    0040c1c1push r13
    0040c1c3push rdi
    0040c1c4push rsi
    0040c1c5push rbx
    0040c1c6mov [rsp-64], 0
    0040c1cbmov [rsp-4160], 0
    0040c1d3sub rsp, 4160
    0040c1damov rbp, rsp
    0040c1ddmov [rbp+48], rcx
    0040c1e1mov [rbp+56], rdx
    0040c1e5mov ebx, r8l
    0040c1e8mov esi, r9l
    0040c1ebtest ebx, ebx
    0040c1edjg 0x40c1fa
    0040c1efmov rcx, [rbp+48]
    0040c1f3call fn_40bd90
    0040c1f8jmp 0x40c275
    0040c1fa
    0040c1faloc_40c1fa:
    0040c1famov r13l, ebx
    0040c1fdadd r13l, 1
    0040c201cmp r13l, 2047
    0040c208jge 0x40c23b
    0040c20alea rcx, [rbp+64]
    0040c20emov edx, 2047
    0040c213mov r8, [rbp+56]
    0040c217mov r9l, ebx
    0040c21amov [rsp+32], esi
    0040c21ecall fn_40bfa0
    0040c223mov edi, eax
    0040c225test edi, edi
    0040c227jle 0x40c23b
    0040c229mov rcx, [rbp+48]
    0040c22dlea rdx, [rbp+64]
    0040c231mov r8l, edi
    0040c234call fn_40c030
    0040c239jmp 0x40c275
    0040c23b
    0040c23bloc_40c23b:
    0040c23bmov edi, r13l
    0040c23emov rcx, [rbp+48]
    0040c242mov edx, edi
    0040c244call fn_40d6b0
    0040c249mov rax, [rbp+48]
    0040c24dmov rcx, [rax]
    0040c250mov edx, edi
    0040c252mov r8, [rbp+56]
    0040c256mov r9l, ebx
    0040c259mov [rsp+32], esi
    0040c25dcall fn_40bfa0
    0040c262mov edi, eax
    0040c264test edi, edi
    0040c266jge 0x40c26a
    0040c268xor edi, edi
    0040c26a
    0040c26aloc_40c26a:
    0040c26amov rcx, [rbp+48]
    0040c26emov edx, edi
    0040c270call fn_40d6b0
    0040c275
    0040c275loc_40c275:
    0040c275lea rsp, [rbp+4160]
    0040c27cpop rbx
    0040c27dpop rsi
    0040c27epop rdi
    0040c27fpop r13
    0040c281pop rbp
    0040c282ret
    0040c1c0
    0040c283
    0040c283 // align 0x10
    0040c290
    0040c290fn_40c290:
    0040c290sub rsp, 40
    0040c294mov r9l, [rip+0x5977d]
    0040c29bcall fn_40c1c0
    0040c2a0add rsp, 40
    0040c2a4ret
    0040c290
    0040c2a5
    0040c2a5 // align 0x10
    0040c2b0
    0040c2b0fn_40c2b0:
    0040c2b0push r13
    0040c2b2push rdi
    0040c2b3push rsi
    0040c2b4push rbx
    0040c2b5sub rsp, 72
    0040c2b9mov [rsp+48], rcx
    0040c2bemov [rsp+56], rdx
    0040c2c3mov ebx, r8l
    0040c2c6mov esi, r9l
    0040c2c9test ebx, ebx
    0040c2cbjg 0x40c2d9
    0040c2cdmov rcx, [rsp+48]
    0040c2d2call fn_40bd40
    0040c2d7jmp 0x40c349
    0040c2d9
    0040c2d9loc_40c2d9:
    0040c2d9test si, si
    0040c2dcjne 0x40c2e6
    0040c2demovzx rsi, [rip+0x59732]
    0040c2e6
    0040c2e6loc_40c2e6:
    0040c2e6movzx r13l, si
    0040c2eaxor ecx, ecx
    0040c2ecxor edx, edx
    0040c2eemov r8, [rsp+56]
    0040c2f3mov r9l, ebx
    0040c2f6mov [rsp+32], r13l
    0040c2fbcall fn_40bf50
    0040c300mov edi, eax
    0040c302mov rcx, [rsp+48]
    0040c307mov edx, edi
    0040c309xor r8, r8
    0040c30ccall fn_40cf30
    0040c311test edi, edi
    0040c313jle 0x40c33f
    0040c315mov rax, [rsp+48]
    0040c31amov rcx, [rax]
    0040c31dmov edx, edi
    0040c31fmov r8, [rsp+56]
    0040c324mov r9l, ebx
    0040c327mov [rsp+32], r13l
    0040c32ccall fn_40bf50
    0040c331mov rax, [rsp+48]
    0040c336mov rax, [rax]
    0040c339mov [rax-12], si
    0040c33djmp 0x40c349
    0040c33f
    0040c33floc_40c33f:
    0040c33fmov rcx, [rsp+48]
    0040c344call fn_40bd40
    0040c349
    0040c349loc_40c349:
    0040c349add rsp, 72
    0040c34dpop rbx
    0040c34epop rsi
    0040c34fpop rdi
    0040c350pop r13
    0040c352ret
    0040c2b0
    0040c353
    0040c353 // align 0x10
    0040c360
    0040c360fn_40c360:
    0040c360push rbp
    0040c361push r13
    0040c363push rdi
    0040c364push rsi
    0040c365push rbx
    0040c366sub rsp, 48
    0040c36amov rbp, rsp
    0040c36dmov rbx, rcx
    0040c370mov r13, rdx
    0040c373mov rsi, r13
    0040c376test rsi, rsi
    0040c379je 0x40c3b4
    0040c37bcmp [r13-8], 0
    0040c380jge 0x40c3a6
    0040c382mov edi, [r13-4]
    0040c386mov ecx, edi
    0040c388call fn_40bbc0
    0040c38dmov rsi, rax
    0040c390mov rcx, r13
    0040c393mov rdx, rsi
    0040c396mov r8l, edi
    0040c399add r8l, r8l
    0040c39cmovsxd r8, r8l
    0040c39fcall fn_405ac0
    0040c3a4jmp 0x40c3b4
    0040c3a6
    0040c3a6loc_40c3a6:
    0040c3a6lea rax, [rsi-16]
    0040c3aamov ecx, 1
    0040c3aflock xadd [rax+8], ecx
    0040c3b4
    0040c3b4loc_40c3b4:
    0040c3b4mov rax, [rbx]
    0040c3b7mov [rbp+40], rax
    0040c3bbmov [rbx], rsi
    0040c3belea rcx, [rbp+40]
    0040c3c2call fn_40bcf0
    0040c3c7lea rsp, [rbp+48]
    0040c3cbpop rbx
    0040c3ccpop rsi
    0040c3cdpop rdi
    0040c3cepop r13
    0040c3d0pop rbp
    0040c3d1ret
    0040c360
    0040c3d2
    0040c3d2 // align 0x10
    0040c3e0
    0040c3e0fn_40c3e0:
    0040c3e0sub rsp, 40
    0040c3e4test rdx, rdx
    0040c3e7je 0x40c3ff
    0040c3e9lea rax, [rdx-16]
    0040c3edcmp [rax+8], 0
    0040c3f1jl 0x40c3ff
    0040c3f3mov r8l, 1
    0040c3f9lock xadd [rax+8], r8l
    0040c3ff
    0040c3ffloc_40c3ff:
    0040c3ffmov rax, [rcx]
    0040c402mov [rcx], rdx
    0040c405test rax, rax
    0040c408je 0x40c42c
    0040c40alea rax, [rax-16]
    0040c40ecmp [rax+8], 0
    0040c412jle 0x40c42c
    0040c414or edx, -1
    0040c417mov ecx, edx
    0040c419lock xadd [rax+8], edx
    0040c41eadd ecx, edx
    0040c420test ecx, ecx
    0040c422jne 0x40c42c
    0040c424mov rcx, rax
    0040c427call fn_405730
    0040c42c
    0040c42cloc_40c42c:
    0040c42cadd rsp, 40
    0040c430ret
    0040c3e0
    0040c431
    0040c431 // align 0x10
    0040c440
    0040c440fn_40c440:
    0040c440sub rsp, 40
    0040c444cmp [rcx], rdx
    0040c447je 0x40c47d
    0040c449test rdx, rdx
    0040c44cjne 0x40c455
    0040c44ecall fn_40bd90
    0040c453jmp 0x40c47d
    0040c455
    0040c455loc_40c455:
    0040c455mov eax, [rdx-4]
    0040c458shr eax, 31
    0040c45badd eax, [rdx-4]
    0040c45esar eax, 1
    0040c461test eax, eax
    0040c463jne 0x40c46c
    0040c465call fn_40bd90
    0040c46ajmp 0x40c47d
    0040c46c
    0040c46cloc_40c46c:
    0040c46cmov r8l, eax
    0040c46fcall SysReAllocStringLen
    0040c474test eax, eax
    0040c476jne 0x40c47d
    0040c478call fn_40bca0
    0040c47d
    0040c47dloc_40c47d:
    0040c47dadd rsp, 40
    0040c481ret
    0040c440
    0040c482
    0040c482 // align 0x10
    0040c490
    0040c490fn_40c490:
    0040c490sub rsp, 40
    0040c494call fn_40c440
    0040c499add rsp, 40
    0040c49dret
    0040c490
    0040c49e
    0040c49e // align 0x10
    0040c4a0
    0040c4a0fn_40c4a0:
    0040c4a0push rbp
    0040c4a1push r13
    0040c4a3push rdi
    0040c4a4push rsi
    0040c4a5push rbx
    0040c4a6sub rsp, 48
    0040c4aamov rbp, rsp
    0040c4admov rbx, rcx
    0040c4b0mov rsi, rdx
    0040c4b3mov rdi, rsi
    0040c4b6test rdi, rdi
    0040c4b9je 0x40c4fe
    0040c4bbmov rax, rdi
    0040c4becmp [rax-8], 0
    0040c4c2jge 0x40c4f0
    0040c4c4mov r13l, [rax-4]
    0040c4c8mov ecx, r13l
    0040c4cbmovzx rdx, [rax-12]
    0040c4d0call fn_40bc20
    0040c4d5mov rdi, rax
    0040c4d8mov rcx, rsi
    0040c4dbcall fn_40ce10
    0040c4e0mov rcx, rax
    0040c4e3mov rdx, rdi
    0040c4e6movsxd r8, r13l
    0040c4e9call fn_405ac0
    0040c4eejmp 0x40c4fe
    0040c4f0
    0040c4f0loc_40c4f0:
    0040c4f0lea rax, [rax-16]
    0040c4f4mov ecx, 1
    0040c4f9lock xadd [rax+8], ecx
    0040c4fe
    0040c4feloc_40c4fe:
    0040c4femov rax, [rbx]
    0040c501mov [rbp+40], rax
    0040c505mov [rbx], rdi
    0040c508lea rcx, [rbp+40]
    0040c50ccall fn_40bd40
    0040c511lea rsp, [rbp+48]
    0040c515pop rbx
    0040c516pop rsi
    0040c517pop rdi
    0040c518pop r13
    0040c51apop rbp
    0040c51bret
    0040c4a0
    0040c51c
    0040c51c // align 0x10
    0040c520
    0040c520fn_40c520:
    0040c520push rbp
    0040c521push rsi
    0040c522push rbx
    0040c523sub rsp, 48
    0040c527mov rbp, rsp
    0040c52amov rbx, rcx
    0040c52dmov rsi, rdx
    0040c530mov [rbp+40], rsi
    0040c534cmp [rbp+40], 0
    0040c539je 0x40c544
    0040c53bmov rcx, [rbp+40]
    0040c53fcall fn_40bee0
    0040c544
    0040c544loc_40c544:
    0040c544mov rax, [rbx]
    0040c547mov [rbp+40], rax
    0040c54bmov [rbx], rsi
    0040c54elea rcx, [rbp+40]
    0040c552call fn_40bd40
    0040c557lea rsp, [rbp+48]
    0040c55bpop rbx
    0040c55cpop rsi
    0040c55dpop rbp
    0040c55eret
    0040c520
    0040c55f
    0040c55f // align 0x10
    0040c560
    0040c560fn_40c560:
    0040c560xor eax, eax
    0040c562test rcx, rcx
    0040c565je 0x40c56a
    0040c567mov eax, [rcx-4]
    0040c56a
    0040c56aloc_40c56a:
    0040c56aret
    0040c560
    0040c56b
    0040c56b // align 0x10
    0040c570
    0040c570fn_40c570:
    0040c570xor eax, eax
    0040c572test rcx, rcx
    0040c575je 0x40c57a
    0040c577mov eax, [rcx-4]
    0040c57a
    0040c57aloc_40c57a:
    0040c57aret
    0040c570
    0040c57b
    0040c57b // align 0x10
    0040c580
    0040c580fn_40c580:
    0040c580xor eax, eax
    0040c582test rcx, rcx
    0040c585je 0x40c595
    0040c587jmp 0x40c58c
    0040c589
    0040c589loc_40c589:
    0040c589add eax, 1
    0040c58c
    0040c58cloc_40c58c:
    0040c58cmovsxd rdx, eax
    0040c58fcmp [rcx+rdx], 0
    0040c593jne 0x40c589
    0040c595
    0040c595loc_40c595:
    0040c595ret
    0040c580
    0040c596
    0040c596 // align 0x10
    0040c5a0
    0040c5a0fn_40c5a0:
    0040c5a0xor eax, eax
    0040c5a2test rcx, rcx
    0040c5a5je 0x40c5b6
    0040c5a7jmp 0x40c5ac
    0040c5a9
    0040c5a9loc_40c5a9:
    0040c5a9add eax, 1
    0040c5ac
    0040c5acloc_40c5ac:
    0040c5acmovsxd rdx, eax
    0040c5afcmp [rcx+2*rdx], 0
    0040c5b4jne 0x40c5a9
    0040c5b6
    0040c5b6loc_40c5b6:
    0040c5b6ret
    0040c5a0
    0040c5b7
    0040c5b7 // align 0x10
    0040c5c0
    0040c5c0fn_40c5c0:
    0040c5c0push rdi
    0040c5c1push rsi
    0040c5c2push rbx
    0040c5c3sub rsp, 32
    0040c5c7mov rbx, rcx
    0040c5camov rax, [rbx]
    0040c5cdmov rsi, rax
    0040c5d0test rsi, rsi
    0040c5d3je 0x40c615
    0040c5d5mov rsi, rax
    0040c5d8lea rdi, [rax-16]
    0040c5dccmp [rdi+8], 1
    0040c5e0je 0x40c615
    0040c5e2mov ecx, [rdi+12]
    0040c5e5call fn_40bbc0
    0040c5eamov rsi, rax
    0040c5edmov rcx, [rbx]
    0040c5f0call fn_40d710
    0040c5f5mov rcx, rax
    0040c5f8mov rdx, rsi
    0040c5fbmov r8l, [rdi+12]
    0040c5ffadd r8l, r8l
    0040c602movsxd r8, r8l
    0040c605call fn_405ac0
    0040c60amov rcx, rbx
    0040c60dcall fn_40bcf0
    0040c612mov [rbx], rsi
    0040c615
    0040c615loc_40c615:
    0040c615mov rax, rsi
    0040c618add rsp, 32
    0040c61cpop rbx
    0040c61dpop rsi
    0040c61epop rdi
    0040c61fret
    0040c5c0
    0040c620
    0040c620fn_40c620:
    0040c620push rdi
    0040c621push rsi
    0040c622push rbx
    0040c623sub rsp, 32
    0040c627mov rbx, rcx
    0040c62amov rax, [rbx]
    0040c62dmov rsi, rax
    0040c630test rsi, rsi
    0040c633je 0x40c674
    0040c635mov rsi, rax
    0040c638lea rdi, [rax-16]
    0040c63ccmp [rdi+8], 1
    0040c640je 0x40c674
    0040c642mov ecx, [rdi+12]
    0040c645movzx rdx, [rdi+4]
    0040c64acall fn_40bc20
    0040c64fmov rsi, rax
    0040c652mov rcx, [rbx]
    0040c655call fn_40ce10
    0040c65amov rcx, rax
    0040c65dmov rdx, rsi
    0040c660movsxd r8, [rdi+12]
    0040c664call fn_405ac0
    0040c669mov rcx, rbx
    0040c66ccall fn_40bd40
    0040c671mov [rbx], rsi
    0040c674
    0040c674loc_40c674:
    0040c674mov rax, rsi
    0040c677add rsp, 32
    0040c67bpop rbx
    0040c67cpop rsi
    0040c67dpop rdi
    0040c67eret
    0040c620
    0040c67f
    0040c67f // align 0x10
    0040c680
    0040c680fn_40c680:
    0040c680sub rsp, 40
    0040c684call fn_40c5c0
    0040c689add rsp, 40
    0040c68dret
    0040c680
    0040c68e
    0040c68e // align 0x10
    0040c690
    0040c690fn_40c690:
    0040c690sub rsp, 40
    0040c694call fn_40c620
    0040c699add rsp, 40
    0040c69dret
    0040c690
    0040c69e
    0040c69e // align 0x10
    0040c6a0
    0040c6a0fn_40c6a0:
    0040c6a0sub rsp, 40
    0040c6a4call fn_40c5c0
    0040c6a9add rsp, 40
    0040c6adret
    0040c6a0
    0040c6ae
    0040c6ae // align 0x10
    0040c6b0
    0040c6b0fn_40c6b0:
    0040c6b0xor eax, eax
    0040c6b2jmp 0x40c6e6
    0040c6b4
    0040c6b4loc_40c6b4:
    0040c6b4mov r9l, [rcx]
    0040c6b7cmp r9l, [rdx]
    0040c6bajne 0x40c6ec
    0040c6bccmp r8, 8
    0040c6c0jl 0x40c6cc
    0040c6c2mov r9l, [rcx+4]
    0040c6c6cmp r9l, [rdx+4]
    0040c6caje 0x40c6da
    0040c6cc
    0040c6ccloc_40c6cc:
    0040c6ccadd rcx, 4
    0040c6d0add rdx, 4
    0040c6d4sub r8, 4
    0040c6d8jmp 0x40c6ec
    0040c6da
    0040c6daloc_40c6da:
    0040c6daadd rcx, 8
    0040c6deadd rdx, 8
    0040c6e2sub r8, 8
    0040c6e6
    0040c6e6loc_40c6e6:
    0040c6e6cmp r8, 4
    0040c6eajge 0x40c6b4
    0040c6ec
    0040c6ecloc_40c6ec:
    0040c6ecnop
    0040c6edtest r8, r8
    0040c6f0je 0x40c741
    0040c6f2movzx rax, [rcx]
    0040c6f6movzx r9, [rdx]
    0040c6fasub eax, r9l
    0040c6fdtest eax, eax
    0040c6ffjne 0x40c741
    0040c701cmp r8, 1
    0040c705je 0x40c741
    0040c707movzx rax, [rcx+1]
    0040c70cmovzx r9, [rdx+1]
    0040c711sub eax, r9l
    0040c714test eax, eax
    0040c716jne 0x40c741
    0040c718cmp r8, 2
    0040c71cje 0x40c741
    0040c71emovzx rax, [rcx+2]
    0040c723movzx r9, [rdx+2]
    0040c728sub eax, r9l
    0040c72btest eax, eax
    0040c72djne 0x40c741
    0040c72fcmp r8, 3
    0040c733je 0x40c741
    0040c735movzx rax, [rcx+3]
    0040c73amovzx rcx, [rdx+3]
    0040c73fsub eax, ecx
    0040c741
    0040c741loc_40c741:
    0040c741ret
    0040c6b0
    0040c742
    0040c742 // align 0x10
    0040c750
    0040c750fn_40c750:
    0040c750sub rsp, 40
    0040c754mov rax, rdx
    0040c757mov r8, rcx
    0040c75amovzx r9, [rdx]
    0040c75eadd r9l, 1
    0040c762mov r9l, r9l
    0040c765mov rcx, rax
    0040c768mov rdx, r8
    0040c76bmov r8, r9
    0040c76ecall fn_405ac0
    0040c773add rsp, 40
    0040c777ret
    0040c750
    0040c778
    0040c778 // align 0x10
    0040c780
    0040c780fn_40c780:
    0040c780push rbp
    0040c781push rdi
    0040c782push rsi
    0040c783sub rsp, 272
    0040c78amov rbp, rsp
    0040c78dmov rax, rcx
    0040c790mov rsi, rdx
    0040c793movzx rcx, [rsi]
    0040c797lea rcx, [rcx+1]
    0040c79blea rdi, [rbp+16]
    0040c79frep movsb [rdi], [rsi]
    0040c7a1mov [rbp+8], rax
    0040c7a5mov rcx, [rbp+8]
    0040c7a9movzx rcx, [rcx]
    0040c7adlea rdx, [rbp+16]
    0040c7b1mov [rbp], rdx
    0040c7b5mov rdx, [rbp]
    0040c7b9movzx rdx, [rdx]
    0040c7bdmov r9l, ecx
    0040c7c0add r9l, edx
    0040c7c3cmp r9l, r8l
    0040c7c6jle 0x40c7cd
    0040c7c8mov edx, r8l
    0040c7cbsub edx, ecx
    0040c7cd
    0040c7cdloc_40c7cd:
    0040c7cdmov r8l, ecx
    0040c7d0add r8b, dl
    0040c7d3mov [rax], r8b
    0040c7d6mov r8l, 1
    0040c7dcmov r9l, edx
    0040c7dfmov edx, r8l
    0040c7e2cmp edx, r9l
    0040c7e5jg 0x40c813
    0040c7e7sub r9l, r8l
    0040c7eaadd r9l, 1
    0040c7eelea r8, [rbp+17]
    0040c7f2
    0040c7f2loc_40c7f2:
    0040c7f2mov r10l, ecx
    0040c7f5add r10l, edx
    0040c7f8movsxd r10, r10l
    0040c7fbmovzx r11, [r8]
    0040c7ffmov [rax+r10], r11b
    0040c803add edx, 1
    0040c806add r8, 1
    0040c80asub r9l, 1
    0040c80etest r9l, r9l
    0040c811jne 0x40c7f2
    0040c813
    0040c813loc_40c813:
    0040c813nop
    0040c814lea rsp, [rbp+272]
    0040c81bpop rsi
    0040c81cpop rdi
    0040c81dpop rbp
    0040c81eret
    0040c780
    0040c81f
    0040c81f // align 0x10
    0040c820
    0040c820fn_40c820:
    0040c820sub rsp, 40
    0040c824mov [rsp+56], dl
    0040c828lea rdx, [rsp+56]
    0040c82dmov eax, 1
    0040c832mov r9l, r8l
    0040c835mov r8l, eax
    0040c838call fn_40c080
    0040c83dadd rsp, 40
    0040c841ret
    0040c820
    0040c842
    0040c842 // align 0x10
    0040c850
    0040c850fn_40c850:
    0040c850sub rsp, 40
    0040c854xor eax, eax
    0040c856test rdx, rdx
    0040c859je 0x40c877
    0040c85bmov rax, rdx
    0040c85ejmp 0x40c864
    0040c860
    0040c860loc_40c860:
    0040c860add rax, 2
    0040c864
    0040c864loc_40c864:
    0040c864cmp [rax], 0
    0040c868jne 0x40c860
    0040c86asub rax, rdx
    0040c86dsar rax, 1
    0040c871jns 0x40c877
    0040c873adc rax, 0
    0040c877
    0040c877loc_40c877:
    0040c877mov r9l, r8l
    0040c87amov r8l, eax
    0040c87dcall fn_40c2b0
    0040c882add rsp, 40
    0040c886ret
    0040c850
    0040c887
    0040c887 // align 0x10
    0040c890
    0040c890fn_40c890:
    0040c890push rbp
    0040c891push rdi
    0040c892push rsi
    0040c893sub rsp, 288
    0040c89amov rbp, rsp
    0040c89dmov rax, rcx
    0040c8a0mov rsi, rdx
    0040c8a3movzx rcx, [rsi]
    0040c8a7lea rcx, [rcx+1]
    0040c8ablea rdi, [rbp+32]
    0040c8afrep movsb [rdi], [rsi]
    0040c8b1mov rcx, rax
    0040c8b4lea rdx, [rbp+33]
    0040c8b8movzx rax, [rbp+32]
    0040c8bdmov r9l, r8l
    0040c8c0mov r8l, eax
    0040c8c3call fn_40c080
    0040c8c8lea rsp, [rbp+288]
    0040c8cfpop rsi
    0040c8d0pop rdi
    0040c8d1pop rbp
    0040c8d2ret
    0040c890
    0040c8d3
    0040c8d3 // align 0x10
    0040c8e0
    0040c8e0fn_40c8e0:
    0040c8e0sub rsp, 40
    0040c8e4xor eax, eax
    0040c8e6test rdx, rdx
    0040c8e9je 0x40c8f7
    0040c8ebmov eax, [rdx-4]
    0040c8eeshr eax, 31
    0040c8f1add eax, [rdx-4]
    0040c8f4sar eax, 1
    0040c8f7
    0040c8f7loc_40c8f7:
    0040c8f7mov r9l, r8l
    0040c8famov r8l, eax
    0040c8fdcall fn_40c2b0
    0040c902add rsp, 40
    0040c906ret
    0040c8e0
    0040c907
    0040c907 // align 0x10
    0040c910
    0040c910fn_40c910:
    0040c910push r14
    0040c912push r13
    0040c914push rdi
    0040c915push rsi
    0040c916push rbx
    0040c917sub rsp, 48
    0040c91bmov [rsp+40], rcx
    0040c920mov rbx, rdx
    0040c923mov rcx, rbx
    0040c926test rcx, rcx
    0040c929je 0x40c9f5
    0040c92fmov rax, [rsp+40]
    0040c934mov rax, [rax]
    0040c937test rax, rax
    0040c93ajne 0x40c94e
    0040c93cmov rcx, [rsp+40]
    0040c941mov rdx, rbx
    0040c944call fn_40c4a0
    0040c949jmp 0x40c9f5
    0040c94e
    0040c94eloc_40c94e:
    0040c94emov esi, [rax-4]
    0040c951mov edi, [rcx-4]
    0040c954mov r13l, esi
    0040c957add r13l, edi
    0040c95amov eax, esi
    0040c95cand eax, edi
    0040c95emov ecx, r13l
    0040c961not ecx
    0040c963mov edx, esi
    0040c965or edx, edi
    0040c967and ecx, edx
    0040c969or eax, ecx
    0040c96btest eax, 0xffffffff80000000
    0040c971je 0x40c978
    0040c973call fn_4085f0
    0040c978
    0040c978loc_40c978:
    0040c978mov rcx, [rsp+40]
    0040c97dcall fn_40c690
    0040c982mov ecx, [rip+0x4e5c0]
    0040c988lea r14, [rax+rcx-1]
    0040c98dmov rcx, [rsp+40]
    0040c992mov edx, r13l
    0040c995mov rax, [rsp+40]
    0040c99amov rax, [rax]
    0040c99dmovzx r8, [rax-12]
    0040c9a2call fn_40cf30
    0040c9a7mov eax, [rip+0x4e59b]
    0040c9adlea rcx, [rbx+rax-1]
    0040c9b2cmp r14, rcx
    0040c9b5jne 0x40c9ce
    0040c9b7mov rcx, [rsp+40]
    0040c9bccall fn_40c690
    0040c9c1mov ecx, [rip+0x4e581]
    0040c9c7lea r14, [rax+rcx-1]
    0040c9ccjmp 0x40c9d3
    0040c9ce
    0040c9celoc_40c9ce:
    0040c9celea r14, [rbx+rax-1]
    0040c9d3
    0040c9d3loc_40c9d3:
    0040c9d3mov rcx, [rsp+40]
    0040c9d8call fn_40c690
    0040c9ddmov rcx, r14
    0040c9e0add esi, [rip+0x4e562]
    0040c9e6mov esi, esi
    0040c9e8lea rdx, [rax+rsi-1]
    0040c9edmov r8l, edi
    0040c9f0call fn_405ac0
    0040c9f5
    0040c9f5loc_40c9f5:
    0040c9f5add rsp, 48
    0040c9f9pop rbx
    0040c9fapop rsi
    0040c9fbpop rdi
    0040c9fcpop r13
    0040c9fepop r14
    0040ca00ret
    0040c910
    0040ca01
    0040ca01 // align 0x10
    0040ca10
    0040ca10fn_40ca10:
    0040ca10push r14
    0040ca12push r13
    0040ca14push rdi
    0040ca15push rsi
    0040ca16push rbx
    0040ca17sub rsp, 48
    0040ca1bmov [rsp+32], rcx
    0040ca20mov [rsp+40], rdx
    0040ca25mov rbx, r8
    0040ca28mov rax, [rsp+40]
    0040ca2dtest rax, rax
    0040ca30jne 0x40ca44
    0040ca32mov rcx, [rsp+32]
    0040ca37mov rdx, rbx
    0040ca3acall fn_40c4a0
    0040ca3fjmp 0x40cb28
    0040ca44
    0040ca44loc_40ca44:
    0040ca44mov r14, rbx
    0040ca47test r14, r14
    0040ca4ajne 0x40ca60
    0040ca4cmov rcx, [rsp+32]
    0040ca51mov rdx, [rsp+40]
    0040ca56call fn_40c4a0
    0040ca5bjmp 0x40cb28
    0040ca60
    0040ca60loc_40ca60:
    0040ca60mov rcx, [rsp+32]
    0040ca65mov rcx, [rcx]
    0040ca68cmp rcx, rax
    0040ca6bjne 0x40ca7f
    0040ca6dmov rcx, [rsp+32]
    0040ca72mov rdx, rbx
    0040ca75call fn_40c910
    0040ca7ajmp 0x40cb28
    0040ca7f
    0040ca7floc_40ca7f:
    0040ca7fcmp rcx, r14
    0040ca82jne 0x40cb0c
    0040ca88mov edi, [rax-4]
    0040ca8bmov r13l, [r14-4]
    0040ca8fmov esi, edi
    0040ca91add esi, r13l
    0040ca94mov eax, edi
    0040ca96and eax, r13l
    0040ca99mov ecx, esi
    0040ca9bnot ecx
    0040ca9dmov edx, edi
    0040ca9for edx, r13l
    0040caa2and ecx, edx
    0040caa4or eax, ecx
    0040caa6test eax, 0xffffffff80000000
    0040caacje 0x40cab3
    0040caaecall fn_4085f0
    0040cab3
    0040cab3loc_40cab3:
    0040cab3movzx rax, [r14-12]
    0040cab8mov ecx, esi
    0040cabamov edx, eax
    0040cabccall fn_40bc20
    0040cac1mov rsi, rax
    0040cac4mov rcx, [rsp+40]
    0040cac9call fn_40ce10
    0040cacemov r14, rsi
    0040cad1mov edi, edi
    0040cad3mov rcx, rax
    0040cad6mov rdx, r14
    0040cad9mov r8, rdi
    0040cadccall fn_405ac0
    0040cae1mov rcx, rbx
    0040cae4call fn_40ce10
    0040cae9mov rcx, rax
    0040caeclea rdx, [r14+rdi]
    0040caf0mov r8l, r13l
    0040caf3call fn_405ac0
    0040caf8mov rcx, [rsp+32]
    0040cafdcall fn_40bd40
    0040cb02mov rax, [rsp+32]
    0040cb07mov [rax], rsi
    0040cb0ajmp 0x40cb28
    0040cb0c
    0040cb0cloc_40cb0c:
    0040cb0cmov rcx, [rsp+32]
    0040cb11mov rdx, [rsp+40]
    0040cb16call fn_40c4a0
    0040cb1bmov rcx, [rsp+32]
    0040cb20mov rdx, rbx
    0040cb23call fn_40c910
    0040cb28
    0040cb28loc_40cb28:
    0040cb28add rsp, 48
    0040cb2cpop rbx
    0040cb2dpop rsi
    0040cb2epop rdi
    0040cb2fpop r13
    0040cb31pop r14
    0040cb33ret
    0040ca10
    0040cb34
    0040cb34 // align 0x10
    0040cb40
    0040cb40fn_40cb40:
    0040cb40push r14
    0040cb42push r13
    0040cb44push rdi
    0040cb45push rsi
    0040cb46push rbx
    0040cb47sub rsp, 64
    0040cb4bmov [rsp+40], rcx
    0040cb50mov ebx, edx
    0040cb52mov [rsp+48], r8
    0040cb57xor esi, esi
    0040cb59xor eax, eax
    0040cb5bmov ecx, ebx
    0040cb5dsub ecx, 1
    0040cb60mov edx, eax
    0040cb62cmp edx, ecx
    0040cb64mov [rsp+60], edx
    0040cb68jg 0x40cba0
    0040cb6asub ecx, eax
    0040cb6cadd ecx, 1
    0040cb6f
    0040cb6floc_40cb6f:
    0040cb6fmov eax, [rsp+60]
    0040cb73movsxd rax, eax
    0040cb76mov rdx, [rsp+48]
    0040cb7bmov rax, [rdx+8*rax]
    0040cb7ftest rax, rax
    0040cb82je 0x40cb8e
    0040cb84movzx rsi, [rax-12]
    0040cb89test si, si
    0040cb8cjne 0x40cba0
    0040cb8e
    0040cb8eloc_40cb8e:
    0040cb8emov eax, [rsp+60]
    0040cb92add eax, 1
    0040cb95mov [rsp+60], eax
    0040cb99sub ecx, 1
    0040cb9ctest ecx, ecx
    0040cb9ejne 0x40cb6f
    0040cba0
    0040cba0loc_40cba0:
    0040cba0nop
    0040cba1xor r13, r13
    0040cba4xor r14, r14
    0040cba7xor eax, eax
    0040cba9mov edi, ebx
    0040cbabsub edi, 1
    0040cbaemov ecx, eax
    0040cbb0cmp ecx, edi
    0040cbb2mov [rsp+60], ecx
    0040cbb6jg 0x40cc06
    0040cbb8sub edi, eax
    0040cbbaadd edi, 1
    0040cbbd
    0040cbbdloc_40cbbd:
    0040cbbdmov eax, [rsp+60]
    0040cbc1movsxd rax, eax
    0040cbc4mov rcx, [rsp+48]
    0040cbc9mov rax, [rcx+8*rax]
    0040cbcdtest rax, rax
    0040cbd0je 0x40cbf4
    0040cbd2mov rcx, [rsp+40]
    0040cbd7cmp rax, [rcx]
    0040cbdajne 0x40cbe6
    0040cbdcmov ecx, [rsp+60]
    0040cbe0test ecx, ecx
    0040cbe2sete r13b
    0040cbe6
    0040cbe6loc_40cbe6:
    0040cbe6add r14l, [rax-4]
    0040cbeatest r14l, r14l
    0040cbedjge 0x40cbf4
    0040cbefcall fn_4085f0
    0040cbf4
    0040cbf4loc_40cbf4:
    0040cbf4mov eax, [rsp+60]
    0040cbf8add eax, 1
    0040cbfbmov [rsp+60], eax
    0040cbffsub edi, 1
    0040cc02test edi, edi
    0040cc04jne 0x40cbbd
    0040cc06
    0040cc06loc_40cc06:
    0040cc06nop
    0040cc07test r13b, r13b
    0040cc0aje 0x40cc36
    0040cc0cmov rax, [rsp+40]
    0040cc11mov rax, [rax]
    0040cc14mov edi, [rax-4]
    0040cc17mov rcx, [rsp+40]
    0040cc1cmov edx, r14l
    0040cc1fmov r8l, esi
    0040cc22call fn_40cf30
    0040cc27mov rax, [rsp+40]
    0040cc2cmov rsi, [rax]
    0040cc2fmov eax, 1
    0040cc34jmp 0x40cc47
    0040cc36
    0040cc36loc_40cc36:
    0040cc36mov ecx, r14l
    0040cc39mov edx, esi
    0040cc3bcall fn_40bc20
    0040cc40mov rsi, rax
    0040cc43xor eax, eax
    0040cc45xor edi, edi
    0040cc47
    0040cc47loc_40cc47:
    0040cc47mov r14l, ebx
    0040cc4asub r14l, 1
    0040cc4emov ecx, eax
    0040cc50cmp ecx, r14l
    0040cc53mov [rsp+60], ecx
    0040cc57jg 0x40cca2
    0040cc59sub r14l, eax
    0040cc5cadd r14l, 1
    0040cc60
    0040cc60loc_40cc60:
    0040cc60mov eax, [rsp+60]
    0040cc64movsxd rax, eax
    0040cc67mov rcx, [rsp+48]
    0040cc6cmov rax, [rcx+8*rax]
    0040cc70test rax, rax
    0040cc73je 0x40cc8e
    0040cc75mov rbx, rax
    0040cc78mov rcx, rax
    0040cc7bmovsxd rax, edi
    0040cc7elea rdx, [rsi+rax]
    0040cc82movsxd r8, [rbx-4]
    0040cc86call fn_405ac0
    0040cc8badd edi, [rbx-4]
    0040cc8e
    0040cc8eloc_40cc8e:
    0040cc8emov eax, [rsp+60]
    0040cc92add eax, 1
    0040cc95mov [rsp+60], eax
    0040cc99sub r14l, 1
    0040cc9dtest r14l, r14l
    0040cca0jne 0x40cc60
    0040cca2
    0040cca2loc_40cca2:
    0040cca2nop
    0040cca3test r13b, r13b
    0040cca6jne 0x40ccc5
    0040cca8mov rax, [rsp+40]
    0040ccadcmp [rax], 0
    0040ccb1je 0x40ccbd
    0040ccb3mov rcx, [rsp+40]
    0040ccb8call fn_40bd40
    0040ccbd
    0040ccbdloc_40ccbd:
    0040ccbdmov rax, [rsp+40]
    0040ccc2mov [rax], rsi
    0040ccc5
    0040ccc5loc_40ccc5:
    0040ccc5add rsp, 64
    0040ccc9pop rbx
    0040cccapop rsi
    0040cccbpop rdi
    0040ccccpop r13
    0040cccepop r14
    0040ccd0ret
    0040cb40
    0040ccd1
    0040ccd1 // align 0x10
    0040cce0
    0040cce0fn_40cce0:
    0040cce0push rbp
    0040cce1push rbx
    0040cce2sub rsp, 40
    0040cce6mov rbp, rsp
    0040cce9mov [rbp+80], r8
    0040ccedmov [rbp+88], r9
    0040ccf1mov [rbp+64], rcx
    0040ccf5mov [rbp+72], edx
    0040ccf8lea rbx, [rbp+80]
    0040ccfcmov rcx, [rbp+64]
    0040cd00mov edx, [rbp+72]
    0040cd03mov r8, rbx
    0040cd06call fn_40cb40
    0040cd0blea rsp, [rbp+40]
    0040cd0fpop rbx
    0040cd10pop rbp
    0040cd11ret
    0040cce0
    0040cd12
    0040cd12 // align 0x10
    0040cd20
    0040cd20fn_40cd20:
    0040cd20push r14
    0040cd22push r13
    0040cd24push rdi
    0040cd25push rsi
    0040cd26push rbx
    0040cd27sub rsp, 32
    0040cd2bmov rbx, rdx
    0040cd2emov rax, rcx
    0040cd31mov rdx, rbx
    0040cd34cmp rax, rdx
    0040cd37jne 0x40cd3d
    0040cd39xor eax, eax
    0040cd3bjmp 0x40cdb3
    0040cd3d
    0040cd3dloc_40cd3d:
    0040cd3dtest rax, rax
    0040cd40jne 0x40cd49
    0040cd42mov eax, [rdx-4]
    0040cd45neg eax
    0040cd47jmp 0x40cdb3
    0040cd49
    0040cd49loc_40cd49:
    0040cd49test rdx, rdx
    0040cd4cjne 0x40cd53
    0040cd4emov eax, [rax-4]
    0040cd51jmp 0x40cdb3
    0040cd53
    0040cd53loc_40cd53:
    0040cd53mov edi, [rax-4]
    0040cd56mov r13l, [rdx-4]
    0040cd5amov esi, edi
    0040cd5ccmp esi, r13l
    0040cd5fjle 0x40cd64
    0040cd61mov esi, r13l
    0040cd64
    0040cd64loc_40cd64:
    0040cd64call fn_40ce10
    0040cd69mov r14, rax
    0040cd6cmov rcx, rbx
    0040cd6fcall fn_40ce10
    0040cd74mov rcx, rax
    0040cd77test esi, esi
    0040cd79jle 0x40cdad
    0040cd7b
    0040cd7bloc_40cd7b:
    0040cd7bmovzx rax, [r14]
    0040cd7fmovzx rdx, [rcx]
    0040cd83sub eax, edx
    0040cd85test eax, eax
    0040cd87jne 0x40cdb3
    0040cd89cmp esi, 1
    0040cd8cje 0x40cdad
    0040cd8emovzx rax, [r14+1]
    0040cd93movzx rdx, [rcx+1]
    0040cd98sub eax, edx
    0040cd9atest eax, eax
    0040cd9cjne 0x40cdb3
    0040cd9eadd r14, 2
    0040cda2add rcx, 2
    0040cda6sub esi, 2
    0040cda9test esi, esi
    0040cdabjg 0x40cd7b
    0040cdad
    0040cdadloc_40cdad:
    0040cdadnop
    0040cdaemov eax, edi
    0040cdb0sub eax, r13l
    0040cdb3
    0040cdb3loc_40cdb3:
    0040cdb3add rsp, 32
    0040cdb7pop rbx
    0040cdb8pop rsi
    0040cdb9pop rdi
    0040cdbapop r13
    0040cdbcpop r14
    0040cdberet
    0040cd20