File trigona_be6dfedd91e1ebc81d58a61b05b0ef93322425b247636a0f7f5c3eeebbc52edd.exe
Function:
Loading..
00408200
00408200fn_408200:
00408200push rbp
00408201sub rsp, 32
00408205mov rbp, rsp
00408208lea rcx, [rdx+72]
0040820ccall fn_40bd40
00408211lea rsp, [rbp+32]
00408215pop rbp
00408216ret
00408200
00408200fn_408200:
00408200push rbp
00408201sub rsp, 32
00408205mov rbp, rsp
00408208lea rcx, [rdx+72]
0040820ccall fn_40bd40
00408211lea rsp, [rbp+32]
00408215pop rbp
00408216ret
00408200
00408217
00408217 // align 0x10
00408217 // align 0x10
00408220
00408220fn_408220:
00408220push rsi
00408221push rbx
00408222sub rsp, 40
00408226mov rbx, rcx
00408229movzx rax, [rbx+10]
0040822etest ax, 1
00408233je 0x40823f
00408235mov rcx, rbx
00408238mov dl, 13
0040823acall fn_407e20
0040823f
0040823floc_40823f:
0040823fmov rcx, rbx
00408242mov dl, 10
00408244call fn_407e20
00408249mov rsi, rax
0040824cmov rcx, rbx
0040824fcall fn_406920
00408254mov rax, rsi
00408257add rsp, 40
0040825bpop rbx
0040825cpop rsi
0040825dret
00408220
00408220fn_408220:
00408220push rsi
00408221push rbx
00408222sub rsp, 40
00408226mov rbx, rcx
00408229movzx rax, [rbx+10]
0040822etest ax, 1
00408233je 0x40823f
00408235mov rcx, rbx
00408238mov dl, 13
0040823acall fn_407e20
0040823f
0040823floc_40823f:
0040823fmov rcx, rbx
00408242mov dl, 10
00408244call fn_407e20
00408249mov rsi, rax
0040824cmov rcx, rbx
0040824fcall fn_406920
00408254mov rax, rsi
00408257add rsp, 40
0040825bpop rbx
0040825cpop rsi
0040825dret
00408220
0040825e
0040825e // align 0x10
0040825e // align 0x10
00408260
00408260fn_408260:
00408260push rbp
00408261sub rsp, 16
00408265mov rbp, rsp
00408268mov [rbp+12], ecx
0040826bldmxcsr [rbp+12]
0040826flea rsp, [rbp+16]
00408273pop rbp
00408274ret
00408260
00408260fn_408260:
00408260push rbp
00408261sub rsp, 16
00408265mov rbp, rsp
00408268mov [rbp+12], ecx
0040826bldmxcsr [rbp+12]
0040826flea rsp, [rbp+16]
00408273pop rbp
00408274ret
00408260
00408275
00408275 // align 0x10
00408275 // align 0x10
00408280
00408280fn_408280:
00408280push rbp
00408281sub rsp, 16
00408285mov rbp, rsp
00408288movsd_xmm [rbp+40], x1
0040828dmov [rbp+48], r8
00408291mov [rbp+56], r9
00408295mov rax, [rbp+40]
00408299and rax, 0xfffffffff8000000
004082a0mov [rbp+8], rax
004082a4movsd_xmm x1, [rbp+40]
004082a9subsd x1, [rbp+8]
004082aecmp [rbp+56], 0
004082b3jne 0x4082ca
004082b5movsd_xmm x0, [rbp+8]
004082bamulsd x0, [rbp+48]
004082bfmulsd x1, [rbp+48]
004082c4addsd x0, x1
004082c8jmp 0x4082f8
004082ca
004082caloc_4082ca:
004082camovapd x0, x1
004082cemulsd x0, [rbp+56]
004082d3movsd_xmm x2, [rbp+8]
004082d8mulsd x2, [rbp+56]
004082ddaddsd x0, x2
004082e1mulsd x1, [rbp+48]
004082e6addsd x0, x1
004082eamovsd_xmm x1, [rbp+8]
004082efmulsd x1, [rbp+48]
004082f4addsd x0, x1
004082f8
004082f8loc_4082f8:
004082f8lea rsp, [rbp+16]
004082fcpop rbp
004082fdret
00408280
00408280fn_408280:
00408280push rbp
00408281sub rsp, 16
00408285mov rbp, rsp
00408288movsd_xmm [rbp+40], x1
0040828dmov [rbp+48], r8
00408291mov [rbp+56], r9
00408295mov rax, [rbp+40]
00408299and rax, 0xfffffffff8000000
004082a0mov [rbp+8], rax
004082a4movsd_xmm x1, [rbp+40]
004082a9subsd x1, [rbp+8]
004082aecmp [rbp+56], 0
004082b3jne 0x4082ca
004082b5movsd_xmm x0, [rbp+8]
004082bamulsd x0, [rbp+48]
004082bfmulsd x1, [rbp+48]
004082c4addsd x0, x1
004082c8jmp 0x4082f8
004082ca
004082caloc_4082ca:
004082camovapd x0, x1
004082cemulsd x0, [rbp+56]
004082d3movsd_xmm x2, [rbp+8]
004082d8mulsd x2, [rbp+56]
004082ddaddsd x0, x2
004082e1mulsd x1, [rbp+48]
004082e6addsd x0, x1
004082eamovsd_xmm x1, [rbp+8]
004082efmulsd x1, [rbp+48]
004082f4addsd x0, x1
004082f8
004082f8loc_4082f8:
004082f8lea rsp, [rbp+16]
004082fcpop rbp
004082fdret
00408280
004082fe
004082fe // align 0x10
004082fe // align 0x10
00408300
00408300fn_408300:
00408300push rbp
00408301push rdi
00408302push rsi
00408303push rbx
00408304sub rsp, 56
00408308mov rbp, rsp
0040830bmovdqa [rbp+32], x6
00408310movapd x6, x0
00408314mov ebx, edx
00408316mov ecx, 2048
0040831bmov edx, 2048
00408320call fn_405fc0
00408325mov edi, eax
00408327test ebx, ebx
00408329jle 0x408405
0040832fcmp ebx, 632
00408335jl 0x408350
00408337mov ecx, 8
0040833cmov dl, 1
0040833ecall fn_405ee0
00408343movsd_xmm x6, [rip+453]
0040834bjmp 0x4084fe
00408350
00408350loc_408350:
00408350mov esi, ebx
00408352and esi, 31
00408355test esi, esi
00408357je 0x40838b
00408359movsxd rsi, esi
0040835cmov rcx, rbp
0040835fmovapd x1, x6
00408363lea rax, [rip+0x51cd6]
0040836amov rdx, rsi
0040836dadd rdx, rdx
00408370mov r8, [rax+8*rdx]
00408374lea rax, [rip+0x51ccd]
0040837badd rsi, rsi
0040837emov r9, [rax+8*rsi]
00408382call fn_408280
00408387movapd x6, x0
0040838b
0040838bloc_40838b:
0040838bshr ebx, 5
0040838etest ebx, ebx
00408390je 0x4084e4
00408396mov esi, ebx
00408398and esi, 7
0040839btest esi, esi
0040839dje 0x4083d1
0040839fmovsxd rsi, esi
004083a2mov rcx, rbp
004083a5movapd x1, x6
004083a9lea rax, [rip+0x52090]
004083b0mov rdx, rsi
004083b3add rdx, rdx
004083b6mov r8, [rax+8*rdx]
004083balea rax, [rip+0x52087]
004083c1add rsi, rsi
004083c4mov r9, [rax+8*rsi]
004083c8call fn_408280
004083cdmovapd x6, x0
004083d1
004083d1loc_4083d1:
004083d1mov esi, ebx
004083d3shr esi, 3
004083d6test esi, esi
004083d8jle 0x4083ff
004083da
004083daloc_4083da:
004083damov rcx, rbp
004083ddmovapd x1, x6
004083e1mov r8, [rip+0x52158]
004083e8mov r9, [rip+0x52159]
004083efcall fn_408280
004083f4movapd x6, x0
004083f8sub esi, 1
004083fbtest esi, esi
004083fdjg 0x4083da
004083ff
004083ffloc_4083ff:
004083ffnop
00408400jmp 0x4084e4
00408405
00408405loc_408405:
00408405test ebx, ebx
00408407jge 0x4084e4
0040840dneg ebx
0040840fcmp ebx, 632
00408415jl 0x408430
00408417mov ecx, 16
0040841cmov dl, 1
0040841ecall fn_405ee0
00408423movsd_xmm x6, [rip+237]
0040842bjmp 0x4084fe
00408430
00408430loc_408430:
00408430mov esi, ebx
00408432and esi, 31
00408435test esi, esi
00408437je 0x40846b
00408439movsxd rsi, esi
0040843cmov rcx, rbp
0040843fmovapd x1, x6
00408443lea rax, [rip+0x51df6]
0040844amov rdx, rsi
0040844dadd rdx, rdx
00408450mov r8, [rax+8*rdx]
00408454lea rax, [rip+0x51ded]
0040845badd rsi, rsi
0040845emov r9, [rax+8*rsi]
00408462call fn_408280
00408467movapd x6, x0
0040846b
0040846bloc_40846b:
0040846bshr ebx, 5
0040846etest ebx, ebx
00408470je 0x4084e4
00408472mov esi, ebx
00408474and esi, 7
00408477test esi, esi
00408479je 0x4084ad
0040847bmovsxd rsi, esi
0040847emov rcx, rbp
00408481movapd x1, x6
00408485lea rax, [rip+0x52034]
0040848cmov rdx, rsi
0040848fadd rdx, rdx
00408492mov r8, [rax+8*rdx]
00408496lea rax, [rip+0x5202b]
0040849dadd rsi, rsi
004084a0mov r9, [rax+8*rsi]
004084a4call fn_408280
004084a9movapd x6, x0
004084ad
004084adloc_4084ad:
004084admov esi, ebx
004084afshr esi, 3
004084b2test esi, esi
004084b4jle 0x4084e3
004084b6
004084b6loc_4084b6:
004084b6mov rcx, rbp
004084b9movapd x1, x6
004084bdmov r8, [rip+0x5208c]
004084c4mov r9, [rip+0x5208d]
004084cbcall fn_408280
004084d0movapd x6, x0
004084d4mulsd x6, [rip+0x52084]
004084dcsub esi, 1
004084dftest esi, esi
004084e1jg 0x4084b6
004084e3
004084e3loc_4084e3:
004084e3nop
004084e4
004084e4loc_4084e4:
004084e4call fn_406080
004084e9mov ecx, eax
004084eband ecx, -2049
004084f1and edi, 2048
004084f7or ecx, edi
004084f9call fn_408260
004084fe
004084feloc_4084fe:
004084femovapd x0, x6
00408502movdqa x6, [rbp+32]
00408507lea rsp, [rbp+56]
0040850bpop rbx
0040850cpop rsi
0040850dpop rdi
0040850epop rbp
0040850fret
00408300
00408300fn_408300:
00408300push rbp
00408301push rdi
00408302push rsi
00408303push rbx
00408304sub rsp, 56
00408308mov rbp, rsp
0040830bmovdqa [rbp+32], x6
00408310movapd x6, x0
00408314mov ebx, edx
00408316mov ecx, 2048
0040831bmov edx, 2048
00408320call fn_405fc0
00408325mov edi, eax
00408327test ebx, ebx
00408329jle 0x408405
0040832fcmp ebx, 632
00408335jl 0x408350
00408337mov ecx, 8
0040833cmov dl, 1
0040833ecall fn_405ee0
00408343movsd_xmm x6, [rip+453]
0040834bjmp 0x4084fe
00408350
00408350loc_408350:
00408350mov esi, ebx
00408352and esi, 31
00408355test esi, esi
00408357je 0x40838b
00408359movsxd rsi, esi
0040835cmov rcx, rbp
0040835fmovapd x1, x6
00408363lea rax, [rip+0x51cd6]
0040836amov rdx, rsi
0040836dadd rdx, rdx
00408370mov r8, [rax+8*rdx]
00408374lea rax, [rip+0x51ccd]
0040837badd rsi, rsi
0040837emov r9, [rax+8*rsi]
00408382call fn_408280
00408387movapd x6, x0
0040838b
0040838bloc_40838b:
0040838bshr ebx, 5
0040838etest ebx, ebx
00408390je 0x4084e4
00408396mov esi, ebx
00408398and esi, 7
0040839btest esi, esi
0040839dje 0x4083d1
0040839fmovsxd rsi, esi
004083a2mov rcx, rbp
004083a5movapd x1, x6
004083a9lea rax, [rip+0x52090]
004083b0mov rdx, rsi
004083b3add rdx, rdx
004083b6mov r8, [rax+8*rdx]
004083balea rax, [rip+0x52087]
004083c1add rsi, rsi
004083c4mov r9, [rax+8*rsi]
004083c8call fn_408280
004083cdmovapd x6, x0
004083d1
004083d1loc_4083d1:
004083d1mov esi, ebx
004083d3shr esi, 3
004083d6test esi, esi
004083d8jle 0x4083ff
004083da
004083daloc_4083da:
004083damov rcx, rbp
004083ddmovapd x1, x6
004083e1mov r8, [rip+0x52158]
004083e8mov r9, [rip+0x52159]
004083efcall fn_408280
004083f4movapd x6, x0
004083f8sub esi, 1
004083fbtest esi, esi
004083fdjg 0x4083da
004083ff
004083ffloc_4083ff:
004083ffnop
00408400jmp 0x4084e4
00408405
00408405loc_408405:
00408405test ebx, ebx
00408407jge 0x4084e4
0040840dneg ebx
0040840fcmp ebx, 632
00408415jl 0x408430
00408417mov ecx, 16
0040841cmov dl, 1
0040841ecall fn_405ee0
00408423movsd_xmm x6, [rip+237]
0040842bjmp 0x4084fe
00408430
00408430loc_408430:
00408430mov esi, ebx
00408432and esi, 31
00408435test esi, esi
00408437je 0x40846b
00408439movsxd rsi, esi
0040843cmov rcx, rbp
0040843fmovapd x1, x6
00408443lea rax, [rip+0x51df6]
0040844amov rdx, rsi
0040844dadd rdx, rdx
00408450mov r8, [rax+8*rdx]
00408454lea rax, [rip+0x51ded]
0040845badd rsi, rsi
0040845emov r9, [rax+8*rsi]
00408462call fn_408280
00408467movapd x6, x0
0040846b
0040846bloc_40846b:
0040846bshr ebx, 5
0040846etest ebx, ebx
00408470je 0x4084e4
00408472mov esi, ebx
00408474and esi, 7
00408477test esi, esi
00408479je 0x4084ad
0040847bmovsxd rsi, esi
0040847emov rcx, rbp
00408481movapd x1, x6
00408485lea rax, [rip+0x52034]
0040848cmov rdx, rsi
0040848fadd rdx, rdx
00408492mov r8, [rax+8*rdx]
00408496lea rax, [rip+0x5202b]
0040849dadd rsi, rsi
004084a0mov r9, [rax+8*rsi]
004084a4call fn_408280
004084a9movapd x6, x0
004084ad
004084adloc_4084ad:
004084admov esi, ebx
004084afshr esi, 3
004084b2test esi, esi
004084b4jle 0x4084e3
004084b6
004084b6loc_4084b6:
004084b6mov rcx, rbp
004084b9movapd x1, x6
004084bdmov r8, [rip+0x5208c]
004084c4mov r9, [rip+0x5208d]
004084cbcall fn_408280
004084d0movapd x6, x0
004084d4mulsd x6, [rip+0x52084]
004084dcsub esi, 1
004084dftest esi, esi
004084e1jg 0x4084b6
004084e3
004084e3loc_4084e3:
004084e3nop
004084e4
004084e4loc_4084e4:
004084e4call fn_406080
004084e9mov ecx, eax
004084eband ecx, -2049
004084f1and edi, 2048
004084f7or ecx, edi
004084f9call fn_408260
004084fe
004084feloc_4084fe:
004084femovapd x0, x6
00408502movdqa x6, [rbp+32]
00408507lea rsp, [rbp+56]
0040850bpop rbx
0040850cpop rsi
0040850dpop rdi
0040850epop rbp
0040850fret
00408300
00408510
00408510 00 00 00 00 00 00 f0 7f 00 00 00 00 00 00 00 00 ................
00408510 00 00 00 00 00 00 f0 7f 00 00 00 00 00 00 00 00 ................
00408520
00408520fn_408520:
00408520mov r10, rbx
00408523mov r9, rcx
00408526mov eax, edx
00408528mov ecx, r8l
0040852bcpuid
0040852dmov [r9], eax
00408530mov [r9+4], ebx
00408534mov [r9+8], ecx
00408538mov [r9+12], edx
0040853cmov rbx, r10
0040853fret
00408520
00408520fn_408520:
00408520mov r10, rbx
00408523mov r9, rcx
00408526mov eax, edx
00408528mov ecx, r8l
0040852bcpuid
0040852dmov [r9], eax
00408530mov [r9+4], ebx
00408534mov [r9+8], ecx
00408538mov [r9+12], edx
0040853cmov rbx, r10
0040853fret
00408520
00408540
00408540fn_408540:
00408540push rbx
00408541sub rsp, 32
00408545mov rbx, rcx
00408548mov rcx, rbx
0040854bcall fn_408520
00408550mov rax, rbx
00408553add rsp, 32
00408557pop rbx
00408558ret
00408540
00408540fn_408540:
00408540push rbx
00408541sub rsp, 32
00408545mov rbx, rcx
00408548mov rcx, rbx
0040854bcall fn_408520
00408550mov rax, rbx
00408553add rsp, 32
00408557pop rbx
00408558ret
00408540
00408559
00408559 // align 0x10
00408559 // align 0x10
00408560
00408560fn_408560:
00408560push r13
00408562push rdi
00408563push rsi
00408564push rbx
00408565sub rsp, 56
00408569xor ebx, ebx
0040856blea r13, [rip+0x5d426]
00408572
00408572loc_408572:
00408572lea rcx, [rsp+32]
00408577mov edx, ebx
00408579xor r8, r8
0040857ccall fn_408540
00408581mov rdi, r13
00408584lea rsi, [rsp+32]
00408589movsq [rdi], [rsi]
0040858bmovsq [rdi], [rsi]
0040858dadd ebx, 1
00408590add r13, 16
00408594cmp ebx, 8
00408597jne 0x408572
00408599nop
0040859aadd rsp, 56
0040859epop rbx
0040859fpop rsi
004085a0pop rdi
004085a1pop r13
004085a3ret
00408560
00408560fn_408560:
00408560push r13
00408562push rdi
00408563push rsi
00408564push rbx
00408565sub rsp, 56
00408569xor ebx, ebx
0040856blea r13, [rip+0x5d426]
00408572
00408572loc_408572:
00408572lea rcx, [rsp+32]
00408577mov edx, ebx
00408579xor r8, r8
0040857ccall fn_408540
00408581mov rdi, r13
00408584lea rsi, [rsp+32]
00408589movsq [rdi], [rsi]
0040858bmovsq [rdi], [rsi]
0040858dadd ebx, 1
00408590add r13, 16
00408594cmp ebx, 8
00408597jne 0x408572
00408599nop
0040859aadd rsp, 56
0040859epop rbx
0040859fpop rsi
004085a0pop rdi
004085a1pop r13
004085a3ret
00408560
004085a4
004085a4 // align 0x10
004085a4 // align 0x10
004085b0
004085b0fn_4085b0:
004085b0sub rsp, 40
004085b4mov [rip+0x5cade], 3
004085becall fn_406020
004085c3and ax, 7999
004085c8mov [rip+0x50a61], ax
004085cfadd rsp, 40
004085d3ret
004085b0
004085b0fn_4085b0:
004085b0sub rsp, 40
004085b4mov [rip+0x5cade], 3
004085becall fn_406020
004085c3and ax, 7999
004085c8mov [rip+0x50a61], ax
004085cfadd rsp, 40
004085d3ret
004085b0
004085d4
004085d4 // align 0x10
004085d4 // align 0x10
004085e8
004085e8 // align 0x10
004085e8 // align 0x10
004085f0
004085f0fn_4085f0:
004085f0push rbp
004085f1sub rsp, 32
004085f5mov rbp, rsp
004085f8mov cl, 5
004085famov rdx, [rbp+40]
004085fecall fn_4059c0
00408603lea rsp, [rbp+32]
00408607pop rbp
00408608ret
004085f0
004085f0fn_4085f0:
004085f0push rbp
004085f1sub rsp, 32
004085f5mov rbp, rsp
004085f8mov cl, 5
004085famov rdx, [rbp+40]
004085fecall fn_4059c0
00408603lea rsp, [rbp+32]
00408607pop rbp
00408608ret
004085f0
00408609
00408609 // align 0x10
00408609 // align 0x10
00408610
00408610fn_408610:
00408610push rbp
00408611push rdi
00408612push rsi
00408613push rbx
00408614sub rsp, 104
00408618mov rbp, rsp
0040861bmov [rbp+56], rcx
0040861fmov [rbp+64], rdx
00408623mov [rbp+88], 0
0040862bnop
0040862clea rcx, [rbp+88]
00408630mov rdx, [rbp+56]
00408634call fn_4145c0
00408639mov rcx, [rbp+88]
0040863dcall fn_40d710
00408642mov rbx, rax
00408645mov rcx, [rbp+88]
00408649call fn_40c560
0040864emov esi, eax
00408650mov rcx, [rbp+64]
00408654call fn_40d710
00408659mov rdi, rax
0040865cmov rcx, [rbp+64]
00408660call fn_40c560
00408665mov ecx, [rip+0x5d3b5]
0040866bmov edx, 1
00408670mov r8, rbx
00408673mov r9l, esi
00408676mov [rsp+32], rdi
0040867bmov [rsp+40], eax
0040867fcall CompareStringW
00408684cmp eax, 2
00408687sete al
0040868amov [rbp+79], al
0040868dnop
0040868elea rcx, [rbp+88]
00408692call fn_40bcf0
00408697movzx rax, [rbp+79]
0040869clea rsp, [rbp+104]
004086a0pop rbx
004086a1pop rsi
004086a2pop rdi
004086a3pop rbp
004086a4ret
00408610
00408610fn_408610:
00408610push rbp
00408611push rdi
00408612push rsi
00408613push rbx
00408614sub rsp, 104
00408618mov rbp, rsp
0040861bmov [rbp+56], rcx
0040861fmov [rbp+64], rdx
00408623mov [rbp+88], 0
0040862bnop
0040862clea rcx, [rbp+88]
00408630mov rdx, [rbp+56]
00408634call fn_4145c0
00408639mov rcx, [rbp+88]
0040863dcall fn_40d710
00408642mov rbx, rax
00408645mov rcx, [rbp+88]
00408649call fn_40c560
0040864emov esi, eax
00408650mov rcx, [rbp+64]
00408654call fn_40d710
00408659mov rdi, rax
0040865cmov rcx, [rbp+64]
00408660call fn_40c560
00408665mov ecx, [rip+0x5d3b5]
0040866bmov edx, 1
00408670mov r8, rbx
00408673mov r9l, esi
00408676mov [rsp+32], rdi
0040867bmov [rsp+40], eax
0040867fcall CompareStringW
00408684cmp eax, 2
00408687sete al
0040868amov [rbp+79], al
0040868dnop
0040868elea rcx, [rbp+88]
00408692call fn_40bcf0
00408697movzx rax, [rbp+79]
0040869clea rsp, [rbp+104]
004086a0pop rbx
004086a1pop rsi
004086a2pop rdi
004086a3pop rbp
004086a4ret
00408610
004086a5
004086a5 48 8b c0 48 8d 04 05 00 00 00 00 H..H.......
004086a5 48 8b c0 48 8d 04 05 00 00 00 00 H..H.......
004086b0
004086b0fn_4086b0:
004086b0push rbp
004086b1sub rsp, 32
004086b5mov rbp, rsp
004086b8lea rcx, [rdx+88]
004086bccall fn_40bcf0
004086c1lea rsp, [rbp+32]
004086c5pop rbp
004086c6ret
004086b0
004086b0fn_4086b0:
004086b0push rbp
004086b1sub rsp, 32
004086b5mov rbp, rsp
004086b8lea rcx, [rdx+88]
004086bccall fn_40bcf0
004086c1lea rsp, [rbp+32]
004086c5pop rbp
004086c6ret
004086b0
004086c7
004086c7 // align 0x10
004086c7 // align 0x10
004086d0
004086d0fn_4086d0:
004086d0push rbp
004086d1push rsi
004086d2push rbx
004086d3sub rsp, 1072
004086damov rbp, rsp
004086ddmov rbx, rdx
004086e0mov eax, 65001
004086e5xor edx, edx
004086e7lea r8, [rcx+1]
004086ebmovzx r9, [rcx]
004086eflea rcx, [rbp+560]
004086f6mov [rsp+32], rcx
004086fbmov [rsp+40], 256
00408703mov ecx, eax
00408705call MultiByteToWideChar
0040870amov esi, eax
0040870cmov ecx, 65001
00408711xor edx, edx
00408713lea r8, [rbx+1]
00408717movzx r9, [rbx]
0040871blea rax, [rbp+48]
0040871fmov [rsp+32], rax
00408724mov [rsp+40], 256
0040872ccall MultiByteToWideChar
00408731mov ecx, [rip+0x5d2e9]
00408737mov edx, 1
0040873clea r8, [rbp+560]
00408743mov r9l, esi
00408746lea r10, [rbp+48]
0040874amov [rsp+32], r10
0040874fmov [rsp+40], eax
00408753call CompareStringW
00408758cmp eax, 2
0040875bsete al
0040875elea rsp, [rbp+1072]
00408765pop rbx
00408766pop rsi
00408767pop rbp
00408768ret
004086d0
004086d0fn_4086d0:
004086d0push rbp
004086d1push rsi
004086d2push rbx
004086d3sub rsp, 1072
004086damov rbp, rsp
004086ddmov rbx, rdx
004086e0mov eax, 65001
004086e5xor edx, edx
004086e7lea r8, [rcx+1]
004086ebmovzx r9, [rcx]
004086eflea rcx, [rbp+560]
004086f6mov [rsp+32], rcx
004086fbmov [rsp+40], 256
00408703mov ecx, eax
00408705call MultiByteToWideChar
0040870amov esi, eax
0040870cmov ecx, 65001
00408711xor edx, edx
00408713lea r8, [rbx+1]
00408717movzx r9, [rbx]
0040871blea rax, [rbp+48]
0040871fmov [rsp+32], rax
00408724mov [rsp+40], 256
0040872ccall MultiByteToWideChar
00408731mov ecx, [rip+0x5d2e9]
00408737mov edx, 1
0040873clea r8, [rbp+560]
00408743mov r9l, esi
00408746lea r10, [rbp+48]
0040874amov [rsp+32], r10
0040874fmov [rsp+40], eax
00408753call CompareStringW
00408758cmp eax, 2
0040875bsete al
0040875elea rsp, [rbp+1072]
00408765pop rbx
00408766pop rsi
00408767pop rbp
00408768ret
004086d0
00408769
00408769 // align 0x10
00408769 // align 0x10
00408770
00408770fn_408770:
00408770push rdi
00408771push rsi
00408772push rbx
00408773sub rsp, 32
00408777mov rbx, rcx
0040877amov rsi, rdx
0040877dmovzx rdi, [rsi]
00408781mov rcx, rbx
00408784mov edx, edi
00408786call fn_40d8d0
0040878bmov rax, [rbx]
0040878ejmp 0x4087a3
00408790
00408790loc_408790:
00408790movzx cx, [rsi+rdi]
00408795cmp cl, -128
00408798jae 0x4087a8
0040879amov [rax+2*rdi-2], cx
0040879fsub rdi, 1
004087a3
004087a3loc_4087a3:
004087a3test rdi, rdi
004087a6jg 0x408790
004087a8
004087a8loc_4087a8:
004087a8nop
004087a9test rdi, rdi
004087acjle 0x4087b9
004087aemov rcx, rbx
004087b1mov rdx, rsi
004087b4call fn_4145c0
004087b9
004087b9loc_4087b9:
004087b9mov rax, rbx
004087bcadd rsp, 32
004087c0pop rbx
004087c1pop rsi
004087c2pop rdi
004087c3ret
00408770
00408770fn_408770:
00408770push rdi
00408771push rsi
00408772push rbx
00408773sub rsp, 32
00408777mov rbx, rcx
0040877amov rsi, rdx
0040877dmovzx rdi, [rsi]
00408781mov rcx, rbx
00408784mov edx, edi
00408786call fn_40d8d0
0040878bmov rax, [rbx]
0040878ejmp 0x4087a3
00408790
00408790loc_408790:
00408790movzx cx, [rsi+rdi]
00408795cmp cl, -128
00408798jae 0x4087a8
0040879amov [rax+2*rdi-2], cx
0040879fsub rdi, 1
004087a3
004087a3loc_4087a3:
004087a3test rdi, rdi
004087a6jg 0x408790
004087a8
004087a8loc_4087a8:
004087a8nop
004087a9test rdi, rdi
004087acjle 0x4087b9
004087aemov rcx, rbx
004087b1mov rdx, rsi
004087b4call fn_4145c0
004087b9
004087b9loc_4087b9:
004087b9mov rax, rbx
004087bcadd rsp, 32
004087c0pop rbx
004087c1pop rsi
004087c2pop rdi
004087c3ret
00408770
004087c4
004087c4 // align 0x10
004087c4 // align 0x10
004087d0
004087d0fn_4087d0:
004087d0push r13
004087d2push rdi
004087d3push rsi
004087d4push rbx
004087d5sub rsp, 40
004087d9mov rbx, rcx
004087dcmov rsi, rdx
004087dfmovzx rdi, [rbx]
004087e3lea r13, [rbx+1]
004087e7mov rcx, rsi
004087eacall fn_40d710
004087efmovzx cx, [r13]
004087f5movzx rdx, [rax]
004087f9jmp 0x408811
004087fb
004087fbloc_4087fb:
004087fbadd rax, 2
004087ffadd r13, 1
00408803sub dil, 1
00408807movzx cx, [r13]
0040880dmovzx rdx, [rax]
00408811
00408811loc_408811:
00408811test dil, dil
00408814jbe 0x408847
00408816test dx, dx
00408819je 0x408847
0040881bmov r8l, edx
0040881etest r8w, -128
00408824jne 0x408847
00408826mov r8l, ecx
00408829test r8w, 128
0040882fjne 0x408847
00408831mov r8l, ecx
00408834or r8w, 32
00408839mov r9l, edx
0040883cor r9w, 32
00408841cmp r8w, r9w
00408845je 0x4087fb
00408847
00408847loc_408847:
00408847test dx, dx
0040884aje 0x40886b
0040884ctest dx, -128
00408851jne 0x40885e
00408853test cx, 128
00408858jne 0x40885e
0040885axor eax, eax
0040885cjmp 0x408871
0040885e
0040885eloc_40885e:
0040885emov rcx, rbx
00408861mov rdx, rsi
00408864call fn_408610
00408869jmp 0x408871
0040886b
0040886bloc_40886b:
0040886btest dil, dil
0040886esete al
00408871
00408871loc_408871:
00408871add rsp, 40
00408875pop rbx
00408876pop rsi
00408877pop rdi
00408878pop r13
0040887aret
004087d0
004087d0fn_4087d0:
004087d0push r13
004087d2push rdi
004087d3push rsi
004087d4push rbx
004087d5sub rsp, 40
004087d9mov rbx, rcx
004087dcmov rsi, rdx
004087dfmovzx rdi, [rbx]
004087e3lea r13, [rbx+1]
004087e7mov rcx, rsi
004087eacall fn_40d710
004087efmovzx cx, [r13]
004087f5movzx rdx, [rax]
004087f9jmp 0x408811
004087fb
004087fbloc_4087fb:
004087fbadd rax, 2
004087ffadd r13, 1
00408803sub dil, 1
00408807movzx cx, [r13]
0040880dmovzx rdx, [rax]
00408811
00408811loc_408811:
00408811test dil, dil
00408814jbe 0x408847
00408816test dx, dx
00408819je 0x408847
0040881bmov r8l, edx
0040881etest r8w, -128
00408824jne 0x408847
00408826mov r8l, ecx
00408829test r8w, 128
0040882fjne 0x408847
00408831mov r8l, ecx
00408834or r8w, 32
00408839mov r9l, edx
0040883cor r9w, 32
00408841cmp r8w, r9w
00408845je 0x4087fb
00408847
00408847loc_408847:
00408847test dx, dx
0040884aje 0x40886b
0040884ctest dx, -128
00408851jne 0x40885e
00408853test cx, 128
00408858jne 0x40885e
0040885axor eax, eax
0040885cjmp 0x408871
0040885e
0040885eloc_40885e:
0040885emov rcx, rbx
00408861mov rdx, rsi
00408864call fn_408610
00408869jmp 0x408871
0040886b
0040886bloc_40886b:
0040886btest dil, dil
0040886esete al
00408871
00408871loc_408871:
00408871add rsp, 40
00408875pop rbx
00408876pop rsi
00408877pop rdi
00408878pop r13
0040887aret
004087d0
0040887b
0040887b // align 0x10
0040887b // align 0x10
00408880
00408880fn_408880:
00408880sub rsp, 40
00408884movzx rax, [rcx]
00408888cmp al, [rdx]
0040888aje 0x408893
0040888cxor eax, eax
0040888ejmp 0x40893e
00408893
00408893loc_408893:
00408893movzx r9, al
00408897shr r9l, 2
0040889blea rax, [rcx+1]
0040889flea r8, [rdx+1]
004088a3test r9l, r9l
004088a6jle 0x4088ee
004088a8
004088a8loc_4088a8:
004088a8mov r10, rax
004088abmov r11l, [r10]
004088aetest r11l, 0xffffffff80808080
004088b5jne 0x4088c3
004088b7mov r11l, [r8]
004088batest r11l, 0xffffffff80808080
004088c1je 0x4088ca
004088c3
004088c3loc_4088c3:
004088c3call fn_4086d0
004088c8jmp 0x40893e
004088ca
004088caloc_4088ca:
004088camov r10l, [r10]
004088cdxor r10l, [r8]
004088d0test r10l, 0x5f5f5f5f
004088d7je 0x4088dd
004088d9xor eax, eax
004088dbjmp 0x40893e
004088dd
004088ddloc_4088dd:
004088ddadd rax, 4
004088e1add r8, 4
004088e5sub r9l, 1
004088e9test r9l, r9l
004088ecjg 0x4088a8
004088ee
004088eeloc_4088ee:
004088eenop
004088efmovzx r9, [rcx]
004088f3and r9b, 3
004088f7movzx r9, r9b
004088fbtest r9l, r9l
004088fejle 0x40893b
00408900
00408900loc_408900:
00408900movzx r10, [rax]
00408904and r10b, 128
00408908test r10b, r10b
0040890bjne 0x408912
0040890dtest r10b, r10b
00408910je 0x408919
00408912
00408912loc_408912:
00408912call fn_4086d0
00408917jmp 0x40893e
00408919
00408919loc_408919:
00408919movzx r10, [rax]
0040891dxor r10b, [r8]
00408920test r10b, 95
00408924je 0x40892a
00408926xor eax, eax
00408928jmp 0x40893e
0040892a
0040892aloc_40892a:
0040892aadd rax, 1
0040892eadd r8, 1
00408932sub r9l, 1
00408936test r9l, r9l
00408939jg 0x408900
0040893b
0040893bloc_40893b:
0040893bnop
0040893cmov al, 1
0040893e
0040893eloc_40893e:
0040893eadd rsp, 40
00408942ret
00408880
00408880fn_408880:
00408880sub rsp, 40
00408884movzx rax, [rcx]
00408888cmp al, [rdx]
0040888aje 0x408893
0040888cxor eax, eax
0040888ejmp 0x40893e
00408893
00408893loc_408893:
00408893movzx r9, al
00408897shr r9l, 2
0040889blea rax, [rcx+1]
0040889flea r8, [rdx+1]
004088a3test r9l, r9l
004088a6jle 0x4088ee
004088a8
004088a8loc_4088a8:
004088a8mov r10, rax
004088abmov r11l, [r10]
004088aetest r11l, 0xffffffff80808080
004088b5jne 0x4088c3
004088b7mov r11l, [r8]
004088batest r11l, 0xffffffff80808080
004088c1je 0x4088ca
004088c3
004088c3loc_4088c3:
004088c3call fn_4086d0
004088c8jmp 0x40893e
004088ca
004088caloc_4088ca:
004088camov r10l, [r10]
004088cdxor r10l, [r8]
004088d0test r10l, 0x5f5f5f5f
004088d7je 0x4088dd
004088d9xor eax, eax
004088dbjmp 0x40893e
004088dd
004088ddloc_4088dd:
004088ddadd rax, 4
004088e1add r8, 4
004088e5sub r9l, 1
004088e9test r9l, r9l
004088ecjg 0x4088a8
004088ee
004088eeloc_4088ee:
004088eenop
004088efmovzx r9, [rcx]
004088f3and r9b, 3
004088f7movzx r9, r9b
004088fbtest r9l, r9l
004088fejle 0x40893b
00408900
00408900loc_408900:
00408900movzx r10, [rax]
00408904and r10b, 128
00408908test r10b, r10b
0040890bjne 0x408912
0040890dtest r10b, r10b
00408910je 0x408919
00408912
00408912loc_408912:
00408912call fn_4086d0
00408917jmp 0x40893e
00408919
00408919loc_408919:
00408919movzx r10, [rax]
0040891dxor r10b, [r8]
00408920test r10b, 95
00408924je 0x40892a
00408926xor eax, eax
00408928jmp 0x40893e
0040892a
0040892aloc_40892a:
0040892aadd rax, 1
0040892eadd r8, 1
00408932sub r9l, 1
00408936test r9l, r9l
00408939jg 0x408900
0040893b
0040893bloc_40893b:
0040893bnop
0040893cmov al, 1
0040893e
0040893eloc_40893e:
0040893eadd rsp, 40
00408942ret
00408880
00408943
00408943 // align 0x10
00408943 // align 0x10
00408954
00408954 // align 0x10
00408954 // align 0x10
00408968
00408968 // align 0x10
00408968 // align 0x10
00408970
00408970TObject.ClassName:
00408970push rbx
00408971sub rsp, 32
00408975mov rbx, rdx
00408978mov rax, rbx
0040897bmov rdx, [rcx-136]
00408982mov rcx, rax
00408985call fn_408770
0040898amov rax, rbx
0040898dadd rsp, 32
00408991pop rbx
00408992ret
00408970
00408970TObject.ClassName:
00408970push rbx
00408971sub rsp, 32
00408975mov rbx, rdx
00408978mov rax, rbx
0040897bmov rdx, [rcx-136]
00408982mov rcx, rax
00408985call fn_408770
0040898amov rax, rbx
0040898dadd rsp, 32
00408991pop rbx
00408992ret
00408970
00408993
00408993 // align 0x10
00408993 // align 0x10
004089a0
004089a0TObject.QualifiedClassName:
004089a0push rbp
004089a1sub rsp, 96
004089a5mov rbp, rsp
004089a8mov [rbp+56], rcx
004089acmov [rbp+64], rdx
004089b0mov [rbp+72], 0
004089b8mov [rbp+88], 0
004089c0nop
004089c1mov rcx, [rbp+56]
004089c5lea rdx, [rbp+88]
004089c9call TObject.UnitScope
004089cecmp [rbp+88], 0
004089d3jne 0x4089e4
004089d5mov rcx, [rbp+56]
004089d9mov rdx, [rbp+64]
004089ddcall TObject.ClassName
004089e2jmp 0x408a13
004089e4
004089e4loc_4089e4:
004089e4mov rcx, [rbp+56]
004089e8lea rdx, [rbp+72]
004089eccall TObject.ClassName
004089f1mov rcx, [rbp+64]
004089f5mov edx, 3
004089famov r8, [rbp+88]
004089felea r9, [rip+95]
00408a05mov rax, [rbp+72]
00408a09mov [rsp+32], rax
00408a0ecall fn_40dbb0
00408a13
00408a13loc_408a13:
00408a13nop
00408a14lea rcx, [rbp+72]
00408a18call fn_40bcf0
00408a1dlea rcx, [rbp+88]
00408a21call fn_40bcf0
00408a26mov rax, [rbp+64]
00408a2alea rsp, [rbp+96]
00408a2epop rbp
00408a2fret
004089a0
004089a0TObject.QualifiedClassName:
004089a0push rbp
004089a1sub rsp, 96
004089a5mov rbp, rsp
004089a8mov [rbp+56], rcx
004089acmov [rbp+64], rdx
004089b0mov [rbp+72], 0
004089b8mov [rbp+88], 0
004089c0nop
004089c1mov rcx, [rbp+56]
004089c5lea rdx, [rbp+88]
004089c9call TObject.UnitScope
004089cecmp [rbp+88], 0
004089d3jne 0x4089e4
004089d5mov rcx, [rbp+56]
004089d9mov rdx, [rbp+64]
004089ddcall TObject.ClassName
004089e2jmp 0x408a13
004089e4
004089e4loc_4089e4:
004089e4mov rcx, [rbp+56]
004089e8lea rdx, [rbp+72]
004089eccall TObject.ClassName
004089f1mov rcx, [rbp+64]
004089f5mov edx, 3
004089famov r8, [rbp+88]
004089felea r9, [rip+95]
00408a05mov rax, [rbp+72]
00408a09mov [rsp+32], rax
00408a0ecall fn_40dbb0
00408a13
00408a13loc_408a13:
00408a13nop
00408a14lea rcx, [rbp+72]
00408a18call fn_40bcf0
00408a1dlea rcx, [rbp+88]
00408a21call fn_40bcf0
00408a26mov rax, [rbp+64]
00408a2alea rsp, [rbp+96]
00408a2epop rbp
00408a2fret
004089a0
00408a30
00408a30fn_408a30:
00408a30push rbp
00408a31push rbx
00408a32sub rsp, 40
00408a36mov rbp, rsp
00408a39mov rbx, rdx
00408a3clea rcx, [rbx+72]
00408a40call fn_40bcf0
00408a45lea rcx, [rbx+88]
00408a49call fn_40bcf0
00408a4elea rsp, [rbp+40]
00408a52pop rbx
00408a53pop rbp
00408a54ret
00408a30
00408a30fn_408a30:
00408a30push rbp
00408a31push rbx
00408a32sub rsp, 40
00408a36mov rbp, rsp
00408a39mov rbx, rdx
00408a3clea rcx, [rbx+72]
00408a40call fn_40bcf0
00408a45lea rcx, [rbx+88]
00408a49call fn_40bcf0
00408a4elea rsp, [rbp+40]
00408a52pop rbx
00408a53pop rbp
00408a54ret
00408a30
00408a55
00408a55 00 00 00 b0 04 02 00 ff ff ff ff ...........
00408a60 01 00 00 00 2e 00 00 00 cc cc cc cc cc cc cc cc ................
00408a55 00 00 00 b0 04 02 00 ff ff ff ff ...........
00408a60 01 00 00 00 2e 00 00 00 cc cc cc cc cc cc cc cc ................
00408a70
00408a70TObject.ClassNameIs:
00408a70sub rsp, 40
00408a74mov rcx, [rcx-136]
00408a7bcall fn_4087d0
00408a80add rsp, 40
00408a84ret
00408a70
00408a70TObject.ClassNameIs:
00408a70sub rsp, 40
00408a74mov rcx, [rcx-136]
00408a7bcall fn_4087d0
00408a80add rsp, 40
00408a84ret
00408a70
00408a85
00408a85 // align 0x10
00408a85 // align 0x10
00408a90
00408a90TObject.ClassParent:
00408a90mov rax, [rcx-120]
00408a94test rax, rax
00408a97je 0x408a9c
00408a99mov rax, [rax]
00408a9c
00408a9cloc_408a9c:
00408a9cret
00408a90
00408a90TObject.ClassParent:
00408a90mov rax, [rcx-120]
00408a94test rax, rax
00408a97je 0x408a9c
00408a99mov rax, [rax]
00408a9c
00408a9cloc_408a9c:
00408a9cret
00408a90
00408a9d
00408a9d // align 0x10
00408a9d // align 0x10
00408aa4
00408aa4 // align 0x10
00408aa4 // align 0x10
00408ab0
00408ab0TObject.NewInstance:
00408ab0push rbx
00408ab1sub rsp, 32
00408ab5mov rbx, rcx
00408ab8movsxd rcx, [rbx-128]
00408abccall fn_405700
00408ac1mov rcx, rbx
00408ac4mov rdx, rax
00408ac7call TObject.InitInstance
00408accadd rsp, 32
00408ad0pop rbx
00408ad1ret
00408ab0
00408ab0TObject.NewInstance:
00408ab0push rbx
00408ab1sub rsp, 32
00408ab5mov rbx, rcx
00408ab8movsxd rcx, [rbx-128]
00408abccall fn_405700
00408ac1mov rcx, rbx
00408ac4mov rdx, rax
00408ac7call TObject.InitInstance
00408accadd rsp, 32
00408ad0pop rbx
00408ad1ret
00408ab0
00408ad2
00408ad2 // align 0x10
00408ad2 // align 0x10
00408ae0
00408ae0TObject.FreeInstance:
00408ae0push rbx
00408ae1sub rsp, 32
00408ae5mov rbx, rcx
00408ae8mov rcx, rbx
00408aebcall TObject.CleanupInstance
00408af0mov rcx, rbx
00408af3call fn_405730
00408af8add rsp, 32
00408afcpop rbx
00408afdret
00408ae0
00408ae0TObject.FreeInstance:
00408ae0push rbx
00408ae1sub rsp, 32
00408ae5mov rbx, rcx
00408ae8mov rcx, rbx
00408aebcall TObject.CleanupInstance
00408af0mov rcx, rbx
00408af3call fn_405730
00408af8add rsp, 32
00408afcpop rbx
00408afdret
00408ae0
00408afe
00408afe // align 0x10
00408afe // align 0x10
00408b01
00408b01 // align 0x10
00408b01 // align 0x10
00408b11
00408b11 // align 0x10
00408b11 // align 0x10
00408b21
00408b21 // align 0x10
00408b21 // align 0x10
00408b30
00408b30TObject.Create:
00408b30push rbp
00408b31push rbx
00408b32sub rsp, 56
00408b36mov rbp, rsp
00408b39mov [rbp+40], rbp
00408b3dmov [rbp+80], rcx
00408b41mov [rbp+88], dl
00408b44cmp [rbp+88], 0
00408b48je 0x408b5c
00408b4amov rcx, [rbp+80]
00408b4emovzx rdx, [rbp+88]
00408b53call fn_409530
00408b58mov [rbp+80], rax
00408b5c
00408b5cloc_408b5c:
00408b5cnop
00408b5dcmp [rbp+88], 0
00408b61je 0x408ba0
00408b63mov rcx, [rbp+80]
00408b67call fn_409570
00408b6cmov [rbp+80], rax
00408b70jmp 0x408ba0
00408b72
00408b72 90 90 80 7d 58 00 74 20 48 83 7d 50 00 74 ...}X.t H.}P.t
00408b80 19 48 8b 4d 50 b2 81 48 8b 45 50 48 8b 18 ff 53 .H.MP..H.EPH...S
00408b90 e0 48 8b 4d 50 e8 b6 09 00 00 e8 71 24 00 00 90 .H.MP......q$...
00408ba0
00408ba0loc_408ba0:
00408ba0mov rax, [rbp+80]
00408ba4lea rsp, [rbp+56]
00408ba8pop rbx
00408ba9pop rbp
00408baaret
00408b30
00408b30TObject.Create:
00408b30push rbp
00408b31push rbx
00408b32sub rsp, 56
00408b36mov rbp, rsp
00408b39mov [rbp+40], rbp
00408b3dmov [rbp+80], rcx
00408b41mov [rbp+88], dl
00408b44cmp [rbp+88], 0
00408b48je 0x408b5c
00408b4amov rcx, [rbp+80]
00408b4emovzx rdx, [rbp+88]
00408b53call fn_409530
00408b58mov [rbp+80], rax
00408b5c
00408b5cloc_408b5c:
00408b5cnop
00408b5dcmp [rbp+88], 0
00408b61je 0x408ba0
00408b63mov rcx, [rbp+80]
00408b67call fn_409570
00408b6cmov [rbp+80], rax
00408b70jmp 0x408ba0
00408b72
00408b72 90 90 80 7d 58 00 74 20 48 83 7d 50 00 74 ...}X.t H.}P.t
00408b80 19 48 8b 4d 50 b2 81 48 8b 45 50 48 8b 18 ff 53 .H.MP..H.EPH...S
00408b90 e0 48 8b 4d 50 e8 b6 09 00 00 e8 71 24 00 00 90 .H.MP......q$...
00408ba0
00408ba0loc_408ba0:
00408ba0mov rax, [rbp+80]
00408ba4lea rsp, [rbp+56]
00408ba8pop rbx
00408ba9pop rbp
00408baaret
00408b30
00408bab
00408bab 48 8d 44 20 00 H.D .
00408bab 48 8d 44 20 00 H.D .
00408bb0
00408bb0fn_408bb0:
00408bb0sub rsp, 40
00408bb4call fn_40b050
00408bb9add rsp, 40
00408bbdret
00408bb0
00408bb0fn_408bb0:
00408bb0sub rsp, 40
00408bb4call fn_40b050
00408bb9add rsp, 40
00408bbdret
00408bb0
00408bbe
00408bbe // align 0x10
00408bbe // align 0x10
00408bc0
00408bc0TObject.Destroy:
00408bc0push rsi
00408bc1push rbx
00408bc2sub rsp, 40
00408bc6mov rbx, rcx
00408bc9mov esi, edx
00408bccmov rcx, rbx
00408bcfmov edx, esi
00408bd2call fn_4095d0
00408bd7test sil, sil
00408bdajle 0x408be4
00408bdcmov rcx, rbx
00408bdfcall fn_409550
00408be4
00408be4loc_408be4:
00408be4add rsp, 40
00408be8pop rbx
00408be9pop rsi
00408bearet
00408bc0
00408bc0TObject.Destroy:
00408bc0push rsi
00408bc1push rbx
00408bc2sub rsp, 40
00408bc6mov rbx, rcx
00408bc9mov esi, edx
00408bccmov rcx, rbx
00408bcfmov edx, esi
00408bd2call fn_4095d0
00408bd7test sil, sil
00408bdajle 0x408be4
00408bdcmov rcx, rbx
00408bdfcall fn_409550
00408be4
00408be4loc_408be4:
00408be4add rsp, 40
00408be8pop rbx
00408be9pop rsi
00408bearet
00408bc0
00408beb
00408beb // align 0x10
00408beb // align 0x10
00408bf0
00408bf0TObject.Free:
00408bf0push rbx
00408bf1sub rsp, 32
00408bf5test rcx, rcx
00408bf8je 0x408c08
00408bfamov rax, rcx
00408bfdmov dl, 1
00408bffmov rbx, [rcx]
00408c02mov rcx, rax
00408c05call [rbx-32]
00408c08
00408c08loc_408c08:
00408c08add rsp, 32
00408c0cpop rbx
00408c0dret
00408bf0
00408bf0TObject.Free:
00408bf0push rbx
00408bf1sub rsp, 32
00408bf5test rcx, rcx
00408bf8je 0x408c08
00408bfamov rax, rcx
00408bfdmov dl, 1
00408bffmov rbx, [rcx]
00408c02mov rcx, rax
00408c05call [rbx-32]
00408c08
00408c08loc_408c08:
00408c08add rsp, 32
00408c0cpop rbx
00408c0dret
00408bf0
00408c0e
00408c0e // align 0x10
00408c0e // align 0x10
00408c10
00408c10TObject.DisposeOf:
00408c10sub rsp, 40
00408c14call TObject.Free
00408c19add rsp, 40
00408c1dret
00408c10
00408c10TObject.DisposeOf:
00408c10sub rsp, 40
00408c14call TObject.Free
00408c19add rsp, 40
00408c1dret
00408c10
00408c1e
00408c1e // align 0x10
00408c1e // align 0x10
00408c28
00408c28 // align 0x10
00408c28 // align 0x10
00408c30
00408c30fn_408c30:
00408c30push rbp
00408c31push rsi
00408c32push rbx
00408c33sub rsp, 32
00408c37mov rbp, rsp
00408c3amov rbx, rcx
00408c3dmov rax, rdx
00408c40
00408c40loc_408c40:
00408c40mov rsi, [rax-176]
00408c47mov rax, [rax-120]
00408c4btest rax, rax
00408c4eje 0x408c53
00408c50mov rax, [rax]
00408c53
00408c53loc_408c53:
00408c53test rax, rax
00408c56je 0x408c6d
00408c58test rsi, rsi
00408c5bje 0x408c40
00408c5dcmp [rsi], 22
00408c60jne 0x408c40
00408c62mov rcx, rbx
00408c65mov rdx, rax
00408c68call fn_408c30
00408c6d
00408c6dloc_408c6d:
00408c6dnop
00408c6etest rsi, rsi
00408c71je 0x408cb2
00408c73cmp [rsi], 22
00408c76jne 0x408cb2
00408c78mov rax, rsi
00408c7bmovzx rcx, [rax+1]
00408c80lea rax, [rax+rcx]
00408c84mov rcx, rax
00408c87mov eax, [rcx+6]
00408c8ashl eax, 4
00408c8dmov eax, eax
00408c8flea rax, [rcx+rax+10]
00408c94cmp [rax], 0
00408c97jbe 0x408cb2
00408c99mov rax, [rax+1]
00408c9dtest rax, 1
00408ca4je 0x408cb2
00408ca6mov rcx, [rbx+72]
00408caamov rdx, rsi
00408cadcall fn_40f900
00408cb2
00408cb2loc_408cb2:
00408cb2lea rsp, [rbp+32]
00408cb6pop rbx
00408cb7pop rsi
00408cb8pop rbp
00408cb9ret
00408c30
00408c30fn_408c30:
00408c30push rbp
00408c31push rsi
00408c32push rbx
00408c33sub rsp, 32
00408c37mov rbp, rsp
00408c3amov rbx, rcx
00408c3dmov rax, rdx
00408c40
00408c40loc_408c40:
00408c40mov rsi, [rax-176]
00408c47mov rax, [rax-120]
00408c4btest rax, rax
00408c4eje 0x408c53
00408c50mov rax, [rax]
00408c53
00408c53loc_408c53:
00408c53test rax, rax
00408c56je 0x408c6d
00408c58test rsi, rsi
00408c5bje 0x408c40
00408c5dcmp [rsi], 22
00408c60jne 0x408c40
00408c62mov rcx, rbx
00408c65mov rdx, rax
00408c68call fn_408c30
00408c6d
00408c6dloc_408c6d:
00408c6dnop
00408c6etest rsi, rsi
00408c71je 0x408cb2
00408c73cmp [rsi], 22
00408c76jne 0x408cb2
00408c78mov rax, rsi
00408c7bmovzx rcx, [rax+1]
00408c80lea rax, [rax+rcx]
00408c84mov rcx, rax
00408c87mov eax, [rcx+6]
00408c8ashl eax, 4
00408c8dmov eax, eax
00408c8flea rax, [rcx+rax+10]
00408c94cmp [rax], 0
00408c97jbe 0x408cb2
00408c99mov rax, [rax+1]
00408c9dtest rax, 1
00408ca4je 0x408cb2
00408ca6mov rcx, [rbx+72]
00408caamov rdx, rsi
00408cadcall fn_40f900
00408cb2
00408cb2loc_408cb2:
00408cb2lea rsp, [rbp+32]
00408cb6pop rbx
00408cb7pop rsi
00408cb8pop rbp
00408cb9ret
00408c30
00408cba
00408cba // align 0x10
00408cba // align 0x10
00408cc0
00408cc0TObject.InitInstance:
00408cc0push rbp
00408cc1push rsi
00408cc2push rbx
00408cc3sub rsp, 32
00408cc7mov rbp, rsp
00408ccamov rbx, rcx
00408ccdmov [rbp+72], rdx
00408cd1mov rsi, rbx
00408cd4mov rcx, [rbp+72]
00408cd8movsxd rdx, [rsi-128]
00408cdcxor r8, r8
00408cdfcall fn_4069b0
00408ce4mov rax, [rbp+72]
00408ce8mov [rax], rsi
00408cebmov rcx, rbx
00408cee
00408ceeloc_408cee:
00408ceemov rax, [rcx-192]
00408cf5test rax, rax
00408cf8je 0x408d41
00408cfaxor r8, r8
00408cfdmov r10l, [rax]
00408d00sub r10l, 1
00408d04mov edx, r8l
00408d07cmp edx, r10l
00408d0ajg 0x408d40
00408d0csub r10l, r8l
00408d0fadd r10l, 1
00408d13
00408d13loc_408d13:
00408d13movsxd r8, edx
00408d16lea r8, [r8+4*r8]
00408d1alea r8, [rax+8*r8+8]
00408d1fmov r9, [r8+16]
00408d23test r9, r9
00408d26je 0x408d34
00408d28mov r11, [rbp+72]
00408d2cmovsxd r8, [r8+24]
00408d30mov [r11+r8], r9
00408d34
00408d34loc_408d34:
00408d34add edx, 1
00408d37sub r10l, 1
00408d3btest r10l, r10l
00408d3ejne 0x408d13
00408d40
00408d40loc_408d40:
00408d40nop
00408d41
00408d41loc_408d41:
00408d41mov rcx, [rcx-120]
00408d45test rcx, rcx
00408d48je 0x408d4d
00408d4amov rcx, [rcx]
00408d4d
00408d4dloc_408d4d:
00408d4dtest rcx, rcx
00408d50jne 0x408cee
00408d52mov rcx, rbp
00408d55mov rdx, rbx
00408d58call fn_408c30
00408d5dmov rax, [rbp+72]
00408d61lea rsp, [rbp+32]
00408d65pop rbx
00408d66pop rsi
00408d67pop rbp
00408d68ret
00408cc0
00408cc0TObject.InitInstance:
00408cc0push rbp
00408cc1push rsi
00408cc2push rbx
00408cc3sub rsp, 32
00408cc7mov rbp, rsp
00408ccamov rbx, rcx
00408ccdmov [rbp+72], rdx
00408cd1mov rsi, rbx
00408cd4mov rcx, [rbp+72]
00408cd8movsxd rdx, [rsi-128]
00408cdcxor r8, r8
00408cdfcall fn_4069b0
00408ce4mov rax, [rbp+72]
00408ce8mov [rax], rsi
00408cebmov rcx, rbx
00408cee
00408ceeloc_408cee:
00408ceemov rax, [rcx-192]
00408cf5test rax, rax
00408cf8je 0x408d41
00408cfaxor r8, r8
00408cfdmov r10l, [rax]
00408d00sub r10l, 1
00408d04mov edx, r8l
00408d07cmp edx, r10l
00408d0ajg 0x408d40
00408d0csub r10l, r8l
00408d0fadd r10l, 1
00408d13
00408d13loc_408d13:
00408d13movsxd r8, edx
00408d16lea r8, [r8+4*r8]
00408d1alea r8, [rax+8*r8+8]
00408d1fmov r9, [r8+16]
00408d23test r9, r9
00408d26je 0x408d34
00408d28mov r11, [rbp+72]
00408d2cmovsxd r8, [r8+24]
00408d30mov [r11+r8], r9
00408d34
00408d34loc_408d34:
00408d34add edx, 1
00408d37sub r10l, 1
00408d3btest r10l, r10l
00408d3ejne 0x408d13
00408d40
00408d40loc_408d40:
00408d40nop
00408d41
00408d41loc_408d41:
00408d41mov rcx, [rcx-120]
00408d45test rcx, rcx
00408d48je 0x408d4d
00408d4amov rcx, [rcx]
00408d4d
00408d4dloc_408d4d:
00408d4dtest rcx, rcx
00408d50jne 0x408cee
00408d52mov rcx, rbp
00408d55mov rdx, rbx
00408d58call fn_408c30
00408d5dmov rax, [rbp+72]
00408d61lea rsp, [rbp+32]
00408d65pop rbx
00408d66pop rsi
00408d67pop rbp
00408d68ret
00408cc0
00408d69
00408d69 // align 0x10
00408d69 // align 0x10
00408d70
00408d70TObject.CleanupInstance:
00408d70push rsi
00408d71push rbx
00408d72sub rsp, 40
00408d76mov rbx, rcx
00408d79mov rsi, rbx
00408d7cmov rcx, rsi
00408d7fcall fn_414120
00408d84mov rax, [rsi]
00408d87
00408d87loc_408d87:
00408d87mov rsi, rax
00408d8amov rax, [rsi-176]
00408d91test rax, rax
00408d94je 0x408da1
00408d96mov rcx, rbx
00408d99mov rdx, rax
00408d9ccall fn_40e630
00408da1
00408da1loc_408da1:
00408da1mov rax, [rsi-120]
00408da5test rax, rax
00408da8je 0x408dad
00408daamov rax, [rax]
00408dad
00408dadloc_408dad:
00408dadtest rax, rax
00408db0jne 0x408d87
00408db2mov rcx, rbx
00408db5call fn_4098b0
00408dbaadd rsp, 40
00408dbepop rbx
00408dbfpop rsi
00408dc0ret
00408d70
00408d70TObject.CleanupInstance:
00408d70push rsi
00408d71push rbx
00408d72sub rsp, 40
00408d76mov rbx, rcx
00408d79mov rsi, rbx
00408d7cmov rcx, rsi
00408d7fcall fn_414120
00408d84mov rax, [rsi]
00408d87
00408d87loc_408d87:
00408d87mov rsi, rax
00408d8amov rax, [rsi-176]
00408d91test rax, rax
00408d94je 0x408da1
00408d96mov rcx, rbx
00408d99mov rdx, rax
00408d9ccall fn_40e630
00408da1
00408da1loc_408da1:
00408da1mov rax, [rsi-120]
00408da5test rax, rax
00408da8je 0x408dad
00408daamov rax, [rax]
00408dad
00408dadloc_408dad:
00408dadtest rax, rax
00408db0jne 0x408d87
00408db2mov rcx, rbx
00408db5call fn_4098b0
00408dbaadd rsp, 40
00408dbepop rbx
00408dbfpop rsi
00408dc0ret
00408d70
00408dc1
00408dc1 // align 0x10
00408dc1 // align 0x10
00408dd0
00408dd0fn_408dd0:
00408dd0push rbx
00408dd1sub rsp, 32
00408dd5mov rax, 0xff00000000000000
00408ddfmov r9, rdx
00408de2and r9, rax
00408de5mov rax, r9
00408de8mov r9, 0xff00000000000000
00408df2cmp rax, r9
00408df5jne 0x408e12
00408df7mov rax, 0xffffffffffffff
00408e01and rdx, rax
00408e04mov rdx, [rcx+rdx]
00408e08mov rcx, r8
00408e0bcall fn_412540
00408e10jmp 0x408e36
00408e12
00408e12loc_408e12:
00408e12mov r9, 0xfe00000000000000
00408e1ccmp rax, r9
00408e1fjne 0x408e2e
00408e21mov rax, [rcx]
00408e24movsx rdx, dx
00408e28mov rbx, [rax+rdx]
00408e2cjmp 0x408e31
00408e2e
00408e2eloc_408e2e:
00408e2emov rbx, rdx
00408e31
00408e31loc_408e31:
00408e31mov rdx, r8
00408e34call rbx
00408e36
00408e36loc_408e36:
00408e36add rsp, 32
00408e3apop rbx
00408e3bret
00408dd0
00408dd0fn_408dd0:
00408dd0push rbx
00408dd1sub rsp, 32
00408dd5mov rax, 0xff00000000000000
00408ddfmov r9, rdx
00408de2and r9, rax
00408de5mov rax, r9
00408de8mov r9, 0xff00000000000000
00408df2cmp rax, r9
00408df5jne 0x408e12
00408df7mov rax, 0xffffffffffffff
00408e01and rdx, rax
00408e04mov rdx, [rcx+rdx]
00408e08mov rcx, r8
00408e0bcall fn_412540
00408e10jmp 0x408e36
00408e12
00408e12loc_408e12:
00408e12mov r9, 0xfe00000000000000
00408e1ccmp rax, r9
00408e1fjne 0x408e2e
00408e21mov rax, [rcx]
00408e24movsx rdx, dx
00408e28mov rbx, [rax+rdx]
00408e2cjmp 0x408e31
00408e2e
00408e2eloc_408e2e:
00408e2emov rbx, rdx
00408e31
00408e31loc_408e31:
00408e31mov rdx, r8
00408e34call rbx
00408e36
00408e36loc_408e36:
00408e36add rsp, 32
00408e3apop rbx
00408e3bret
00408dd0
00408e3c
00408e3c // align 0x10
00408e3c // align 0x10
00408e47
00408e47 // align 0x10
00408e47 // align 0x10
00408e50
00408e50TObject.GetHashCode:
00408e50mov rax, rcx
00408e53shr rax, 32
00408e57xor ecx, eax
00408e59mov eax, ecx
00408e5bret
00408e50
00408e50TObject.GetHashCode:
00408e50mov rax, rcx
00408e53shr rax, 32
00408e57xor ecx, eax
00408e59mov eax, ecx
00408e5bret
00408e50
00408e5c
00408e5c // align 0x10
00408e5c // align 0x10
00408e60
00408e60TObject.GetInterface:
00408e60push rbp
00408e61push rdi
00408e62push rsi
00408e63push rbx
00408e64sub rsp, 56
00408e68mov rbp, rsp
00408e6bmov rbx, rcx
00408e6emov rsi, rdx
00408e71mov rdi, r8
00408e74mov [rdi], 0
00408e7bmov rcx, [rbx]
00408e7emov rdx, rsi
00408e81call TObject.GetInterfaceEntry
00408e86test rax, rax
00408e89je 0x408ec0
00408e8bmov ecx, [rax+24]
00408e8etest ecx, ecx
00408e90je 0x408eaf
00408e92movsxd rcx, ecx
00408e95lea rax, [rbx+rcx]
00408e99mov [rdi], rax
00408e9ctest rax, rax
00408e9fje 0x408eec
00408ea1mov rax, [rdi]
00408ea4mov rcx, rax
00408ea7mov rax, [rax]
00408eaacall [rax+8]
00408eadjmp 0x408eec
00408eaf
00408eafloc_408eaf:
00408eafmov rcx, rbx
00408eb2mov rdx, [rax+32]
00408eb6mov r8, rdi
00408eb9call fn_408dd0
00408ebejmp 0x408eec
00408ec0
00408ec0loc_408ec0:
00408ec0lea rax, [rip+0x501a9]
00408ec7mov [rbp+40], rax
00408ecbmov [rbp+32], rsi
00408ecfmov rax, [rbp+40]
00408ed3mov rcx, [rbp+32]
00408ed7mov rdx, [rax]
00408edacmp rdx, [rcx]
00408eddjne 0x408eec
00408edfmov rax, [rax+8]
00408ee3cmp rax, [rcx+8]
00408ee7jne 0x408eec
00408ee9mov [rdi], rbx
00408eec
00408eecloc_408eec:
00408eeccmp [rdi], 0
00408ef0setne al
00408ef3lea rsp, [rbp+56]
00408ef7pop rbx
00408ef8pop rsi
00408ef9pop rdi
00408efapop rbp
00408efbret
00408e60
00408e60TObject.GetInterface:
00408e60push rbp
00408e61push rdi
00408e62push rsi
00408e63push rbx
00408e64sub rsp, 56
00408e68mov rbp, rsp
00408e6bmov rbx, rcx
00408e6emov rsi, rdx
00408e71mov rdi, r8
00408e74mov [rdi], 0
00408e7bmov rcx, [rbx]
00408e7emov rdx, rsi
00408e81call TObject.GetInterfaceEntry
00408e86test rax, rax
00408e89je 0x408ec0
00408e8bmov ecx, [rax+24]
00408e8etest ecx, ecx
00408e90je 0x408eaf
00408e92movsxd rcx, ecx
00408e95lea rax, [rbx+rcx]
00408e99mov [rdi], rax
00408e9ctest rax, rax
00408e9fje 0x408eec
00408ea1mov rax, [rdi]
00408ea4mov rcx, rax
00408ea7mov rax, [rax]
00408eaacall [rax+8]
00408eadjmp 0x408eec
00408eaf
00408eafloc_408eaf:
00408eafmov rcx, rbx
00408eb2mov rdx, [rax+32]
00408eb6mov r8, rdi
00408eb9call fn_408dd0
00408ebejmp 0x408eec
00408ec0
00408ec0loc_408ec0:
00408ec0lea rax, [rip+0x501a9]
00408ec7mov [rbp+40], rax
00408ecbmov [rbp+32], rsi
00408ecfmov rax, [rbp+40]
00408ed3mov rcx, [rbp+32]
00408ed7mov rdx, [rax]
00408edacmp rdx, [rcx]
00408eddjne 0x408eec
00408edfmov rax, [rax+8]
00408ee3cmp rax, [rcx+8]
00408ee7jne 0x408eec
00408ee9mov [rdi], rbx
00408eec
00408eecloc_408eec:
00408eeccmp [rdi], 0
00408ef0setne al
00408ef3lea rsp, [rbp+56]
00408ef7pop rbx
00408ef8pop rsi
00408ef9pop rdi
00408efapop rbp
00408efbret
00408e60
00408efc
00408efc // align 0x10
00408efc // align 0x10
00408f00
00408f00TObject.GetInterfaceEntry:
00408f00push rbp
00408f01sub rsp, 16
00408f05mov rbp, rsp
00408f08
00408f08loc_408f08:
00408f08mov r8, [rcx-192]
00408f0ftest r8, r8
00408f12je 0x408f61
00408f14lea rax, [r8+8]
00408f18xor r9, r9
00408f1bmov r10l, [r8]
00408f1esub r10l, 1
00408f22mov r8l, r9l
00408f25cmp r8l, r10l
00408f28jg 0x408f60
00408f2asub r10l, r9l
00408f2dadd r10l, 1
00408f31
00408f31loc_408f31:
00408f31mov [rbp+8], rax
00408f35mov [rbp], rdx
00408f39mov r8, [rbp+8]
00408f3dmov r9, [rbp]
00408f41mov r11, [r8]
00408f44cmp r11, [r9]
00408f47jne 0x408f53
00408f49mov r8, [r8+8]
00408f4dcmp r8, [r9+8]
00408f51je 0x408f74
00408f53
00408f53loc_408f53:
00408f53add rax, 40
00408f57sub r10l, 1
00408f5btest r10l, r10l
00408f5ejne 0x408f31
00408f60
00408f60loc_408f60:
00408f60nop
00408f61
00408f61loc_408f61:
00408f61mov rcx, [rcx-120]
00408f65test rcx, rcx
00408f68je 0x408f6d
00408f6amov rcx, [rcx]
00408f6d
00408f6dloc_408f6d:
00408f6dtest rcx, rcx
00408f70jne 0x408f08
00408f72xor eax, eax
00408f74
00408f74loc_408f74:
00408f74lea rsp, [rbp+16]
00408f78pop rbp
00408f79ret
00408f00
00408f00TObject.GetInterfaceEntry:
00408f00push rbp
00408f01sub rsp, 16
00408f05mov rbp, rsp
00408f08
00408f08loc_408f08:
00408f08mov r8, [rcx-192]
00408f0ftest r8, r8
00408f12je 0x408f61
00408f14lea rax, [r8+8]
00408f18xor r9, r9
00408f1bmov r10l, [r8]
00408f1esub r10l, 1
00408f22mov r8l, r9l
00408f25cmp r8l, r10l
00408f28jg 0x408f60
00408f2asub r10l, r9l
00408f2dadd r10l, 1
00408f31
00408f31loc_408f31:
00408f31mov [rbp+8], rax
00408f35mov [rbp], rdx
00408f39mov r8, [rbp+8]
00408f3dmov r9, [rbp]
00408f41mov r11, [r8]
00408f44cmp r11, [r9]
00408f47jne 0x408f53
00408f49mov r8, [r8+8]
00408f4dcmp r8, [r9+8]
00408f51je 0x408f74
00408f53
00408f53loc_408f53:
00408f53add rax, 40
00408f57sub r10l, 1
00408f5btest r10l, r10l
00408f5ejne 0x408f31
00408f60
00408f60loc_408f60:
00408f60nop
00408f61
00408f61loc_408f61:
00408f61mov rcx, [rcx-120]
00408f65test rcx, rcx
00408f68je 0x408f6d
00408f6amov rcx, [rcx]
00408f6d
00408f6dloc_408f6d:
00408f6dtest rcx, rcx
00408f70jne 0x408f08
00408f72xor eax, eax
00408f74
00408f74loc_408f74:
00408f74lea rsp, [rbp+16]
00408f78pop rbp
00408f79ret
00408f00
00408f7a
00408f7a // align 0x10
00408f7a // align 0x10
00408f80
00408f80TObject.UnitName:
00408f80push rsi
00408f81push rbx
00408f82sub rsp, 40
00408f86mov rbx, rdx
00408f89mov rax, [rcx-168]
00408f90test rax, rax
00408f93je 0x408fd7
00408f95movzx rcx, [rax+1]
00408f9alea rsi, [rax+rcx+20]
00408f9fmov rcx, rbx
00408fa2mov rdx, rsi
00408fa5call fn_408770
00408faacmp [rsi+1], 64
00408faejne 0x408fdf
00408fb0lea rcx, [rip+65]
00408fb7mov rdx, [rbx]
00408fbamov r8l, 1
00408fc0call fn_40dd80
00408fc5mov rcx, rbx
00408fc8mov edx, 1
00408fcdmov r8l, eax
00408fd0call fn_40dd00
00408fd5jmp 0x408fdf
00408fd7
00408fd7loc_408fd7:
00408fd7mov rcx, rbx
00408fdacall fn_40bcf0
00408fdf
00408fdfloc_408fdf:
00408fdfmov rax, rbx
00408fe2add rsp, 40
00408fe6pop rbx
00408fe7pop rsi
00408fe8ret
00408f80
00408f80TObject.UnitName:
00408f80push rsi
00408f81push rbx
00408f82sub rsp, 40
00408f86mov rbx, rdx
00408f89mov rax, [rcx-168]
00408f90test rax, rax
00408f93je 0x408fd7
00408f95movzx rcx, [rax+1]
00408f9alea rsi, [rax+rcx+20]
00408f9fmov rcx, rbx
00408fa2mov rdx, rsi
00408fa5call fn_408770
00408faacmp [rsi+1], 64
00408faejne 0x408fdf
00408fb0lea rcx, [rip+65]
00408fb7mov rdx, [rbx]
00408fbamov r8l, 1
00408fc0call fn_40dd80
00408fc5mov rcx, rbx
00408fc8mov edx, 1
00408fcdmov r8l, eax
00408fd0call fn_40dd00
00408fd5jmp 0x408fdf
00408fd7
00408fd7loc_408fd7:
00408fd7mov rcx, rbx
00408fdacall fn_40bcf0
00408fdf
00408fdfloc_408fdf:
00408fdfmov rax, rbx
00408fe2add rsp, 40
00408fe6pop rbx
00408fe7pop rsi
00408fe8ret
00408f80
00408fe9
00408fe9 00 00 00 b0 04 02 00 .......
00408ff0 ff ff ff ff 01 00 00 00 3a 00 00 00 cc cc cc cc ........:.......
00408fe9 00 00 00 b0 04 02 00 .......
00408ff0 ff ff ff ff 01 00 00 00 3a 00 00 00 cc cc cc cc ........:.......
00409000
00409000TObject.UnitScope:
00409000push rbp
00409001push rbx
00409002sub rsp, 72
00409006mov rbp, rsp
00409009mov [rbp+40], rcx
0040900dmov [rbp+48], rdx
00409011mov [rbp+56], 0
00409019nop
0040901amov rax, [rbp+40]
0040901emov rax, [rax-168]
00409025test rax, rax
00409028je 0x40908b
0040902amovzx rcx, [rax+1]
0040902flea rbx, [rax+rcx+20]
00409034mov rcx, [rbp+48]
00409038mov rdx, rbx
0040903bcall fn_408770
00409040cmp [rbx+1], 64
00409044jne 0x409094
00409046lea rcx, [rip+135]
0040904dmov rax, [rbp+48]
00409051mov rdx, [rax]
00409054mov r8l, 1
0040905acall fn_40dd80
0040905flea rcx, [rbp+56]
00409063mov rdx, [rbp+48]
00409067mov rdx, [rdx]
0040906amov r8l, 2
00409070mov r9l, eax
00409073sub r9l, 2
00409077call fn_40dca0
0040907cmov rcx, [rbp+48]
00409080mov rdx, [rbp+56]
00409084call fn_40c360
00409089jmp 0x409094
0040908b
0040908bloc_40908b:
0040908bmov rcx, [rbp+48]
0040908fcall fn_40bcf0
00409094
00409094loc_409094:
00409094nop
00409095lea rcx, [rbp+56]
00409099call fn_40bcf0
0040909emov rax, [rbp+48]
004090a2lea rsp, [rbp+72]
004090a6pop rbx
004090a7pop rbp
004090a8ret
00409000
00409000TObject.UnitScope:
00409000push rbp
00409001push rbx
00409002sub rsp, 72
00409006mov rbp, rsp
00409009mov [rbp+40], rcx
0040900dmov [rbp+48], rdx
00409011mov [rbp+56], 0
00409019nop
0040901amov rax, [rbp+40]
0040901emov rax, [rax-168]
00409025test rax, rax
00409028je 0x40908b
0040902amovzx rcx, [rax+1]
0040902flea rbx, [rax+rcx+20]
00409034mov rcx, [rbp+48]
00409038mov rdx, rbx
0040903bcall fn_408770
00409040cmp [rbx+1], 64
00409044jne 0x409094
00409046lea rcx, [rip+135]
0040904dmov rax, [rbp+48]
00409051mov rdx, [rax]
00409054mov r8l, 1
0040905acall fn_40dd80
0040905flea rcx, [rbp+56]
00409063mov rdx, [rbp+48]
00409067mov rdx, [rdx]
0040906amov r8l, 2
00409070mov r9l, eax
00409073sub r9l, 2
00409077call fn_40dca0
0040907cmov rcx, [rbp+48]
00409080mov rdx, [rbp+56]
00409084call fn_40c360
00409089jmp 0x409094
0040908b
0040908bloc_40908b:
0040908bmov rcx, [rbp+48]
0040908fcall fn_40bcf0
00409094
00409094loc_409094:
00409094nop
00409095lea rcx, [rbp+56]
00409099call fn_40bcf0
0040909emov rax, [rbp+48]
004090a2lea rsp, [rbp+72]
004090a6pop rbx
004090a7pop rbp
004090a8ret
00409000
004090a9
004090a9 48 8d 80 00 00 00 00 H......
004090a9 48 8d 80 00 00 00 00 H......
004090b0
004090b0fn_4090b0:
004090b0push rbp
004090b1sub rsp, 32
004090b5mov rbp, rsp
004090b8lea rcx, [rdx+56]
004090bccall fn_40bcf0
004090c1lea rsp, [rbp+32]
004090c5pop rbp
004090c6ret
004090b0
004090b0fn_4090b0:
004090b0push rbp
004090b1sub rsp, 32
004090b5mov rbp, rsp
004090b8lea rcx, [rdx+56]
004090bccall fn_40bcf0
004090c1lea rsp, [rbp+32]
004090c5pop rbp
004090c6ret
004090b0
004090c7
004090c7 00 b0 04 02 00 ff ff ff ff .........
004090d0 01 00 00 00 3a 00 00 00 cc cc cc cc cc cc cc cc ....:...........
004090c7 00 b0 04 02 00 ff ff ff ff .........
004090d0 01 00 00 00 3a 00 00 00 cc cc cc cc cc cc cc cc ....:...........
004090e0
004090e0fn_4090e0:
004090e0sub rsp, 40
004090e4test rcx, rcx
004090e7je 0x4090f5
004090e9mov rcx, [rcx]
004090eccall TObject.InheritsFrom
004090f1test al, al
004090f3jne 0x4090f9
004090f5
004090f5loc_4090f5:
004090f5xor eax, eax
004090f7jmp 0x4090fb
004090f9
004090f9loc_4090f9:
004090f9mov al, 1
004090fb
004090fbloc_4090fb:
004090fbadd rsp, 40
004090ffret
004090e0
004090e0fn_4090e0:
004090e0sub rsp, 40
004090e4test rcx, rcx
004090e7je 0x4090f5
004090e9mov rcx, [rcx]
004090eccall TObject.InheritsFrom
004090f1test al, al
004090f3jne 0x4090f9
004090f5
004090f5loc_4090f5:
004090f5xor eax, eax
004090f7jmp 0x4090fb
004090f9
004090f9loc_4090f9:
004090f9mov al, 1
004090fb
004090fbloc_4090fb:
004090fbadd rsp, 40
004090ffret
004090e0
00409100
00409100fn_409100:
00409100push rbp
00409101push rbx
00409102sub rsp, 40
00409106mov rbp, rsp
00409109mov rbx, rcx
0040910ctest rcx, rcx
0040910fje 0x409125
00409111call fn_4090e0
00409116test al, al
00409118jne 0x409125
0040911amov cl, 10
0040911cmov rdx, [rbp+56]
00409120call fn_4059c0
00409125
00409125loc_409125:
00409125mov rax, rbx
00409128lea rsp, [rbp+40]
0040912cpop rbx
0040912dpop rbp
0040912eret
00409100
00409100fn_409100:
00409100push rbp
00409101push rbx
00409102sub rsp, 40
00409106mov rbp, rsp
00409109mov rbx, rcx
0040910ctest rcx, rcx
0040910fje 0x409125
00409111call fn_4090e0
00409116test al, al
00409118jne 0x409125
0040911amov cl, 10
0040911cmov rdx, [rbp+56]
00409120call fn_4059c0
00409125
00409125loc_409125:
00409125mov rax, rbx
00409128lea rsp, [rbp+40]
0040912cpop rbx
0040912dpop rbp
0040912eret
00409100
0040912f
0040912f // align 0x10
0040912f // align 0x10
00409130
00409130fn_409130:
00409130push rbp
00409131push rbx
00409132sub rsp, 56
00409136mov rbp, rsp
00409139mov rbx, rdx
0040913cmov [rbp+40], 0
00409144lea rax, [rbp+40]
00409148mov rdx, rcx
0040914blea r8, [rip+0x4ff1e]
00409152mov rcx, rax
00409155call fn_412590
0040915amov rcx, [rbp+40]
0040915emov rdx, rbx
00409161call fn_409100
00409166lea rsp, [rbp+56]
0040916apop rbx
0040916bpop rbp
0040916cret
00409130
00409130fn_409130:
00409130push rbp
00409131push rbx
00409132sub rsp, 56
00409136mov rbp, rsp
00409139mov rbx, rdx
0040913cmov [rbp+40], 0
00409144lea rax, [rbp+40]
00409148mov rdx, rcx
0040914blea r8, [rip+0x4ff1e]
00409152mov rcx, rax
00409155call fn_412590
0040915amov rcx, [rbp+40]
0040915emov rdx, rbx
00409161call fn_409100
00409166lea rsp, [rbp+56]
0040916apop rbx
0040916bpop rbp
0040916cret
00409130
0040916d
0040916d // align 0x10
0040916d // align 0x10
00409170
00409170fn_409170:
00409170mov rax, rcx
00409173
00409173loc_409173:
00409173mov rcx, [rax-144]
0040917atest rcx, rcx
0040917dje 0x4091d0
0040917fxor r9, r9
00409182movzx r10l, [rcx]
00409186sub r10l, 1
0040918amov r8l, r9l
0040918dcmp r8l, r10l
00409190ja 0x4091cf
00409192sub r10l, r9l
00409195add r10l, 1
00409199
00409199loc_409199:
00409199mov r9l, r8l
0040919ccmp [rcx+2*r9+2], dx
004091a2jne 0x4091c2
004091a4movzx eax, [rcx]
004091a7add eax, eax
004091a9mov eax, eax
004091ablea rax, [rcx+rax+2]
004091b0add r8l, r8l
004091b3add r8l, r8l
004091b6add r8l, r8l
004091b9mov r8l, r8l
004091bcmov rax, [rax+r8]
004091c0jmp 0x4091e1
004091c2
004091c2loc_4091c2:
004091c2add r8l, 1
004091c6sub r10l, 1
004091catest r10l, r10l
004091cdjne 0x409199
004091cf
004091cfloc_4091cf:
004091cfnop
004091d0
004091d0loc_4091d0:
004091d0mov rax, [rax-120]
004091d4test rax, rax
004091d7je 0x4091de
004091d9mov rax, [rax]
004091dcjmp 0x409173
004091de
004091deloc_4091de:
004091denop
004091dfxor eax, eax
004091e1
004091e1loc_4091e1:
004091e1ret
00409170
00409170fn_409170:
00409170mov rax, rcx
00409173
00409173loc_409173:
00409173mov rcx, [rax-144]
0040917atest rcx, rcx
0040917dje 0x4091d0
0040917fxor r9, r9
00409182movzx r10l, [rcx]
00409186sub r10l, 1
0040918amov r8l, r9l
0040918dcmp r8l, r10l
00409190ja 0x4091cf
00409192sub r10l, r9l
00409195add r10l, 1
00409199
00409199loc_409199:
00409199mov r9l, r8l
0040919ccmp [rcx+2*r9+2], dx
004091a2jne 0x4091c2
004091a4movzx eax, [rcx]
004091a7add eax, eax
004091a9mov eax, eax
004091ablea rax, [rcx+rax+2]
004091b0add r8l, r8l
004091b3add r8l, r8l
004091b6add r8l, r8l
004091b9mov r8l, r8l
004091bcmov rax, [rax+r8]
004091c0jmp 0x4091e1
004091c2
004091c2loc_4091c2:
004091c2add r8l, 1
004091c6sub r10l, 1
004091catest r10l, r10l
004091cdjne 0x409199
004091cf
004091cfloc_4091cf:
004091cfnop
004091d0
004091d0loc_4091d0:
004091d0mov rax, [rax-120]
004091d4test rax, rax
004091d7je 0x4091de
004091d9mov rax, [rax]
004091dcjmp 0x409173
004091de
004091deloc_4091de:
004091denop
004091dfxor eax, eax
004091e1
004091e1loc_4091e1:
004091e1ret
00409170
004091e2
004091e2 // align 0x10
004091e2 // align 0x10
004091f0
004091f0TObject.InheritsFrom:
004091f0mov rax, rcx
004091f3
004091f3loc_4091f3:
004091f3cmp rax, rdx
004091f6je 0x409206
004091f8mov rax, [rax-120]
004091fctest rax, rax
004091ffje 0x409209
00409201mov rax, [rax]
00409204jmp 0x4091f3
00409206
00409206loc_409206:
00409206nop
00409207mov al, 1
00409209
00409209loc_409209:
00409209ret
004091f0
004091f0TObject.InheritsFrom:
004091f0mov rax, rcx
004091f3
004091f3loc_4091f3:
004091f3cmp rax, rdx
004091f6je 0x409206
004091f8mov rax, [rax-120]
004091fctest rax, rax
004091ffje 0x409209
00409201mov rax, [rax]
00409204jmp 0x4091f3
00409206
00409206loc_409206:
00409206nop
00409207mov al, 1
00409209
00409209loc_409209:
00409209ret
004091f0
0040920a
0040920a // align 0x10
0040920a // align 0x10
00409216
00409216 // align 0x10
00409216 // align 0x10
00409220
00409220TObject.ToString:
00409220push rbx
00409221sub rsp, 32
00409225mov rbx, rdx
00409228mov rcx, [rcx]
0040922bmov rdx, rbx
0040922ecall TObject.ClassName
00409233mov rax, rbx
00409236add rsp, 32
0040923apop rbx
0040923bret
00409220
00409220TObject.ToString:
00409220push rbx
00409221sub rsp, 32
00409225mov rbx, rdx
00409228mov rcx, [rcx]
0040922bmov rdx, rbx
0040922ecall TObject.ClassName
00409233mov rax, rbx
00409236add rsp, 32
0040923apop rbx
0040923bret
00409220
0040923c
0040923c // align 0x10
0040923c // align 0x10
00409241
00409241 // align 0x10
00409241 // align 0x10
00409251
00409251 // align 0x10
00409251 // align 0x10
00409261
00409261 // align 0x10
00409261 // align 0x10
00409270
00409270TObject.Dispatch:
00409270push rbp
00409271push rdi
00409272push rsi
00409273push rbx
00409274sub rsp, 56
00409278mov rbp, rsp
0040927bmov rbx, rcx
0040927emov rsi, rdx
00409281movzx rax, [rsi]
00409285test ax, ax
00409288je 0x4092c5
0040928acmp ax, -16384
0040928fjae 0x4092c5
00409291mov rdi, rbx
00409294mov rcx, [rdi]
00409297mov edx, eax
00409299call fn_409170
0040929etest rax, rax
004092a1je 0x4092b7
004092a3mov [rbp+40], rdi
004092a7mov [rbp+32], rax
004092abmov rcx, [rbp+40]
004092afmov rdx, rsi
004092b2call [rbp+32]
004092b5jmp 0x4092d1
004092b7
004092b7loc_4092b7:
004092b7mov rcx, rbx
004092bamov rdx, rsi
004092bdmov rbx, [rbx]
004092c0call [rbx-56]
004092c3jmp 0x4092d1
004092c5
004092c5loc_4092c5:
004092c5mov rcx, rbx
004092c8mov rdx, rsi
004092cbmov rbx, [rbx]
004092cecall [rbx-56]
004092d1
004092d1loc_4092d1:
004092d1lea rsp, [rbp+56]
004092d5pop rbx
004092d6pop rsi
004092d7pop rdi
004092d8pop rbp
004092d9ret
00409270
00409270TObject.Dispatch:
00409270push rbp
00409271push rdi
00409272push rsi
00409273push rbx
00409274sub rsp, 56
00409278mov rbp, rsp
0040927bmov rbx, rcx
0040927emov rsi, rdx
00409281movzx rax, [rsi]
00409285test ax, ax
00409288je 0x4092c5
0040928acmp ax, -16384
0040928fjae 0x4092c5
00409291mov rdi, rbx
00409294mov rcx, [rdi]
00409297mov edx, eax
00409299call fn_409170
0040929etest rax, rax
004092a1je 0x4092b7
004092a3mov [rbp+40], rdi
004092a7mov [rbp+32], rax
004092abmov rcx, [rbp+40]
004092afmov rdx, rsi
004092b2call [rbp+32]
004092b5jmp 0x4092d1
004092b7
004092b7loc_4092b7:
004092b7mov rcx, rbx
004092bamov rdx, rsi
004092bdmov rbx, [rbx]
004092c0call [rbx-56]
004092c3jmp 0x4092d1
004092c5
004092c5loc_4092c5:
004092c5mov rcx, rbx
004092c8mov rdx, rsi
004092cbmov rbx, [rbx]
004092cecall [rbx-56]
004092d1
004092d1loc_4092d1:
004092d1lea rsp, [rbp+56]
004092d5pop rbx
004092d6pop rsi
004092d7pop rdi
004092d8pop rbp
004092d9ret
00409270
004092da
004092da // align 0x10
004092da // align 0x10
004092e0
004092e0TObject.MethodAddress:
004092e0push rbp
004092e1push r13
004092e3push rdi
004092e4push rsi
004092e5push rbx
004092e6sub rsp, 288
004092edmov rbp, rsp
004092f0mov rax, rcx
004092f3mov rsi, rdx
004092f6movzx rcx, [rsi]
004092falea rcx, [rcx+1]
004092felea rdi, [rbp+32]
00409302rep movsb [rdi], [rsi]
00409304xor ebx, ebx
00409306mov r13, rax
00409309
00409309loc_409309:
00409309mov rax, [r13-152]
00409310test rax, rax
00409313je 0x40931f
00409315movzx rsi, [rax]
00409319add rax, 2
0040931djmp 0x409321
0040931f
0040931floc_40931f:
0040931fxor esi, esi
00409321
00409321loc_409321:
00409321test si, si
00409324jbe 0x409360
00409326mov rdi, rax
00409329test si, si
0040932cjbe 0x40935f
0040932e
0040932eloc_40932e:
0040932emovzx rax, [rdi+10]
00409333cmp al, [rbp+32]
00409336jne 0x40934f
00409338lea rcx, [rdi+10]
0040933clea rdx, [rbp+32]
00409340call fn_408880
00409345test al, al
00409347je 0x40934f
00409349mov rbx, [rdi+2]
0040934djmp 0x409372
0040934f
0040934floc_40934f:
0040934fsub si, 1
00409353movzx rax, [rdi]
00409357add rdi, rax
0040935atest si, si
0040935dja 0x40932e
0040935f
0040935floc_40935f:
0040935fnop
00409360
00409360loc_409360:
00409360mov r13, [r13-120]
00409364test r13, r13
00409367je 0x40936d
00409369mov r13, [r13]
0040936d
0040936dloc_40936d:
0040936dtest r13, r13
00409370jne 0x409309
00409372
00409372loc_409372:
00409372mov rax, rbx
00409375lea rsp, [rbp+288]
0040937cpop rbx
0040937dpop rsi
0040937epop rdi
0040937fpop r13
00409381pop rbp
00409382ret
004092e0
004092e0TObject.MethodAddress:
004092e0push rbp
004092e1push r13
004092e3push rdi
004092e4push rsi
004092e5push rbx
004092e6sub rsp, 288
004092edmov rbp, rsp
004092f0mov rax, rcx
004092f3mov rsi, rdx
004092f6movzx rcx, [rsi]
004092falea rcx, [rcx+1]
004092felea rdi, [rbp+32]
00409302rep movsb [rdi], [rsi]
00409304xor ebx, ebx
00409306mov r13, rax
00409309
00409309loc_409309:
00409309mov rax, [r13-152]
00409310test rax, rax
00409313je 0x40931f
00409315movzx rsi, [rax]
00409319add rax, 2
0040931djmp 0x409321
0040931f
0040931floc_40931f:
0040931fxor esi, esi
00409321
00409321loc_409321:
00409321test si, si
00409324jbe 0x409360
00409326mov rdi, rax
00409329test si, si
0040932cjbe 0x40935f
0040932e
0040932eloc_40932e:
0040932emovzx rax, [rdi+10]
00409333cmp al, [rbp+32]
00409336jne 0x40934f
00409338lea rcx, [rdi+10]
0040933clea rdx, [rbp+32]
00409340call fn_408880
00409345test al, al
00409347je 0x40934f
00409349mov rbx, [rdi+2]
0040934djmp 0x409372
0040934f
0040934floc_40934f:
0040934fsub si, 1
00409353movzx rax, [rdi]
00409357add rdi, rax
0040935atest si, si
0040935dja 0x40932e
0040935f
0040935floc_40935f:
0040935fnop
00409360
00409360loc_409360:
00409360mov r13, [r13-120]
00409364test r13, r13
00409367je 0x40936d
00409369mov r13, [r13]
0040936d
0040936dloc_40936d:
0040936dtest r13, r13
00409370jne 0x409309
00409372
00409372loc_409372:
00409372mov rax, rbx
00409375lea rsp, [rbp+288]
0040937cpop rbx
0040937dpop rsi
0040937epop rdi
0040937fpop r13
00409381pop rbp
00409382ret
004092e0
00409383
00409383 // align 0x10
00409383 // align 0x10
00409390
00409390TObject.MethodAddress_2:
00409390push rbp
00409391push rbx
00409392sub rsp, 296
00409399mov rbp, rsp
0040939cmov rbx, rcx
0040939flea rcx, [rbp+32]
004093a3call fn_414450
004093a8mov rcx, rbx
004093ablea rdx, [rbp+32]
004093afcall TObject.MethodAddress
004093b4lea rsp, [rbp+296]
004093bbpop rbx
004093bcpop rbp
004093bdret
00409390
00409390TObject.MethodAddress_2:
00409390push rbp
00409391push rbx
00409392sub rsp, 296
00409399mov rbp, rsp
0040939cmov rbx, rcx
0040939flea rcx, [rbp+32]
004093a3call fn_414450
004093a8mov rcx, rbx
004093ablea rdx, [rbp+32]
004093afcall TObject.MethodAddress
004093b4lea rsp, [rbp+296]
004093bbpop rbx
004093bcpop rbp
004093bdret
00409390
004093be
004093be // align 0x10
004093be // align 0x10
004093c0
004093c0TObject.MethodName:
004093c0push rdi
004093c1push rsi
004093c2push rbx
004093c3sub rsp, 32
004093c7mov rbx, rcx
004093camov rsi, rdx
004093cdmov rdi, r8
004093d0mov rcx, rsi
004093d3call fn_40bcf0
004093d8mov rdx, rbx
004093db
004093dbloc_4093db:
004093dbmov rax, [rdx-152]
004093e2test rax, rax
004093e5je 0x4093f1
004093e7movzx rcx, [rax]
004093ebadd rax, 2
004093efjmp 0x4093f3
004093f1
004093f1loc_4093f1:
004093f1xor ecx, ecx
004093f3
004093f3loc_4093f3:
004093f3test cx, cx
004093f6jbe 0x409422
004093f8test cx, cx
004093fbjbe 0x409421
004093fd
004093fdloc_4093fd:
004093fdcmp [rax+2], rdi
00409401jne 0x409411
00409403mov rcx, rsi
00409406lea rdx, [rax+10]
0040940acall fn_408770
0040940fjmp 0x409433
00409411
00409411loc_409411:
00409411sub cx, 1
00409415movzx r8, [rax]
00409419add rax, r8
0040941ctest cx, cx
0040941fja 0x4093fd
00409421
00409421loc_409421:
00409421nop
00409422
00409422loc_409422:
00409422mov rdx, [rdx-120]
00409426test rdx, rdx
00409429je 0x40942e
0040942bmov rdx, [rdx]
0040942e
0040942eloc_40942e:
0040942etest rdx, rdx
00409431jne 0x4093db
00409433
00409433loc_409433:
00409433mov rax, rsi
00409436add rsp, 32
0040943apop rbx
0040943bpop rsi
0040943cpop rdi
0040943dret
004093c0
004093c0TObject.MethodName:
004093c0push rdi
004093c1push rsi
004093c2push rbx
004093c3sub rsp, 32
004093c7mov rbx, rcx
004093camov rsi, rdx
004093cdmov rdi, r8
004093d0mov rcx, rsi
004093d3call fn_40bcf0
004093d8mov rdx, rbx
004093db
004093dbloc_4093db:
004093dbmov rax, [rdx-152]
004093e2test rax, rax
004093e5je 0x4093f1
004093e7movzx rcx, [rax]
004093ebadd rax, 2
004093efjmp 0x4093f3
004093f1
004093f1loc_4093f1:
004093f1xor ecx, ecx
004093f3
004093f3loc_4093f3:
004093f3test cx, cx
004093f6jbe 0x409422
004093f8test cx, cx
004093fbjbe 0x409421
004093fd
004093fdloc_4093fd:
004093fdcmp [rax+2], rdi
00409401jne 0x409411
00409403mov rcx, rsi
00409406lea rdx, [rax+10]
0040940acall fn_408770
0040940fjmp 0x409433
00409411
00409411loc_409411:
00409411sub cx, 1
00409415movzx r8, [rax]
00409419add rax, r8
0040941ctest cx, cx
0040941fja 0x4093fd
00409421
00409421loc_409421:
00409421nop
00409422
00409422loc_409422:
00409422mov rdx, [rdx-120]
00409426test rdx, rdx
00409429je 0x40942e
0040942bmov rdx, [rdx]
0040942e
0040942eloc_40942e:
0040942etest rdx, rdx
00409431jne 0x4093db
00409433
00409433loc_409433:
00409433mov rax, rsi
00409436add rsp, 32
0040943apop rbx
0040943bpop rsi
0040943cpop rdi
0040943dret
004093c0
0040943e
0040943e // align 0x10
0040943e // align 0x10
00409440
00409440TObject.FieldAddress:
00409440push rbp
00409441push r14
00409443push r13
00409445push rdi
00409446push rsi
00409447push rbx
00409448sub rsp, 312
0040944fmov rbp, rsp
00409452mov [rbp+40], rcx
00409456mov rsi, rdx
00409459movzx rax, [rsi]
0040945dlea rcx, [rax+1]
00409461lea rdi, [rbp+48]
00409465rep movsb [rdi], [rsi]
00409467xor ebx, ebx
00409469mov rax, [rbp+40]
0040946dmov r14, [rax]
00409470
00409470loc_409470:
00409470mov rsi, [r14-160]
00409477test rsi, rsi
0040947aje 0x40948a
0040947cmovzx rdi, [rsi]
00409480add rsi, 2
00409484add rsi, 8
00409488jmp 0x40948c
0040948a
0040948aloc_40948a:
0040948axor edi, edi
0040948c
0040948cloc_40948c:
0040948ctest di, di
0040948fjbe 0x4094d7
00409491test di, di
00409494jbe 0x4094d6
00409496
00409496loc_409496:
00409496lea r13, [rsi+6]
0040949amovzx rax, [r13]
0040949fcmp al, [rbp+48]
004094a2jne 0x4094c0
004094a4mov rcx, r13
004094a7lea rdx, [rbp+48]
004094abcall fn_408880
004094b0test al, al
004094b2je 0x4094c0
004094b4mov eax, [rsi]
004094b6mov rcx, [rbp+40]
004094balea rbx, [rcx+rax]
004094bejmp 0x4094e8
004094c0
004094c0loc_4094c0:
004094c0sub di, 1
004094c4movzx rax, [r13]
004094c9add eax, 7
004094ccmov eax, eax
004094ceadd rsi, rax
004094d1test di, di
004094d4ja 0x409496
004094d6
004094d6loc_4094d6:
004094d6nop
004094d7
004094d7loc_4094d7:
004094d7mov r14, [r14-120]
004094dbtest r14, r14
004094deje 0x4094e3
004094e0mov r14, [r14]
004094e3
004094e3loc_4094e3:
004094e3test r14, r14
004094e6jne 0x409470
004094e8
004094e8loc_4094e8:
004094e8mov rax, rbx
004094eblea rsp, [rbp+312]
004094f2pop rbx
004094f3pop rsi
004094f4pop rdi
004094f5pop r13
004094f7pop r14
004094f9pop rbp
004094faret
00409440
00409440TObject.FieldAddress:
00409440push rbp
00409441push r14
00409443push r13
00409445push rdi
00409446push rsi
00409447push rbx
00409448sub rsp, 312
0040944fmov rbp, rsp
00409452mov [rbp+40], rcx
00409456mov rsi, rdx
00409459movzx rax, [rsi]
0040945dlea rcx, [rax+1]
00409461lea rdi, [rbp+48]
00409465rep movsb [rdi], [rsi]
00409467xor ebx, ebx
00409469mov rax, [rbp+40]
0040946dmov r14, [rax]
00409470
00409470loc_409470:
00409470mov rsi, [r14-160]
00409477test rsi, rsi
0040947aje 0x40948a
0040947cmovzx rdi, [rsi]
00409480add rsi, 2
00409484add rsi, 8
00409488jmp 0x40948c
0040948a
0040948aloc_40948a:
0040948axor edi, edi
0040948c
0040948cloc_40948c:
0040948ctest di, di
0040948fjbe 0x4094d7
00409491test di, di
00409494jbe 0x4094d6
00409496
00409496loc_409496:
00409496lea r13, [rsi+6]
0040949amovzx rax, [r13]
0040949fcmp al, [rbp+48]
004094a2jne 0x4094c0
004094a4mov rcx, r13
004094a7lea rdx, [rbp+48]
004094abcall fn_408880
004094b0test al, al
004094b2je 0x4094c0
004094b4mov eax, [rsi]
004094b6mov rcx, [rbp+40]
004094balea rbx, [rcx+rax]
004094bejmp 0x4094e8
004094c0
004094c0loc_4094c0:
004094c0sub di, 1
004094c4movzx rax, [r13]
004094c9add eax, 7
004094ccmov eax, eax
004094ceadd rsi, rax
004094d1test di, di
004094d4ja 0x409496
004094d6
004094d6loc_4094d6:
004094d6nop
004094d7
004094d7loc_4094d7:
004094d7mov r14, [r14-120]
004094dbtest r14, r14
004094deje 0x4094e3
004094e0mov r14, [r14]
004094e3
004094e3loc_4094e3:
004094e3test r14, r14
004094e6jne 0x409470
004094e8
004094e8loc_4094e8:
004094e8mov rax, rbx
004094eblea rsp, [rbp+312]
004094f2pop rbx
004094f3pop rsi
004094f4pop rdi
004094f5pop r13
004094f7pop r14
004094f9pop rbp
004094faret
00409440
004094fb
004094fb // align 0x10
004094fb // align 0x10
00409500
00409500TObject.FieldAddress_2:
00409500push rbp
00409501push rbx
00409502sub rsp, 296
00409509mov rbp, rsp
0040950cmov rbx, rcx
0040950flea rcx, [rbp+32]
00409513call fn_414450
00409518mov rcx, rbx
0040951blea rdx, [rbp+32]
0040951fcall TObject.FieldAddress
00409524lea rsp, [rbp+296]
0040952bpop rbx
0040952cpop rbp
0040952dret
00409500
00409500TObject.FieldAddress_2:
00409500push rbp
00409501push rbx
00409502sub rsp, 296
00409509mov rbp, rsp
0040950cmov rbx, rcx
0040950flea rcx, [rbp+32]
00409513call fn_414450
00409518mov rcx, rbx
0040951blea rdx, [rbp+32]
0040951fcall TObject.FieldAddress
00409524lea rsp, [rbp+296]
0040952bpop rbx
0040952cpop rbp
0040952dret
00409500
0040952e
0040952e // align 0x10
0040952e // align 0x10
00409530
00409530fn_409530:
00409530sub rsp, 40
00409534mov rax, rcx
00409537test dl, dl
00409539jl 0x409541
0040953bmov rcx, rax
0040953ecall [rax-48]
00409541
00409541loc_409541:
00409541add rsp, 40
00409545ret
00409530
00409530fn_409530:
00409530sub rsp, 40
00409534mov rax, rcx
00409537test dl, dl
00409539jl 0x409541
0040953bmov rcx, rax
0040953ecall [rax-48]
00409541
00409541loc_409541:
00409541add rsp, 40
00409545ret
00409530
00409546
00409546 // align 0x10
00409546 // align 0x10
00409550
00409550fn_409550:
00409550push rbx
00409551sub rsp, 32
00409555mov rax, rcx
00409558mov rbx, [rcx]
0040955bmov rcx, rax
0040955ecall [rbx-40]
00409561add rsp, 32
00409565pop rbx
00409566ret
00409550
00409550fn_409550:
00409550push rbx
00409551sub rsp, 32
00409555mov rax, rcx
00409558mov rbx, [rcx]
0040955bmov rcx, rax
0040955ecall [rbx-40]
00409561add rsp, 32
00409565pop rbx
00409566ret
00409550
00409567
00409567 // align 0x10
00409567 // align 0x10
00409570
00409570fn_409570:
00409570push rbp
00409571push rbx
00409572sub rsp, 72
00409576mov rbp, rsp
00409579mov [rbp+40], rbp
0040957dmov [rbp+96], rcx
00409581nop
00409582mov rcx, [rbp+96]
00409586mov rax, [rbp+96]
0040958amov rbx, [rax]
0040958dcall [rbx-80]
00409590mov rax, [rbp+96]
00409594mov [rbp+56], rax
00409598jmp 0x4095b2
0040959a
0040959a 90 90 48 8b 4d 60 ..H.M`
004095a0 b2 01 e8 29 00 00 00 e8 64 1a 00 00 e8 6f 1b 00 ...)....d....o..
004095b0 00 90 ..
004095b2
004095b2loc_4095b2:
004095b2mov rax, [rbp+56]
004095b6lea rsp, [rbp+72]
004095bapop rbx
004095bbpop rbp
004095bcret
00409570
00409570fn_409570:
00409570push rbp
00409571push rbx
00409572sub rsp, 72
00409576mov rbp, rsp
00409579mov [rbp+40], rbp
0040957dmov [rbp+96], rcx
00409581nop
00409582mov rcx, [rbp+96]
00409586mov rax, [rbp+96]
0040958amov rbx, [rax]
0040958dcall [rbx-80]
00409590mov rax, [rbp+96]
00409594mov [rbp+56], rax
00409598jmp 0x4095b2
0040959a
0040959a 90 90 48 8b 4d 60 ..H.M`
004095a0 b2 01 e8 29 00 00 00 e8 64 1a 00 00 e8 6f 1b 00 ...)....d....o..
004095b0 00 90 ..
004095b2
004095b2loc_4095b2:
004095b2mov rax, [rbp+56]
004095b6lea rsp, [rbp+72]
004095bapop rbx
004095bbpop rbp
004095bcret
00409570
004095bd
004095bd 48 8b c0 H..
004095bd 48 8b c0 H..
004095c0
004095c0fn_4095c0:
004095c0sub rsp, 40
004095c4call fn_40b050
004095c9add rsp, 40
004095cdret
004095c0
004095c0fn_4095c0:
004095c0sub rsp, 40
004095c4call fn_40b050
004095c9add rsp, 40
004095cdret
004095c0
004095ce
004095ce // align 0x10
004095ce // align 0x10
004095d0
004095d0fn_4095d0:
004095d0push rbx
004095d1sub rsp, 32
004095d5test dl, dl
004095d7jle 0x4095e5
004095d9mov rax, rcx
004095dcmov rbx, [rcx]
004095dfmov rcx, rax
004095e2call [rbx-72]
004095e5
004095e5loc_4095e5:
004095e5add rsp, 32
004095e9pop rbx
004095earet
004095d0
004095d0fn_4095d0:
004095d0push rbx
004095d1sub rsp, 32
004095d5test dl, dl
004095d7jle 0x4095e5
004095d9mov rax, rcx
004095dcmov rbx, [rcx]
004095dfmov rcx, rax
004095e2call [rbx-72]
004095e5
004095e5loc_4095e5:
004095e5add rsp, 32
004095e9pop rbx
004095earet
004095d0
004095eb
004095eb // align 0x10
004095eb // align 0x10
004095f0
004095f0fn_4095f0:
004095f0push rbx
004095f1sub rsp, 32
004095f5mov rbx, rcx
004095f8mov eax, [rbx]
004095facmp eax, 10
004095fdjg 0x409608
004095ffcmp [rip+0x5ba9a], 1
00409606jg 0x409654
00409608
00409608loc_409608:
00409608cmp eax, 10
0040960bjl 0x409614
0040960dmov ecx, eax
0040960fsub ecx, 10
00409612jmp 0x409616
00409614
00409614loc_409614:
00409614mov ecx, eax
00409616
00409616loc_409616:
00409616mov r8l, 20
0040961cmov eax, ecx
0040961ecdq
0040961fidiv r8l
00409622cmp edx, 19
00409625jne 0x409633
00409627mov ecx, 1
0040962ccall Sleep
00409631jmp 0x409664
00409633
00409633loc_409633:
00409633mov r8l, 5
00409639mov eax, ecx
0040963bcdq
0040963cidiv r8l
0040963fcmp edx, 4
00409642jne 0x40964d
00409644xor ecx, ecx
00409646call Sleep
0040964bjmp 0x409664
0040964d
0040964dloc_40964d:
0040964dcall SwitchToThread
00409652jmp 0x409664
00409654
00409654loc_409654:
00409654mov edx, 4
00409659mov ecx, eax
0040965bshl edx, cl
0040965dmov ecx, edx
0040965fcall fn_4096d0
00409664
00409664loc_409664:
00409664add [rbx], 1
00409667cmp [rbx], 0
0040966ajge 0x409672
0040966cmov [rbx], 10
00409672
00409672loc_409672:
00409672add rsp, 32
00409676pop rbx
00409677ret
004095f0
004095f0fn_4095f0:
004095f0push rbx
004095f1sub rsp, 32
004095f5mov rbx, rcx
004095f8mov eax, [rbx]
004095facmp eax, 10
004095fdjg 0x409608
004095ffcmp [rip+0x5ba9a], 1
00409606jg 0x409654
00409608
00409608loc_409608:
00409608cmp eax, 10
0040960bjl 0x409614
0040960dmov ecx, eax
0040960fsub ecx, 10
00409612jmp 0x409616
00409614
00409614loc_409614:
00409614mov ecx, eax
00409616
00409616loc_409616:
00409616mov r8l, 20
0040961cmov eax, ecx
0040961ecdq
0040961fidiv r8l
00409622cmp edx, 19
00409625jne 0x409633
00409627mov ecx, 1
0040962ccall Sleep
00409631jmp 0x409664
00409633
00409633loc_409633:
00409633mov r8l, 5
00409639mov eax, ecx
0040963bcdq
0040963cidiv r8l
0040963fcmp edx, 4
00409642jne 0x40964d
00409644xor ecx, ecx
00409646call Sleep
0040964bjmp 0x409664
0040964d
0040964dloc_40964d:
0040964dcall SwitchToThread
00409652jmp 0x409664
00409654
00409654loc_409654:
00409654mov edx, 4
00409659mov ecx, eax
0040965bshl edx, cl
0040965dmov ecx, edx
0040965fcall fn_4096d0
00409664
00409664loc_409664:
00409664add [rbx], 1
00409667cmp [rbx], 0
0040966ajge 0x409672
0040966cmov [rbx], 10
00409672
00409672loc_409672:
00409672add rsp, 32
00409676pop rbx
00409677ret
004095f0
00409678
00409678 // align 0x10
00409678 // align 0x10
00409680
00409680fn_409680:
00409680push rbp
00409681push rbx
00409682sub rsp, 56
00409686mov rbp, rsp
00409689mov rbx, rcx
0040968cmov [rbp+44], 0
00409693
00409693loc_409693:
00409693mov ecx, [rbx]
00409695test ecx, ecx
00409697jne 0x4096a8
00409699mov eax, ecx
0040969bmov edx, 1
004096a0lock cmpxchg [rbx], edx
004096a4cmp eax, ecx
004096a6je 0x4096b3
004096a8
004096a8loc_4096a8:
004096a8lea rcx, [rbp+44]
004096accall fn_4095f0
004096b1jmp 0x409693
004096b3
004096b3loc_4096b3:
004096b3lea rsp, [rbp+56]
004096b7pop rbx
004096b8pop rbp
004096b9ret
00409680
00409680fn_409680:
00409680push rbp
00409681push rbx
00409682sub rsp, 56
00409686mov rbp, rsp
00409689mov rbx, rcx
0040968cmov [rbp+44], 0
00409693
00409693loc_409693:
00409693mov ecx, [rbx]
00409695test ecx, ecx
00409697jne 0x4096a8
00409699mov eax, ecx
0040969bmov edx, 1
004096a0lock cmpxchg [rbx], edx
004096a4cmp eax, ecx
004096a6je 0x4096b3
004096a8
004096a8loc_4096a8:
004096a8lea rcx, [rbp+44]
004096accall fn_4095f0
004096b1jmp 0x409693
004096b3
004096b3loc_4096b3:
004096b3lea rsp, [rbp+56]
004096b7pop rbx
004096b8pop rbp
004096b9ret
00409680
004096ba
004096ba // align 0x10
004096ba // align 0x10
004096c6
004096c6 // align 0x10
004096c6 // align 0x10
004096d0
004096d0fn_4096d0:
004096d0cmp ecx, 0
004096d3jle 0x4096de
004096d5
004096d5loc_4096d5:
004096d5nop
004096d7dec ecx
004096d9cmp ecx, 0
004096dcjg 0x4096d5
004096de
004096deloc_4096de:
004096deret
004096d0
004096d0fn_4096d0:
004096d0cmp ecx, 0
004096d3jle 0x4096de
004096d5
004096d5loc_4096d5:
004096d5nop
004096d7dec ecx
004096d9cmp ecx, 0
004096dcjg 0x4096d5
004096de
004096deloc_4096de:
004096deret
004096d0
004096df
004096df // align 0x10
004096df // align 0x10
004096e0
004096e0fn_4096e0:
004096e0push rbp
004096e1sub rsp, 80
004096e5mov rbp, rsp
004096e8mov [rbp+40], rbp
004096ecmov [rbp+52], 0
004096f3lea rcx, [rip+222]
004096facall GetModuleHandleW
004096ffmov rcx, rax
00409702lea rdx, [rip+233]
00409709call GetProcAddress
0040970etest rax, rax
00409711je 0x4097a3
00409717xor ecx, ecx
00409719lea rdx, [rbp+52]
0040971dcall GetLogicalProcessorInformation
00409722test eax, eax
00409724jne 0x4097a3
00409726call GetLastError
0040972bcmp eax, 122
0040972ejne 0x4097a3
00409730mov ecx, [rbp+52]
00409733call fn_405700
00409738mov [rbp+72], rax
0040973cnop
0040973dmov rcx, [rbp+72]
00409741lea rdx, [rbp+52]
00409745call GetLogicalProcessorInformation
0040974amov rax, [rbp+72]
0040974emov [rbp+56], rax
00409752cmp [rbp+52], 0
00409756jbe 0x409789
00409758
00409758loc_409758:
00409758mov rax, [rbp+56]
0040975ccmp [rax+8], 2
00409761jne 0x40977a
00409763mov rax, [rbp+56]
00409767cmp [rax+16], 1
0040976bjne 0x40977a
0040976dmov rax, [rbp+56]
00409771movzx eax, [rax+18]
00409775mov [rbp+68], eax
00409778jmp 0x409796
0040977a
0040977aloc_40977a:
0040977aadd [rbp+56], 32
0040977fsub [rbp+52], 32
00409783cmp [rbp+52], 0
00409787ja 0x409758
00409789
00409789loc_409789:
00409789nop
0040978anop
0040978bmov rcx, [rbp+72]
0040978fcall fn_405730
00409794jmp 0x4097a3
00409796
00409796loc_409796:
00409796xor ecx, ecx
00409798mov rdx, [rbp+40]
0040979ccall fn_4097c0
004097a1jmp 0x4097aa
004097a3
004097a3loc_4097a3:
004097a3mov [rbp+68], 64
004097aa
004097aaloc_4097aa:
004097aamov eax, [rbp+68]
004097adlea rsp, [rbp+80]
004097b1pop rbp
004097b2ret
004096e0
004096e0fn_4096e0:
004096e0push rbp
004096e1sub rsp, 80
004096e5mov rbp, rsp
004096e8mov [rbp+40], rbp
004096ecmov [rbp+52], 0
004096f3lea rcx, [rip+222]
004096facall GetModuleHandleW
004096ffmov rcx, rax
00409702lea rdx, [rip+233]
00409709call GetProcAddress
0040970etest rax, rax
00409711je 0x4097a3
00409717xor ecx, ecx
00409719lea rdx, [rbp+52]
0040971dcall GetLogicalProcessorInformation
00409722test eax, eax
00409724jne 0x4097a3
00409726call GetLastError
0040972bcmp eax, 122
0040972ejne 0x4097a3
00409730mov ecx, [rbp+52]
00409733call fn_405700
00409738mov [rbp+72], rax
0040973cnop
0040973dmov rcx, [rbp+72]
00409741lea rdx, [rbp+52]
00409745call GetLogicalProcessorInformation
0040974amov rax, [rbp+72]
0040974emov [rbp+56], rax
00409752cmp [rbp+52], 0
00409756jbe 0x409789
00409758
00409758loc_409758:
00409758mov rax, [rbp+56]
0040975ccmp [rax+8], 2
00409761jne 0x40977a
00409763mov rax, [rbp+56]
00409767cmp [rax+16], 1
0040976bjne 0x40977a
0040976dmov rax, [rbp+56]
00409771movzx eax, [rax+18]
00409775mov [rbp+68], eax
00409778jmp 0x409796
0040977a
0040977aloc_40977a:
0040977aadd [rbp+56], 32
0040977fsub [rbp+52], 32
00409783cmp [rbp+52], 0
00409787ja 0x409758
00409789
00409789loc_409789:
00409789nop
0040978anop
0040978bmov rcx, [rbp+72]
0040978fcall fn_405730
00409794jmp 0x4097a3
00409796
00409796loc_409796:
00409796xor ecx, ecx
00409798mov rdx, [rbp+40]
0040979ccall fn_4097c0
004097a1jmp 0x4097aa
004097a3
004097a3loc_4097a3:
004097a3mov [rbp+68], 64
004097aa
004097aaloc_4097aa:
004097aamov eax, [rbp+68]
004097adlea rsp, [rbp+80]
004097b1pop rbp
004097b2ret
004096e0
004097b3
004097b3 48 8d 44 20 00 48 8d 04 05 00 00 00 00 H.D .H.......
004097b3 48 8d 44 20 00 48 8d 04 05 00 00 00 00 H.D .H.......
004097c0
004097c0fn_4097c0:
004097c0push rbp
004097c1sub rsp, 32
004097c5mov rbp, rsp
004097c8mov rcx, [rdx+72]
004097cccall fn_405730
004097d1lea rsp, [rbp+32]
004097d5pop rbp
004097d6ret
004097c0
004097c0fn_4097c0:
004097c0push rbp
004097c1sub rsp, 32
004097c5mov rbp, rsp
004097c8mov rcx, [rdx+72]
004097cccall fn_405730
004097d1lea rsp, [rbp+32]
004097d5pop rbp
004097d6ret
004097c0
004097d7
004097d7 00 6b 00 65 00 72 00 6e 00 .k.e.r.n.
004097e0 65 00 6c 00 33 00 32 00 2e 00 64 00 6c 00 6c 00 e.l.3.2...d.l.l.
004097f0 00 00 47 65 74 4c 6f 67 69 63 61 6c 50 72 6f 63 ..GetLogicalProc
00409800 65 73 73 6f 72 49 6e 66 6f 72 6d 61 74 69 6f 6e essorInformation
00409810 00 cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc ................
004097d7 00 6b 00 65 00 72 00 6e 00 .k.e.r.n.
004097e0 65 00 6c 00 33 00 32 00 2e 00 64 00 6c 00 6c 00 e.l.3.2...d.l.l.
004097f0 00 00 47 65 74 4c 6f 67 69 63 61 6c 50 72 6f 63 ..GetLogicalProc
00409800 65 73 73 6f 72 49 6e 66 6f 72 6d 61 74 69 6f 6e essorInformation
00409810 00 cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc ................
00409820
00409820fn_409820:
00409820push rbx
00409821sub rsp, 32
00409825mov ebx, [rcx+8]
00409828call GetCurrentThreadId
0040982dcmp ebx, eax
0040982fje 0x409838
00409831mov cl, 25
00409833call fn_405a20
00409838
00409838loc_409838:
00409838mov eax, ebx
0040983aadd rsp, 32
0040983epop rbx
0040983fret
00409820
00409820fn_409820:
00409820push rbx
00409821sub rsp, 32
00409825mov ebx, [rcx+8]
00409828call GetCurrentThreadId
0040982dcmp ebx, eax
0040982fje 0x409838
00409831mov cl, 25
00409833call fn_405a20
00409838
00409838loc_409838:
00409838mov eax, ebx
0040983aadd rsp, 32
0040983epop rbx
0040983fret
00409820
00409840
00409840fn_409840:
00409840sub rsp, 40
00409844cmp [rip+0x5b7b5], 0
0040984bjne 0x409859
0040984dcall fn_4096e0
00409852lock xchg [rip+0x5b7a7], eax
00409859
00409859loc_409859:
00409859cmp [rip+0x5b840], 1
00409860jle 0x409877
00409862cmp [rip+0x5b79b], 0
00409869jne 0x409877
0040986bmov eax, 1000
00409870lock xchg [rip+0x5b78d], eax
00409877
00409877loc_409877:
00409877cmp [rip+0x5b782], 48
0040987ejle 0x40988e
00409880movsxd rcx, [rip+0x5b779]
00409887call fn_4046b0
0040988cjmp 0x409898
0040988e
0040988eloc_40988e:
0040988emov ecx, 48
00409893call fn_4046b0
00409898
00409898loc_409898:
00409898mov ecx, [rip+0x5b766]
0040989emov [rax+24], ecx
004098a1add rsp, 40
004098a5ret
00409840
00409840fn_409840:
00409840sub rsp, 40
00409844cmp [rip+0x5b7b5], 0
0040984bjne 0x409859
0040984dcall fn_4096e0
00409852lock xchg [rip+0x5b7a7], eax
00409859
00409859loc_409859:
00409859cmp [rip+0x5b840], 1
00409860jle 0x409877
00409862cmp [rip+0x5b79b], 0
00409869jne 0x409877
0040986bmov eax, 1000
00409870lock xchg [rip+0x5b78d], eax
00409877
00409877loc_409877:
00409877cmp [rip+0x5b782], 48
0040987ejle 0x40988e
00409880movsxd rcx, [rip+0x5b779]
00409887call fn_4046b0
0040988cjmp 0x409898
0040988e
0040988eloc_40988e:
0040988emov ecx, 48
00409893call fn_4046b0
00409898
00409898loc_409898:
00409898mov ecx, [rip+0x5b766]
0040989emov [rax+24], ecx
004098a1add rsp, 40
004098a5ret
00409840
004098a6
004098a6 // align 0x10
004098a6 // align 0x10
004098b0
004098b0fn_4098b0:
004098b0sub rsp, 40
004098b4call fn_409d30
004098b9mov rcx, [rax]
004098bcand rcx, -2
004098c0test rcx, rcx
004098c3je 0x4098d1
004098c5mov [rax], 0
004098cccall fn_4098e0
004098d1
004098d1loc_4098d1:
004098d1add rsp, 40
004098d5ret
004098b0
004098b0fn_4098b0:
004098b0sub rsp, 40
004098b4call fn_409d30
004098b9mov rcx, [rax]
004098bcand rcx, -2
004098c0test rcx, rcx
004098c3je 0x4098d1
004098c5mov [rax], 0
004098cccall fn_4098e0
004098d1
004098d1loc_4098d1:
004098d1add rsp, 40
004098d5ret
004098b0
004098d6
004098d6 // align 0x10
004098d6 // align 0x10
004098e0
004098e0fn_4098e0:
004098e0push rsi
004098e1push rbx
004098e2sub rsp, 40
004098e6mov rbx, rcx
004098e9cmp [rip+0x5c09f], 0
004098f1je 0x409908
004098f3cmp [rbx+16], 0
004098f8je 0x409908
004098famov rcx, [rbx+16]
004098femov rsi, [rip+0x5c08b]
00409905call [rsi+8]
00409908
00409908loc_409908:
00409908mov rcx, rbx
0040990bcall fn_404120
00409910add rsp, 40
00409914pop rbx
00409915pop rsi
00409916ret
004098e0
004098e0fn_4098e0:
004098e0push rsi
004098e1push rbx
004098e2sub rsp, 40
004098e6mov rbx, rcx
004098e9cmp [rip+0x5c09f], 0
004098f1je 0x409908
004098f3cmp [rbx+16], 0
004098f8je 0x409908
004098famov rcx, [rbx+16]
004098femov rsi, [rip+0x5c08b]
00409905call [rsi+8]
00409908
00409908loc_409908:
00409908mov rcx, rbx
0040990bcall fn_404120
00409910add rsp, 40
00409914pop rbx
00409915pop rsi
00409916ret
004098e0
00409917
00409917 // align 0x10
00409917 // align 0x10
00409920
00409920fn_409920:
00409920push rbx
00409921sub rsp, 32
00409925mov rbx, rcx
00409928cmp [rip+0x5c060], 0
00409930jne 0x409939
00409932mov cl, 26
00409934call fn_405a20
00409939
00409939loc_409939:
00409939mov rcx, rbx
0040993ccall fn_409d40
00409941mov rcx, rax
00409944or edx, -1
00409947call fn_409a50
0040994cadd rsp, 32
00409950pop rbx
00409951ret
00409920
00409920fn_409920:
00409920push rbx
00409921sub rsp, 32
00409925mov rbx, rcx
00409928cmp [rip+0x5c060], 0
00409930jne 0x409939
00409932mov cl, 26
00409934call fn_405a20
00409939
00409939loc_409939:
00409939mov rcx, rbx
0040993ccall fn_409d40
00409941mov rcx, rax
00409944or edx, -1
00409947call fn_409a50
0040994cadd rsp, 32
00409950pop rbx
00409951ret
00409920
00409952
00409952 // align 0x10
00409952 // align 0x10
00409960
00409960fn_409960:
00409960push rsi
00409961push rbx
00409962sub rsp, 40
00409966mov rbx, rcx
00409969mov esi, edx
0040996bcmp [rip+0x5c01d], 0
00409973jne 0x40997c
00409975mov cl, 26
00409977call fn_405a20
0040997c
0040997cloc_40997c:
0040997cmov rcx, rbx
0040997fcall fn_409d40
00409984mov rcx, rax
00409987mov edx, esi
00409989call fn_409a50
0040998eadd rsp, 40
00409992pop rbx
00409993pop rsi
00409994ret
00409960
00409960fn_409960:
00409960push rsi
00409961push rbx
00409962sub rsp, 40
00409966mov rbx, rcx
00409969mov esi, edx
0040996bcmp [rip+0x5c01d], 0
00409973jne 0x40997c
00409975mov cl, 26
00409977call fn_405a20
0040997c
0040997cloc_40997c:
0040997cmov rcx, rbx
0040997fcall fn_409d40
00409984mov rcx, rax
00409987mov edx, esi
00409989call fn_409a50
0040998eadd rsp, 40
00409992pop rbx
00409993pop rsi
00409994ret
00409960
00409995
00409995 // align 0x10
00409995 // align 0x10
004099a0
004099a0fn_4099a0:
004099a0push rbp
004099a1sub rsp, 64
004099a5mov rbp, rsp
004099a8mov [rbp+40], rbp
004099acmov [rbp+80], rcx
004099b0mov rax, [rbp+80]
004099b4lea rcx, [rax+40]
004099b8call fn_409680
004099bdnop
004099bemov rax, [rbp+80]
004099c2mov rax, [rax+32]
004099c6mov [rbp+56], rax
004099cacmp [rbp+56], 0
004099cfje 0x4099de
004099d1mov rax, [rbp+56]
004099d5mov rax, [rax]
004099d8cmp rax, [rbp+56]
004099dcjne 0x4099ec
004099de
004099deloc_4099de:
004099demov rax, [rbp+80]
004099e2mov [rax+32], 0
004099eajmp 0x409a11
004099ec
004099ecloc_4099ec:
004099ecmov rax, [rbp+80]
004099f0mov rcx, [rax+32]
004099f4mov rax, [rcx]
004099f7mov [rbp+56], rax
004099fbmov rax, [rax]
004099femov [rcx], rax
00409a01nop
00409a02mov rax, [rbp+80]
00409a06lea rcx, [rax+40]
00409a0acall fn_4096c0
00409a0fjmp 0x409a1c
00409a11
00409a11loc_409a11:
00409a11xor ecx, ecx
00409a13mov rdx, [rbp+40]
00409a17call fn_409a30
00409a1c
00409a1cloc_409a1c:
00409a1cmov rax, [rbp+56]
00409a20lea rsp, [rbp+64]
00409a24pop rbp
00409a25ret
004099a0
004099a0fn_4099a0:
004099a0push rbp
004099a1sub rsp, 64
004099a5mov rbp, rsp
004099a8mov [rbp+40], rbp
004099acmov [rbp+80], rcx
004099b0mov rax, [rbp+80]
004099b4lea rcx, [rax+40]
004099b8call fn_409680
004099bdnop
004099bemov rax, [rbp+80]
004099c2mov rax, [rax+32]
004099c6mov [rbp+56], rax
004099cacmp [rbp+56], 0
004099cfje 0x4099de
004099d1mov rax, [rbp+56]
004099d5mov rax, [rax]
004099d8cmp rax, [rbp+56]
004099dcjne 0x4099ec
004099de
004099deloc_4099de:
004099demov rax, [rbp+80]
004099e2mov [rax+32], 0
004099eajmp 0x409a11
004099ec
004099ecloc_4099ec:
004099ecmov rax, [rbp+80]
004099f0mov rcx, [rax+32]
004099f4mov rax, [rcx]
004099f7mov [rbp+56], rax
004099fbmov rax, [rax]
004099femov [rcx], rax
00409a01nop
00409a02mov rax, [rbp+80]
00409a06lea rcx, [rax+40]
00409a0acall fn_4096c0
00409a0fjmp 0x409a1c
00409a11
00409a11loc_409a11:
00409a11xor ecx, ecx
00409a13mov rdx, [rbp+40]
00409a17call fn_409a30
00409a1c
00409a1cloc_409a1c:
00409a1cmov rax, [rbp+56]
00409a20lea rsp, [rbp+64]
00409a24pop rbp
00409a25ret
004099a0
00409a26
00409a26 48 90 48 8d 04 05 00 00 00 00 H.H.......
00409a26 48 90 48 8d 04 05 00 00 00 00 H.H.......
00409a30
00409a30fn_409a30:
00409a30push rbp
00409a31sub rsp, 32
00409a35mov rbp, rsp
00409a38mov rax, [rdx+80]
00409a3clea rcx, [rax+40]
00409a40call fn_4096c0
00409a45lea rsp, [rbp+32]
00409a49pop rbp
00409a4aret
00409a30
00409a30fn_409a30:
00409a30push rbp
00409a31sub rsp, 32
00409a35mov rbp, rsp
00409a38mov rax, [rdx+80]
00409a3clea rcx, [rax+40]
00409a40call fn_4096c0
00409a45lea rsp, [rbp+32]
00409a49pop rbp
00409a4aret
00409a30
00409a4b
00409a4b // align 0x10
00409a4b // align 0x10
00409a50
00409a50fn_409a50:
00409a50push rbp
00409a51push r14
00409a53push r13
00409a55push rdi
00409a56push rsi
00409a57push rbx
00409a58sub rsp, 72
00409a5cmov rbp, rsp
00409a5fmov [rbp+40], rcx
00409a63mov ebx, edx
00409a65mov rax, [rbp+40]
00409a69mov r13l, [rax+24]
00409a6d
00409a6dloc_409a6d:
00409a6dmov rcx, [rbp+40]
00409a71call fn_40a0a0
00409a76mov esi, eax
00409a79test sil, sil
00409a7cjne 0x409c05
00409a82test ebx, ebx
00409a84je 0x409c05
00409a8axor edi, edi
00409a8dtest r13l, r13l
00409a90jle 0x409b31
00409a96call GetTickCount
00409a9bmov r14l, eax
00409a9emov [rbp+60], 0
00409aa5test r13l, r13l
00409aa8jle 0x409b15
00409aaa
00409aaaloc_409aaa:
00409aaacmp ebx, -1
00409aadje 0x409ac3
00409aafcall GetTickCount
00409ab4sub eax, r14l
00409ab7cmp eax, ebx
00409ab9jb 0x409ac3
00409abbxor esi, esi
00409abejmp 0x409c05
00409ac3
00409ac3loc_409ac3:
00409ac3mov rax, [rbp+40]
00409ac7cmp [rax], 1
00409acajg 0x409b15
00409accmov rax, [rbp+40]
00409ad0cmp [rax], 0
00409ad3jne 0x409b03
00409ad5xor eax, eax
00409ad7mov ecx, 1
00409adcmov rdx, [rbp+40]
00409ae0lock cmpxchg [rdx], ecx
00409ae4test eax, eax
00409ae6jne 0x409b03
00409ae8call GetCurrentThreadId
00409aedmov rcx, [rbp+40]
00409af1mov [rcx+8], eax
00409af4mov [rcx+4], 1
00409afbmov sil, 1
00409afejmp 0x409c05
00409b03
00409b03loc_409b03:
00409b03lea rcx, [rbp+60]
00409b07call fn_4095f0
00409b0csub r13l, 1
00409b10test r13l, r13l
00409b13jg 0x409aaa
00409b15
00409b15loc_409b15:
00409b15nop
00409b16cmp ebx, -1
00409b19je 0x409b31
00409b1bcall GetTickCount
00409b20sub eax, r14l
00409b23cmp eax, ebx
00409b25jb 0x409b2f
00409b27xor esi, esi
00409b2ajmp 0x409c05
00409b2f
00409b2floc_409b2f:
00409b2fsub ebx, eax
00409b31
00409b31loc_409b31:
00409b31mov rax, [rbp+40]
00409b35mov ecx, [rax]
00409b37test ecx, ecx
00409b39je 0x409a6d
00409b3fmov edx, ecx
00409b41add edx, 2
00409b44mov eax, ecx
00409b46mov r8, [rbp+40]
00409b4alock cmpxchg [r8], edx
00409b4fcmp eax, ecx
00409b51jne 0x409b31
00409b53nop
00409b54
00409b54loc_409b54:
00409b54call GetTickCount
00409b59mov r14l, eax
00409b5cmov rcx, [rbp+40]
00409b60call fn_409cb0
00409b65xor ecx, ecx
00409b67mov rdx, rax
00409b6amov r8l, ebx
00409b6dmov rax, [rip+0x5be1c]
00409b74call [rax+32]
00409b77test eax, eax
00409b79sete sil
00409b7dcmp ebx, -1
00409b80je 0x409b94
00409b82call GetTickCount
00409b87sub eax, r14l
00409b8acmp eax, ebx
00409b8cjae 0x409b92
00409b8esub ebx, eax
00409b90jmp 0x409b94
00409b92
00409b92loc_409b92:
00409b92xor ebx, ebx
00409b94
00409b94loc_409b94:
00409b94test sil, sil
00409b97je 0x409bc6
00409b99
00409b99loc_409b99:
00409b99mov rax, [rbp+40]
00409b9dmov ecx, [rax]
00409b9fmov eax, ecx
00409ba1test eax, 1
00409ba7jne 0x409bc3
00409ba9mov edx, ecx
00409babsub edx, 2
00409baeor edx, 1
00409bb1mov eax, ecx
00409bb3mov r8, [rbp+40]
00409bb7lock cmpxchg [r8], edx
00409bbccmp eax, ecx
00409bbejne 0x409b99
00409bc0mov dil, 1
00409bc3
00409bc3loc_409bc3:
00409bc3nop
00409bc4jmp 0x409be3
00409bc6
00409bc6loc_409bc6:
00409bc6mov rax, [rbp+40]
00409bcamov ecx, [rax]
00409bccmov edx, ecx
00409bcesub edx, 2
00409bd1mov eax, ecx
00409bd3mov r8, [rbp+40]
00409bd7lock cmpxchg [r8], edx
00409bdccmp eax, ecx
00409bdejne 0x409bc6
00409be0mov dil, 1
00409be3
00409be3loc_409be3:
00409be3test dil, dil
00409be6je 0x409b54
00409becnop
00409bedtest sil, sil
00409bf0je 0x409c05
00409bf2call GetCurrentThreadId
00409bf7mov rcx, [rbp+40]
00409bfbmov [rcx+8], eax
00409bfemov [rcx+4], 1
00409c05
00409c05loc_409c05:
00409c05mov eax, esi
00409c08lea rsp, [rbp+72]
00409c0cpop rbx
00409c0dpop rsi
00409c0epop rdi
00409c0fpop r13
00409c11pop r14
00409c13pop rbp
00409c14ret
00409a50
00409a50fn_409a50:
00409a50push rbp
00409a51push r14
00409a53push r13
00409a55push rdi
00409a56push rsi
00409a57push rbx
00409a58sub rsp, 72
00409a5cmov rbp, rsp
00409a5fmov [rbp+40], rcx
00409a63mov ebx, edx
00409a65mov rax, [rbp+40]
00409a69mov r13l, [rax+24]
00409a6d
00409a6dloc_409a6d:
00409a6dmov rcx, [rbp+40]
00409a71call fn_40a0a0
00409a76mov esi, eax
00409a79test sil, sil
00409a7cjne 0x409c05
00409a82test ebx, ebx
00409a84je 0x409c05
00409a8axor edi, edi
00409a8dtest r13l, r13l
00409a90jle 0x409b31
00409a96call GetTickCount
00409a9bmov r14l, eax
00409a9emov [rbp+60], 0
00409aa5test r13l, r13l
00409aa8jle 0x409b15
00409aaa
00409aaaloc_409aaa:
00409aaacmp ebx, -1
00409aadje 0x409ac3
00409aafcall GetTickCount
00409ab4sub eax, r14l
00409ab7cmp eax, ebx
00409ab9jb 0x409ac3
00409abbxor esi, esi
00409abejmp 0x409c05
00409ac3
00409ac3loc_409ac3:
00409ac3mov rax, [rbp+40]
00409ac7cmp [rax], 1
00409acajg 0x409b15
00409accmov rax, [rbp+40]
00409ad0cmp [rax], 0
00409ad3jne 0x409b03
00409ad5xor eax, eax
00409ad7mov ecx, 1
00409adcmov rdx, [rbp+40]
00409ae0lock cmpxchg [rdx], ecx
00409ae4test eax, eax
00409ae6jne 0x409b03
00409ae8call GetCurrentThreadId
00409aedmov rcx, [rbp+40]
00409af1mov [rcx+8], eax
00409af4mov [rcx+4], 1
00409afbmov sil, 1
00409afejmp 0x409c05
00409b03
00409b03loc_409b03:
00409b03lea rcx, [rbp+60]
00409b07call fn_4095f0
00409b0csub r13l, 1
00409b10test r13l, r13l
00409b13jg 0x409aaa
00409b15
00409b15loc_409b15:
00409b15nop
00409b16cmp ebx, -1
00409b19je 0x409b31
00409b1bcall GetTickCount
00409b20sub eax, r14l
00409b23cmp eax, ebx
00409b25jb 0x409b2f
00409b27xor esi, esi
00409b2ajmp 0x409c05
00409b2f
00409b2floc_409b2f:
00409b2fsub ebx, eax
00409b31
00409b31loc_409b31:
00409b31mov rax, [rbp+40]
00409b35mov ecx, [rax]
00409b37test ecx, ecx
00409b39je 0x409a6d
00409b3fmov edx, ecx
00409b41add edx, 2
00409b44mov eax, ecx
00409b46mov r8, [rbp+40]
00409b4alock cmpxchg [r8], edx
00409b4fcmp eax, ecx
00409b51jne 0x409b31
00409b53nop
00409b54
00409b54loc_409b54:
00409b54call GetTickCount
00409b59mov r14l, eax
00409b5cmov rcx, [rbp+40]
00409b60call fn_409cb0
00409b65xor ecx, ecx
00409b67mov rdx, rax
00409b6amov r8l, ebx
00409b6dmov rax, [rip+0x5be1c]
00409b74call [rax+32]
00409b77test eax, eax
00409b79sete sil
00409b7dcmp ebx, -1
00409b80je 0x409b94
00409b82call GetTickCount
00409b87sub eax, r14l
00409b8acmp eax, ebx
00409b8cjae 0x409b92
00409b8esub ebx, eax
00409b90jmp 0x409b94
00409b92
00409b92loc_409b92:
00409b92xor ebx, ebx
00409b94
00409b94loc_409b94:
00409b94test sil, sil
00409b97je 0x409bc6
00409b99
00409b99loc_409b99:
00409b99mov rax, [rbp+40]
00409b9dmov ecx, [rax]
00409b9fmov eax, ecx
00409ba1test eax, 1
00409ba7jne 0x409bc3
00409ba9mov edx, ecx
00409babsub edx, 2
00409baeor edx, 1
00409bb1mov eax, ecx
00409bb3mov r8, [rbp+40]
00409bb7lock cmpxchg [r8], edx
00409bbccmp eax, ecx
00409bbejne 0x409b99
00409bc0mov dil, 1
00409bc3
00409bc3loc_409bc3:
00409bc3nop
00409bc4jmp 0x409be3
00409bc6
00409bc6loc_409bc6:
00409bc6mov rax, [rbp+40]
00409bcamov ecx, [rax]
00409bccmov edx, ecx
00409bcesub edx, 2
00409bd1mov eax, ecx
00409bd3mov r8, [rbp+40]
00409bd7lock cmpxchg [r8], edx
00409bdccmp eax, ecx
00409bdejne 0x409bc6
00409be0mov dil, 1
00409be3
00409be3loc_409be3:
00409be3test dil, dil
00409be6je 0x409b54
00409becnop
00409bedtest sil, sil
00409bf0je 0x409c05
00409bf2call GetCurrentThreadId
00409bf7mov rcx, [rbp+40]
00409bfbmov [rcx+8], eax
00409bfemov [rcx+4], 1
00409c05
00409c05loc_409c05:
00409c05mov eax, esi
00409c08lea rsp, [rbp+72]
00409c0cpop rbx
00409c0dpop rsi
00409c0epop rdi
00409c0fpop r13
00409c11pop r14
00409c13pop rbp
00409c14ret
00409a50
00409c15
00409c15 // align 0x10
00409c15 // align 0x10
00409c20
00409c20fn_409c20:
00409c20push rbx
00409c21sub rsp, 32
00409c25mov rbx, rcx
00409c28mov rcx, rbx
00409c2bcall fn_409820
00409c30lea rax, [rbx+4]
00409c34sub [rax], 1
00409c37cmp [rbx+4], 0
00409c3bjne 0x409c78
00409c3dmov [rbx+8], 0
00409c44
00409c44loc_409c44:
00409c44mov ecx, [rbx]
00409c46mov edx, ecx
00409c48sub edx, 1
00409c4bmov eax, ecx
00409c4dlock cmpxchg [rbx], edx
00409c51cmp eax, ecx
00409c53jne 0x409c44
00409c55test ecx, -2
00409c5bje 0x409c77
00409c5dmov rcx, rbx
00409c60call fn_409cb0
00409c65mov rcx, rax
00409c68xor edx, edx
00409c6axor r8, r8
00409c6dmov rax, [rip+0x5bd1c]
00409c74call [rax+32]
00409c77
00409c77loc_409c77:
00409c77nop
00409c78
00409c78loc_409c78:
00409c78add rsp, 32
00409c7cpop rbx
00409c7dret
00409c20
00409c20fn_409c20:
00409c20push rbx
00409c21sub rsp, 32
00409c25mov rbx, rcx
00409c28mov rcx, rbx
00409c2bcall fn_409820
00409c30lea rax, [rbx+4]
00409c34sub [rax], 1
00409c37cmp [rbx+4], 0
00409c3bjne 0x409c78
00409c3dmov [rbx+8], 0
00409c44
00409c44loc_409c44:
00409c44mov ecx, [rbx]
00409c46mov edx, ecx
00409c48sub edx, 1
00409c4bmov eax, ecx
00409c4dlock cmpxchg [rbx], edx
00409c51cmp eax, ecx
00409c53jne 0x409c44
00409c55test ecx, -2
00409c5bje 0x409c77
00409c5dmov rcx, rbx
00409c60call fn_409cb0
00409c65mov rcx, rax
00409c68xor edx, edx
00409c6axor r8, r8
00409c6dmov rax, [rip+0x5bd1c]
00409c74call [rax+32]
00409c77
00409c77loc_409c77:
00409c77nop
00409c78
00409c78loc_409c78:
00409c78add rsp, 32
00409c7cpop rbx
00409c7dret
00409c20
00409c7e
00409c7e // align 0x10
00409c7e // align 0x10
00409c80
00409c80fn_409c80:
00409c80push rbx
00409c81sub rsp, 32
00409c85mov rbx, rcx
00409c88cmp [rip+0x5bd00], 0
00409c90jne 0x409c99
00409c92mov cl, 26
00409c94call fn_405a20
00409c99
00409c99loc_409c99:
00409c99mov rcx, rbx
00409c9ccall fn_409d40
00409ca1mov rcx, rax
00409ca4call fn_409c20
00409ca9add rsp, 32
00409cadpop rbx
00409caeret
00409c80
00409c80fn_409c80:
00409c80push rbx
00409c81sub rsp, 32
00409c85mov rbx, rcx
00409c88cmp [rip+0x5bd00], 0
00409c90jne 0x409c99
00409c92mov cl, 26
00409c94call fn_405a20
00409c99
00409c99loc_409c99:
00409c99mov rcx, rbx
00409c9ccall fn_409d40
00409ca1mov rcx, rax
00409ca4call fn_409c20
00409ca9add rsp, 32
00409cadpop rbx
00409caeret
00409c80
00409caf
00409caf // align 0x10
00409caf // align 0x10
00409cb0
00409cb0fn_409cb0:
00409cb0push r13
00409cb2push rdi
00409cb3push rsi
00409cb4push rbx
00409cb5sub rsp, 40
00409cb9mov rbx, rcx
00409cbcmov edi, 1
00409cc1mov rsi, [rbx+16]
00409cc5test rsi, rsi
00409cc8jne 0x409d1d
00409cca
00409ccaloc_409cca:
00409ccamov rax, [rip+0x5bcbf]
00409cd1call [rax]
00409cd3mov rcx, rax
00409cd6xor eax, eax
00409cd8mov rdx, rcx
00409cdblock cmpxchg [rbx+16], rdx
00409ce1mov rsi, rax
00409ce4test rsi, rsi
00409ce7jne 0x409cee
00409ce9mov rsi, rcx
00409cecjmp 0x409cfe
00409cee
00409ceeloc_409cee:
00409ceetest rcx, rcx
00409cf1je 0x409cfe
00409cf3mov r13, [rip+0x5bc96]
00409cfacall [r13+8]
00409cfe
00409cfeloc_409cfe:
00409cfetest rsi, rsi
00409d01jne 0x409d1d
00409d03mov ecx, edi
00409d05call Sleep
00409d0acmp edi, 512
00409d10jle 0x409d19
00409d12mov edi, 1
00409d17jmp 0x409cca
00409d19
00409d19loc_409d19:
00409d19add edi, edi
00409d1bjmp 0x409cca
00409d1d
00409d1dloc_409d1d:
00409d1dmov rax, rsi
00409d20add rsp, 40
00409d24pop rbx
00409d25pop rsi
00409d26pop rdi
00409d27pop r13
00409d29ret
00409cb0
00409cb0fn_409cb0:
00409cb0push r13
00409cb2push rdi
00409cb3push rsi
00409cb4push rbx
00409cb5sub rsp, 40
00409cb9mov rbx, rcx
00409cbcmov edi, 1
00409cc1mov rsi, [rbx+16]
00409cc5test rsi, rsi
00409cc8jne 0x409d1d
00409cca
00409ccaloc_409cca:
00409ccamov rax, [rip+0x5bcbf]
00409cd1call [rax]
00409cd3mov rcx, rax
00409cd6xor eax, eax
00409cd8mov rdx, rcx
00409cdblock cmpxchg [rbx+16], rdx
00409ce1mov rsi, rax
00409ce4test rsi, rsi
00409ce7jne 0x409cee
00409ce9mov rsi, rcx
00409cecjmp 0x409cfe
00409cee
00409ceeloc_409cee:
00409ceetest rcx, rcx
00409cf1je 0x409cfe
00409cf3mov r13, [rip+0x5bc96]
00409cfacall [r13+8]
00409cfe
00409cfeloc_409cfe:
00409cfetest rsi, rsi
00409d01jne 0x409d1d
00409d03mov ecx, edi
00409d05call Sleep
00409d0acmp edi, 512
00409d10jle 0x409d19
00409d12mov edi, 1
00409d17jmp 0x409cca
00409d19
00409d19loc_409d19:
00409d19add edi, edi
00409d1bjmp 0x409cca
00409d1d
00409d1dloc_409d1d:
00409d1dmov rax, rsi
00409d20add rsp, 40
00409d24pop rbx
00409d25pop rsi
00409d26pop rdi
00409d27pop r13
00409d29ret
00409cb0
00409d2a
00409d2a // align 0x10
00409d2a // align 0x10
00409d30
00409d30fn_409d30:
00409d30mov rax, [rcx]
00409d33movsxd rax, [rax-128]
00409d37lea rax, [rcx+rax-8]
00409d3cret
00409d30
00409d30fn_409d30:
00409d30mov rax, [rcx]
00409d33movsxd rax, [rax-128]
00409d37lea rax, [rcx+rax-8]
00409d3cret
00409d30
00409d3d
00409d3d // align 0x10
00409d3d // align 0x10
00409d40
00409d40fn_409d40:
00409d40push rbp
00409d41push rsi
00409d42push rbx
00409d43sub rsp, 48
00409d47mov rbp, rsp
00409d4amov rax, [rcx]
00409d4dmovsxd rax, [rax-128]
00409d51lea rsi, [rcx+rax-8]
00409d56mov rax, [rsi]
00409d59mov [rbp+40], rax
00409d5dmov rbx, [rbp+40]
00409d61and rbx, -2
00409d65test rbx, rbx
00409d68jne 0x409da7
00409d6acall fn_409840
00409d6fmov rcx, rax
00409d72
00409d72loc_409d72:
00409d72mov rax, [rbp+40]
00409d76and rax, 1
00409d7amov rdx, rcx
00409d7dor rdx, rax
00409d80mov rax, [rbp+40]
00409d84lock cmpxchg [rsi], rdx
00409d89mov rax, [rsi]
00409d8cmov [rbp+40], rax
00409d90mov rbx, [rbp+40]
00409d94and rbx, -2
00409d98test rbx, rbx
00409d9bje 0x409d72
00409d9dcmp rbx, rcx
00409da0je 0x409da7
00409da2call fn_404120
00409da7
00409da7loc_409da7:
00409da7mov rax, rbx
00409daalea rsp, [rbp+48]
00409daepop rbx
00409dafpop rsi
00409db0pop rbp
00409db1ret
00409d40
00409d40fn_409d40:
00409d40push rbp
00409d41push rsi
00409d42push rbx
00409d43sub rsp, 48
00409d47mov rbp, rsp
00409d4amov rax, [rcx]
00409d4dmovsxd rax, [rax-128]
00409d51lea rsi, [rcx+rax-8]
00409d56mov rax, [rsi]
00409d59mov [rbp+40], rax
00409d5dmov rbx, [rbp+40]
00409d61and rbx, -2
00409d65test rbx, rbx
00409d68jne 0x409da7
00409d6acall fn_409840
00409d6fmov rcx, rax
00409d72
00409d72loc_409d72:
00409d72mov rax, [rbp+40]
00409d76and rax, 1
00409d7amov rdx, rcx
00409d7dor rdx, rax
00409d80mov rax, [rbp+40]
00409d84lock cmpxchg [rsi], rdx
00409d89mov rax, [rsi]
00409d8cmov [rbp+40], rax
00409d90mov rbx, [rbp+40]
00409d94and rbx, -2
00409d98test rbx, rbx
00409d9bje 0x409d72
00409d9dcmp rbx, rcx
00409da0je 0x409da7
00409da2call fn_404120
00409da7
00409da7loc_409da7:
00409da7mov rax, rbx
00409daalea rsp, [rbp+48]
00409daepop rbx
00409dafpop rsi
00409db0pop rbp
00409db1ret
00409d40
00409db2
00409db2 // align 0x10
00409db2 // align 0x10
00409dc0
00409dc0fn_409dc0:
00409dc0sub rsp, 40
00409dc4call fn_4099a0
00409dc9test rax, rax
00409dccje 0x409de1
00409dcemov rcx, [rax+16]
00409dd2xor edx, edx
00409dd4xor r8, r8
00409dd7mov rax, [rip+0x5bbb2]
00409ddecall [rax+32]
00409de1
00409de1loc_409de1:
00409de1add rsp, 40
00409de5ret
00409dc0
00409dc0fn_409dc0:
00409dc0sub rsp, 40
00409dc4call fn_4099a0
00409dc9test rax, rax
00409dccje 0x409de1
00409dcemov rcx, [rax+16]
00409dd2xor edx, edx
00409dd4xor r8, r8
00409dd7mov rax, [rip+0x5bbb2]
00409ddecall [rax+32]
00409de1
00409de1loc_409de1:
00409de1add rsp, 40
00409de5ret
00409dc0
00409de6
00409de6 // align 0x10
00409de6 // align 0x10
00409df0
00409df0fn_409df0:
00409df0push rbx
00409df1sub rsp, 32
00409df5mov rbx, rcx
00409df8cmp [rip+0x5bb90], 0
00409e00jne 0x409e09
00409e02mov cl, 26
00409e04call fn_405a20
00409e09
00409e09loc_409e09:
00409e09mov rcx, rbx
00409e0ccall fn_409d40
00409e11mov rcx, rax
00409e14call fn_409dc0
00409e19add rsp, 32
00409e1dpop rbx
00409e1eret
00409df0
00409df0fn_409df0:
00409df0push rbx
00409df1sub rsp, 32
00409df5mov rbx, rcx
00409df8cmp [rip+0x5bb90], 0
00409e00jne 0x409e09
00409e02mov cl, 26
00409e04call fn_405a20
00409e09
00409e09loc_409e09:
00409e09mov rcx, rbx
00409e0ccall fn_409d40
00409e11mov rcx, rax
00409e14call fn_409dc0
00409e19add rsp, 32
00409e1dpop rbx
00409e1eret
00409df0
00409e1f
00409e1f // align 0x10
00409e1f // align 0x10
00409e20
00409e20fn_409e20:
00409e20push rbx
00409e21sub rsp, 32
00409e25mov rbx, rcx
00409e28mov rcx, rbx
00409e2bcall fn_4099a0
00409e30test rax, rax
00409e33je 0x409e55
00409e35
00409e35loc_409e35:
00409e35mov rcx, [rax+16]
00409e39xor edx, edx
00409e3bxor r8, r8
00409e3emov rax, [rip+0x5bb4b]
00409e45call [rax+32]
00409e48mov rcx, rbx
00409e4bcall fn_4099a0
00409e50test rax, rax
00409e53jne 0x409e35
00409e55
00409e55loc_409e55:
00409e55nop
00409e56add rsp, 32
00409e5apop rbx
00409e5bret
00409e20
00409e20fn_409e20:
00409e20push rbx
00409e21sub rsp, 32
00409e25mov rbx, rcx
00409e28mov rcx, rbx
00409e2bcall fn_4099a0
00409e30test rax, rax
00409e33je 0x409e55
00409e35
00409e35loc_409e35:
00409e35mov rcx, [rax+16]
00409e39xor edx, edx
00409e3bxor r8, r8
00409e3emov rax, [rip+0x5bb4b]
00409e45call [rax+32]
00409e48mov rcx, rbx
00409e4bcall fn_4099a0
00409e50test rax, rax
00409e53jne 0x409e35
00409e55
00409e55loc_409e55:
00409e55nop
00409e56add rsp, 32
00409e5apop rbx
00409e5bret
00409e20
00409e5c
00409e5c // align 0x10
00409e5c // align 0x10
00409e60
00409e60fn_409e60:
00409e60push rbx
00409e61sub rsp, 32
00409e65mov rbx, rcx
00409e68cmp [rip+0x5bb20], 0
00409e70jne 0x409e79
00409e72mov cl, 26
00409e74call fn_405a20
00409e79
00409e79loc_409e79:
00409e79mov rcx, rbx
00409e7ccall fn_409d40
00409e81mov rcx, rax
00409e84call fn_409e20
00409e89add rsp, 32
00409e8dpop rbx
00409e8eret
00409e60
00409e60fn_409e60:
00409e60push rbx
00409e61sub rsp, 32
00409e65mov rbx, rcx
00409e68cmp [rip+0x5bb20], 0
00409e70jne 0x409e79
00409e72mov cl, 26
00409e74call fn_405a20
00409e79
00409e79loc_409e79:
00409e79mov rcx, rbx
00409e7ccall fn_409d40
00409e81mov rcx, rax
00409e84call fn_409e20
00409e89add rsp, 32
00409e8dpop rbx
00409e8eret
00409e60
00409e8f
00409e8f // align 0x10
00409e8f // align 0x10
00409e90
00409e90fn_409e90:
00409e90push rbp
00409e91sub rsp, 48
00409e95mov rbp, rsp
00409e98mov [rbp+40], rbp
00409e9cmov [rbp+64], rcx
00409ea0mov [rbp+72], rdx
00409ea4mov rax, [rbp+64]
00409ea8lea rcx, [rax+40]
00409eaccall fn_409680
00409eb1nop
00409eb2mov rax, [rbp+64]
00409eb6mov rax, [rax+32]
00409ebatest rax, rax
00409ebdjne 0x409ed8
00409ebfmov rax, [rbp+64]
00409ec3mov rcx, [rbp+72]
00409ec7mov [rax+32], rcx
00409ecbmov rax, [rbp+72]
00409ecfmov rcx, [rbp+72]
00409ed3mov [rax], rcx
00409ed6jmp 0x409efd
00409ed8
00409ed8loc_409ed8:
00409ed8mov rcx, [rbp+72]
00409edcmov rax, [rax]
00409edfmov [rcx], rax
00409ee2mov rax, [rbp+64]
00409ee6mov rax, [rax+32]
00409eeamov rcx, [rbp+72]
00409eeemov [rax], rcx
00409ef1mov rax, [rbp+64]
00409ef5mov rcx, [rbp+72]
00409ef9mov [rax+32], rcx
00409efd
00409efdloc_409efd:
00409efdnop
00409efemov rax, [rbp+64]
00409f02lea rcx, [rax+40]
00409f06call fn_4096c0
00409f0blea rsp, [rbp+48]
00409f0fpop rbp
00409f10ret
00409e90
00409e90fn_409e90:
00409e90push rbp
00409e91sub rsp, 48
00409e95mov rbp, rsp
00409e98mov [rbp+40], rbp
00409e9cmov [rbp+64], rcx
00409ea0mov [rbp+72], rdx
00409ea4mov rax, [rbp+64]
00409ea8lea rcx, [rax+40]
00409eaccall fn_409680
00409eb1nop
00409eb2mov rax, [rbp+64]
00409eb6mov rax, [rax+32]
00409ebatest rax, rax
00409ebdjne 0x409ed8
00409ebfmov rax, [rbp+64]
00409ec3mov rcx, [rbp+72]
00409ec7mov [rax+32], rcx
00409ecbmov rax, [rbp+72]
00409ecfmov rcx, [rbp+72]
00409ed3mov [rax], rcx
00409ed6jmp 0x409efd
00409ed8
00409ed8loc_409ed8:
00409ed8mov rcx, [rbp+72]
00409edcmov rax, [rax]
00409edfmov [rcx], rax
00409ee2mov rax, [rbp+64]
00409ee6mov rax, [rax+32]
00409eeamov rcx, [rbp+72]
00409eeemov [rax], rcx
00409ef1mov rax, [rbp+64]
00409ef5mov rcx, [rbp+72]
00409ef9mov [rax+32], rcx
00409efd
00409efdloc_409efd:
00409efdnop
00409efemov rax, [rbp+64]
00409f02lea rcx, [rax+40]
00409f06call fn_4096c0
00409f0blea rsp, [rbp+48]
00409f0fpop rbp
00409f10ret
00409e90
00409f11
00409f11 48 8d 80 00 00 00 00 48 8d 04 05 00 00 00 00 H......H.......
00409f11 48 8d 80 00 00 00 00 48 8d 04 05 00 00 00 00 H......H.......
00409f20
00409f20fn_409f20:
00409f20push rbp
00409f21sub rsp, 32
00409f25mov rbp, rsp
00409f28mov rax, [rdx+64]
00409f2clea rcx, [rax+40]
00409f30call fn_4096c0
00409f35lea rsp, [rbp+32]
00409f39pop rbp
00409f3aret
00409f20
00409f20fn_409f20:
00409f20push rbp
00409f21sub rsp, 32
00409f25mov rbp, rsp
00409f28mov rax, [rdx+64]
00409f2clea rcx, [rax+40]
00409f30call fn_4096c0
00409f35lea rsp, [rbp+32]
00409f39pop rbp
00409f3aret
00409f20
00409f3b
00409f3b // align 0x10
00409f3b // align 0x10
00409f40
00409f40fn_409f40:
00409f40push rbp
00409f41sub rsp, 64
00409f45mov rbp, rsp
00409f48mov [rbp+40], rbp
00409f4cmov [rbp+80], rcx
00409f50mov [rbp+88], rdx
00409f54mov rax, [rbp+80]
00409f58cmp [rax+32], 0
00409f5dje 0x40a01f
00409f63mov rax, [rbp+80]
00409f67lea rcx, [rax+40]
00409f6bcall fn_409680
00409f70nop
00409f71mov rax, [rbp+80]
00409f75mov rax, [rax+32]
00409f79test rax, rax
00409f7cje 0x40a011
00409f82mov [rbp+56], rax
00409f86mov rax, [rbp+56]
00409f8amov rax, [rax]
00409f8dmov [rbp+48], rax
00409f91jmp 0x409fc0
00409f93
00409f93loc_409f93:
00409f93mov rax, [rbp+48]
00409f97cmp rax, [rbp+88]
00409f9bjne 0x409fad
00409f9dmov rax, [rbp+56]
00409fa1mov rcx, [rbp+48]
00409fa5mov rcx, [rcx]
00409fa8mov [rax], rcx
00409fabjmp 0x409fce
00409fad
00409fadloc_409fad:
00409fadmov rax, [rbp+48]
00409fb1mov [rbp+56], rax
00409fb5mov rax, [rbp+48]
00409fb9mov rax, [rax]
00409fbcmov [rbp+48], rax
00409fc0
00409fc0loc_409fc0:
00409fc0mov rax, [rbp+80]
00409fc4mov rcx, [rbp+48]
00409fc8cmp rcx, [rax+32]
00409fccjne 0x409f93
00409fce
00409fceloc_409fce:
00409fcenop
00409fcfmov rax, [rbp+80]
00409fd3mov rcx, [rbp+48]
00409fd7cmp rcx, [rax+32]
00409fdbjne 0x40a011
00409fddmov rax, [rbp+48]
00409fe1cmp rax, [rbp+88]
00409fe5jne 0x40a011
00409fe7mov rax, [rbp+48]
00409febmov rax, [rax]
00409feecmp rax, [rbp+48]
00409ff2jne 0x40a002
00409ff4mov rax, [rbp+80]
00409ff8mov [rax+32], 0
0040a000jmp 0x40a011
0040a002
0040a002loc_40a002:
0040a002mov rcx, [rbp+80]
0040a006mov [rcx+32], rax
0040a00amov rcx, [rbp+56]
0040a00emov [rcx], rax
0040a011
0040a011loc_40a011:
0040a011nop
0040a012mov rax, [rbp+80]
0040a016lea rcx, [rax+40]
0040a01acall fn_4096c0
0040a01f
0040a01floc_40a01f:
0040a01flea rsp, [rbp+64]
0040a023pop rbp
0040a024ret
00409f40
00409f40fn_409f40:
00409f40push rbp
00409f41sub rsp, 64
00409f45mov rbp, rsp
00409f48mov [rbp+40], rbp
00409f4cmov [rbp+80], rcx
00409f50mov [rbp+88], rdx
00409f54mov rax, [rbp+80]
00409f58cmp [rax+32], 0
00409f5dje 0x40a01f
00409f63mov rax, [rbp+80]
00409f67lea rcx, [rax+40]
00409f6bcall fn_409680
00409f70nop
00409f71mov rax, [rbp+80]
00409f75mov rax, [rax+32]
00409f79test rax, rax
00409f7cje 0x40a011
00409f82mov [rbp+56], rax
00409f86mov rax, [rbp+56]
00409f8amov rax, [rax]
00409f8dmov [rbp+48], rax
00409f91jmp 0x409fc0
00409f93
00409f93loc_409f93:
00409f93mov rax, [rbp+48]
00409f97cmp rax, [rbp+88]
00409f9bjne 0x409fad
00409f9dmov rax, [rbp+56]
00409fa1mov rcx, [rbp+48]
00409fa5mov rcx, [rcx]
00409fa8mov [rax], rcx
00409fabjmp 0x409fce
00409fad
00409fadloc_409fad:
00409fadmov rax, [rbp+48]
00409fb1mov [rbp+56], rax
00409fb5mov rax, [rbp+48]
00409fb9mov rax, [rax]
00409fbcmov [rbp+48], rax
00409fc0
00409fc0loc_409fc0:
00409fc0mov rax, [rbp+80]
00409fc4mov rcx, [rbp+48]
00409fc8cmp rcx, [rax+32]
00409fccjne 0x409f93
00409fce
00409fceloc_409fce:
00409fcenop
00409fcfmov rax, [rbp+80]
00409fd3mov rcx, [rbp+48]
00409fd7cmp rcx, [rax+32]
00409fdbjne 0x40a011
00409fddmov rax, [rbp+48]
00409fe1cmp rax, [rbp+88]
00409fe5jne 0x40a011
00409fe7mov rax, [rbp+48]
00409febmov rax, [rax]
00409feecmp rax, [rbp+48]
00409ff2jne 0x40a002
00409ff4mov rax, [rbp+80]
00409ff8mov [rax+32], 0
0040a000jmp 0x40a011
0040a002
0040a002loc_40a002:
0040a002mov rcx, [rbp+80]
0040a006mov [rcx+32], rax
0040a00amov rcx, [rbp+56]
0040a00emov [rcx], rax
0040a011
0040a011loc_40a011:
0040a011nop
0040a012mov rax, [rbp+80]
0040a016lea rcx, [rax+40]
0040a01acall fn_4096c0
0040a01f
0040a01floc_40a01f:
0040a01flea rsp, [rbp+64]
0040a023pop rbp
0040a024ret
00409f40
0040a025
0040a025 48 8b c0 48 8d 04 05 00 00 00 00 H..H.......
0040a025 48 8b c0 48 8d 04 05 00 00 00 00 H..H.......
0040a030
0040a030fn_40a030:
0040a030push rbp
0040a031sub rsp, 32
0040a035mov rbp, rsp
0040a038mov rax, [rdx+80]
0040a03clea rcx, [rax+40]
0040a040call fn_4096c0
0040a045lea rsp, [rbp+32]
0040a049pop rbp
0040a04aret
0040a030
0040a030fn_40a030:
0040a030push rbp
0040a031sub rsp, 32
0040a035mov rbp, rsp
0040a038mov rax, [rdx+80]
0040a03clea rcx, [rax+40]
0040a040call fn_4096c0
0040a045lea rsp, [rbp+32]
0040a049pop rbp
0040a04aret
0040a030
0040a04b
0040a04b // align 0x10
0040a04b // align 0x10
0040a050
0040a050fn_40a050:
0040a050push rbx
0040a051sub rsp, 32
0040a055mov ebx, edx
0040a057cmp [rip+0x5b042], 1
0040a05ejle 0x40a069
0040a060call fn_409d40
0040a065lock xchg [rax+24], ebx
0040a069
0040a069loc_40a069:
0040a069add rsp, 32
0040a06dpop rbx
0040a06eret
0040a050
0040a050fn_40a050:
0040a050push rbx
0040a051sub rsp, 32
0040a055mov ebx, edx
0040a057cmp [rip+0x5b042], 1
0040a05ejle 0x40a069
0040a060call fn_409d40
0040a065lock xchg [rax+24], ebx
0040a069
0040a069loc_40a069:
0040a069add rsp, 32
0040a06dpop rbx
0040a06eret
0040a050
0040a06f
0040a06f // align 0x10
0040a06f // align 0x10
0040a070
0040a070fn_40a070:
0040a070push rbx
0040a071sub rsp, 32
0040a075mov rbx, rcx
0040a078cmp [rip+0x5b910], 0
0040a080jne 0x40a089
0040a082mov cl, 26
0040a084call fn_405a20
0040a089
0040a089loc_40a089:
0040a089mov rcx, rbx
0040a08ccall fn_409d40
0040a091mov rcx, rax
0040a094call fn_40a0a0
0040a099add rsp, 32
0040a09dpop rbx
0040a09eret
0040a070
0040a070fn_40a070:
0040a070push rbx
0040a071sub rsp, 32
0040a075mov rbx, rcx
0040a078cmp [rip+0x5b910], 0
0040a080jne 0x40a089
0040a082mov cl, 26
0040a084call fn_405a20
0040a089
0040a089loc_40a089:
0040a089mov rcx, rbx
0040a08ccall fn_409d40
0040a091mov rcx, rax
0040a094call fn_40a0a0
0040a099add rsp, 32
0040a09dpop rbx
0040a09eret
0040a070
0040a09f
0040a09f // align 0x10
0040a09f // align 0x10
0040a0a0
0040a0a0fn_40a0a0:
0040a0a0push rbx
0040a0a1sub rsp, 32
0040a0a5mov rbx, rcx
0040a0a8call GetCurrentThreadId
0040a0adcmp [rbx+8], eax
0040a0b0jne 0x40a0bd
0040a0b2lea rax, [rbx+4]
0040a0b6add [rax], 1
0040a0b9mov al, 1
0040a0bbjmp 0x40a0e6
0040a0bd
0040a0bdloc_40a0bd:
0040a0bdcmp [rbx], 0
0040a0c0jne 0x40a0e4
0040a0c2xor eax, eax
0040a0c4mov ecx, 1
0040a0c9lock cmpxchg [rbx], ecx
0040a0cdtest eax, eax
0040a0cfjne 0x40a0e4
0040a0d1call GetCurrentThreadId
0040a0d6mov [rbx+8], eax
0040a0d9mov [rbx+4], 1
0040a0e0mov al, 1
0040a0e2jmp 0x40a0e6
0040a0e4
0040a0e4loc_40a0e4:
0040a0e4xor eax, eax
0040a0e6
0040a0e6loc_40a0e6:
0040a0e6add rsp, 32
0040a0eapop rbx
0040a0ebret
0040a0a0
0040a0a0fn_40a0a0:
0040a0a0push rbx
0040a0a1sub rsp, 32
0040a0a5mov rbx, rcx
0040a0a8call GetCurrentThreadId
0040a0adcmp [rbx+8], eax
0040a0b0jne 0x40a0bd
0040a0b2lea rax, [rbx+4]
0040a0b6add [rax], 1
0040a0b9mov al, 1
0040a0bbjmp 0x40a0e6
0040a0bd
0040a0bdloc_40a0bd:
0040a0bdcmp [rbx], 0
0040a0c0jne 0x40a0e4
0040a0c2xor eax, eax
0040a0c4mov ecx, 1
0040a0c9lock cmpxchg [rbx], ecx
0040a0cdtest eax, eax
0040a0cfjne 0x40a0e4
0040a0d1call GetCurrentThreadId
0040a0d6mov [rbx+8], eax
0040a0d9mov [rbx+4], 1
0040a0e0mov al, 1
0040a0e2jmp 0x40a0e6
0040a0e4
0040a0e4loc_40a0e4:
0040a0e4xor eax, eax
0040a0e6
0040a0e6loc_40a0e6:
0040a0e6add rsp, 32
0040a0eapop rbx
0040a0ebret
0040a0a0
0040a0ec
0040a0ec // align 0x10
0040a0ec // align 0x10
0040a0f0
0040a0f0fn_40a0f0:
0040a0f0push rbp
0040a0f1push rbx
0040a0f2sub rsp, 88
0040a0f6mov rbp, rsp
0040a0f9mov [rbp+40], rbp
0040a0fdmov [rbp+112], rcx
0040a101mov [rbp+120], rdx
0040a105mov [rbp+128], r8l
0040a10cmov [rbp+56], 0
0040a114mov rcx, [rbp+120]
0040a118call fn_409820
0040a11dmov [rbp+64], eax
0040a120mov rax, [rip+0x5b869]
0040a127call [rax+16]
0040a12amov [rbp+72], rax
0040a12enop
0040a12fmov rax, [rbp+120]
0040a133mov eax, [rax+4]
0040a136mov [rbp+48], eax
0040a139mov rcx, [rbp+112]
0040a13dlea rdx, [rbp+56]
0040a141call fn_409e90
0040a146mov rax, [rbp+120]
0040a14amov [rax+4], 1
0040a151mov rcx, [rbp+120]
0040a155call fn_409c20
0040a15axor ecx, ecx
0040a15cmov rdx, [rbp+72]
0040a160mov r8l, [rbp+128]
0040a167mov rax, [rip+0x5b822]
0040a16ecall [rax+32]
0040a171test eax, eax
0040a173sete al
0040a176mov [rbp+55], al
0040a179mov rcx, [rbp+120]
0040a17dor edx, -1
0040a180call fn_409a50
0040a185mov rcx, [rbp+112]
0040a189lea rdx, [rbp+56]
0040a18dcall fn_409f40
0040a192mov rax, [rbp+120]
0040a196mov ecx, [rbp+48]
0040a199mov [rax+4], ecx
0040a19cnop
0040a19dmov rcx, [rbp+72]
0040a1a1mov rbx, [rip+0x5b7e8]
0040a1a8call [rbx+24]
0040a1abmovzx rax, [rbp+55]
0040a1b0lea rsp, [rbp+88]
0040a1b4pop rbx
0040a1b5pop rbp
0040a1b6ret
0040a0f0
0040a0f0fn_40a0f0:
0040a0f0push rbp
0040a0f1push rbx
0040a0f2sub rsp, 88
0040a0f6mov rbp, rsp
0040a0f9mov [rbp+40], rbp
0040a0fdmov [rbp+112], rcx
0040a101mov [rbp+120], rdx
0040a105mov [rbp+128], r8l
0040a10cmov [rbp+56], 0
0040a114mov rcx, [rbp+120]
0040a118call fn_409820
0040a11dmov [rbp+64], eax
0040a120mov rax, [rip+0x5b869]
0040a127call [rax+16]
0040a12amov [rbp+72], rax
0040a12enop
0040a12fmov rax, [rbp+120]
0040a133mov eax, [rax+4]
0040a136mov [rbp+48], eax
0040a139mov rcx, [rbp+112]
0040a13dlea rdx, [rbp+56]
0040a141call fn_409e90
0040a146mov rax, [rbp+120]
0040a14amov [rax+4], 1
0040a151mov rcx, [rbp+120]
0040a155call fn_409c20
0040a15axor ecx, ecx
0040a15cmov rdx, [rbp+72]
0040a160mov r8l, [rbp+128]
0040a167mov rax, [rip+0x5b822]
0040a16ecall [rax+32]
0040a171test eax, eax
0040a173sete al
0040a176mov [rbp+55], al
0040a179mov rcx, [rbp+120]
0040a17dor edx, -1
0040a180call fn_409a50
0040a185mov rcx, [rbp+112]
0040a189lea rdx, [rbp+56]
0040a18dcall fn_409f40
0040a192mov rax, [rbp+120]
0040a196mov ecx, [rbp+48]
0040a199mov [rax+4], ecx
0040a19cnop
0040a19dmov rcx, [rbp+72]
0040a1a1mov rbx, [rip+0x5b7e8]
0040a1a8call [rbx+24]
0040a1abmovzx rax, [rbp+55]
0040a1b0lea rsp, [rbp+88]
0040a1b4pop rbx
0040a1b5pop rbp
0040a1b6ret
0040a0f0
0040a1b7
0040a1b7 90 48 8d 04 05 00 00 00 00 .H.......
0040a1b7 90 48 8d 04 05 00 00 00 00 .H.......
0040a1c0
0040a1c0fn_40a1c0:
0040a1c0push rbp
0040a1c1push rbx
0040a1c2sub rsp, 40
0040a1c6mov rbp, rsp
0040a1c9mov rcx, [rdx+72]
0040a1cdmov rbx, [rip+0x5b7bc]
0040a1d4call [rbx+24]
0040a1d7lea rsp, [rbp+40]
0040a1dbpop rbx
0040a1dcpop rbp
0040a1ddret
0040a1c0
0040a1c0fn_40a1c0:
0040a1c0push rbp
0040a1c1push rbx
0040a1c2sub rsp, 40
0040a1c6mov rbp, rsp
0040a1c9mov rcx, [rdx+72]
0040a1cdmov rbx, [rip+0x5b7bc]
0040a1d4call [rbx+24]
0040a1d7lea rsp, [rbp+40]
0040a1dbpop rbx
0040a1dcpop rbp
0040a1ddret
0040a1c0
0040a1de
0040a1de // align 0x10
0040a1de // align 0x10
0040a1e0
0040a1e0fn_40a1e0:
0040a1e0push rsi
0040a1e1push rbx
0040a1e2sub rsp, 40
0040a1e6mov rbx, rcx
0040a1e9mov esi, edx
0040a1ebcmp [rip+0x5b79d], 0
0040a1f3jne 0x40a1fc
0040a1f5mov cl, 26
0040a1f7call fn_405a20
0040a1fc
0040a1fcloc_40a1fc:
0040a1fcmov rcx, rbx
0040a1ffcall fn_409d40
0040a204mov rcx, rax
0040a207mov rdx, rax
0040a20amov r8l, esi
0040a20dcall fn_40a0f0
0040a212add rsp, 40
0040a216pop rbx
0040a217pop rsi
0040a218ret
0040a1e0
0040a1e0fn_40a1e0:
0040a1e0push rsi
0040a1e1push rbx
0040a1e2sub rsp, 40
0040a1e6mov rbx, rcx
0040a1e9mov esi, edx
0040a1ebcmp [rip+0x5b79d], 0
0040a1f3jne 0x40a1fc
0040a1f5mov cl, 26
0040a1f7call fn_405a20
0040a1fc
0040a1fcloc_40a1fc:
0040a1fcmov rcx, rbx
0040a1ffcall fn_409d40
0040a204mov rcx, rax
0040a207mov rdx, rax
0040a20amov r8l, esi
0040a20dcall fn_40a0f0
0040a212add rsp, 40
0040a216pop rbx
0040a217pop rsi
0040a218ret
0040a1e0
Loading..