Function at 0x452708
Capabilities:
Suspend thread

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x35
push 0
push 0
dec ecx
jne 0x452711
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 0x18]
push ecx
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop ecx
mov ebx, ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], eax
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x18]
mov edx, dword [0x43ae78]
call fcn.00405d64
xor eax, eax
push ebp
push 0x4534fd
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0043efc8
test al, al
je 0x452788
cmp byte [0x5288e4], 0
je 0x452788
cmp dword [0x5288dc], 0
jne 0x452788
mov eax, dword [0x524d88]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
jne 0x452788
mov byte [ebp - 0x8d], 1
jmp 0x453489
mov byte [ebp - 0x8d], 0
call fcn.0040e730
fstp qword [0x528990]
wait
mov eax, dword [ebp - 0x20]
mov dword [0x51c0fc], eax
mov eax, 0x528954
call fcn.00405024
mov dword [0x528998], 1
xor eax, eax
push ebp
push 0x453464
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00407608
mov byte [eax + 0xe9], 1
mov ecx, dword [0x528858]
mov dl, 1
mov eax, dword [0x43adb0]
call fcn.004552f4
mov dword [ebp - 0x60], eax
xor eax, eax
push ebp
push 0x453453
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x1c], 0
je 0x452802
mov eax, dword [ebp - 0x1c]
mov dword [0x52890c], eax
test bl, bl
je 0x452815
cmp dword [ebp - 0x1c], 0
je 0x452815
mov eax, dword [ebp - 0x1c]
sub eax, 5
mov dword [ebp - 0x1c], eax
call fcn.0045255c
cmp esi, dword [0x525668]
je 0x45282a
mov ebx, dword [0x525668]
jmp 0x452832
mov ebx, dword [0x5248f8]
mov ebx, dword [ebx]
mov eax, dword [ebp - 0x1c]
mov dword [0x528afc], eax
mov eax, dword [ebp - 0x20]
mov dword [0x528af8], eax
mov eax, dword [ebp - 0xc]
mov dword [0x528b00], eax
xor eax, eax
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x1c], 0
je 0x452870
mov dword [0x528998], 0x65
mov eax, dword [ebp - 0x1c]
call fcn.0043e170
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
je 0x452885
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x27], 0
jne 0x4528cc
mov dword [0x528998], 0x66
mov eax, esi
call fcn.0043e0ac
mov dword [ebp - 0x9c], eax
mov dword [0x528998], 0x67
cmp dword [ebp - 0x9c], 0
je 0x4528bf
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x27], 0
jne 0x4528cc
test ebx, ebx
je 0x4528cc
mov eax, ebx
call fcn.0043e0ac
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x9c]
mov edx, dword [eax + 0x23]
mov eax, dword [0x528868]
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov eax, dword [0x528868]
test byte [eax + 0x205], 0x10
je 0x452940
test ebx, ebx
je 0x452940
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xa0], eax
mov eax, ebx
call fcn.0043e0ac
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
je 0x45291f
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x27], 0
jne 0x45292d
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x9c], eax
jmp 0x452940
mov eax, dword [ebp - 0x9c]
mov edx, dword [eax + 0x23]
mov eax, dword [0x528868]
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov dword [0x528998], 0x68
call fcn.00427884
test al, al
je 0x452970
mov eax, dword [0x528868]
mov dl, byte [0x453514]
not edx
and dl, byte [eax + 0x1e8]
mov eax, dword [0x528868]
call fcn.00429a04
mov eax, dword [ebp - 0x9c]
mov edx, dword [eax + 4]
mov eax, dword [0x528868]
call fcn.00429780
mov eax, dword [0x528868]
cmp byte [eax + 0x1e0], 0
jne 0x4529a3
mov eax, dword [0x528868]
cmp byte [eax + 0x1e1], 0
jne 0x4529a3
xor eax, eax
jmp 0x4529a5
mov al, 1
mov byte [0x528934], al
mov eax, dword [0x528868]
test byte [eax + 0x1c2], 0x10
setne al
mov byte [0x528935], al
push ebp
call fcn.00452500
pop ecx
test al, al
je 0x4529ce
call fcn.00443ef0
mov dword [0x528998], 2
xor ebx, ebx
cmp byte [ebp + 8], 2
je 0x452a89
mov eax, dword [0x528868]
cmp byte [eax + 0x1bd], 0
je 0x452a89
push ebp
call fcn.0044fb18
pop ecx
mov dword [ebp - 0x94], eax
mov dword [0x528998], 0xc9
cmp dword [ebp - 0x94], 0xffffffff
je 0x452a89
lea ecx, [ebp - 0x178]
mov eax, dword [0x528868]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 0x94]
mov ebx, dword [eax]
call dword [ebx + 0xc]
cmp dword [ebp - 0x178], 0
je 0x452a87
push 0x242040
lea ecx, [ebp - 0x17c]
xor edx, edx
mov eax, dword [0x528868]
call fcn.00428470
mov eax, dword [ebp - 0x17c]
call fcn.00405500
push eax
lea ecx, [ebp - 0x180]
mov eax, dword [0x528868]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 0x94]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x180]
call fcn.00405500
push eax
push 0
call sub.user32.dll_MessageBoxA
mov bl, 1
mov dword [0x528998], 3
test bl, bl
jne 0x453405
cmp dword [ebp - 0x14], 0
jne 0x452aa9
call fcn.0043c8c4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x10], 0
jne 0x452abd
call fcn.00407608
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x18], 0
jne 0x452adf
call fcn.00407608
cmp dword [eax + 0x1c], 0
je 0x452adf
call fcn.00407608
lea eax, [eax + 0x1c]
mov dword [ebp - 0x18], eax
mov edx, 0xcc
mov eax, dword [ebp - 0x18]
call fcn.00427124
test al, al
jne 0x452af5
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
mov dword [0x528910], eax
mov dword [0x528998], 4
mov edx, dword [ebp - 0x1c]
add edx, 5
mov eax, dword [0x528940]
call fcn.00442894
test al, al
jne 0x452dc2
cmp dword [0x51c0ec], 0
je 0x452b32
mov eax, dword [0x51c0ec]
call fcn.00404130
mov eax, dword [ebp - 0xc]
push eax
push 1
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov al, byte [0x453518]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.00443ea0
mov dword [0x51c0ec], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x60]
call fcn.0045554c
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0xffffffff
je 0x452b84
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
call fcn.004525fc
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x452c30
inc eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x94], 0
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
je 0x452c1e
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
call fcn.00452670
test al, al
je 0x452c1e
mov eax, dword [0x528858]
call fcn.004555b0
xor eax, eax
push ebp
push 0x452c17
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
mov eax, dword [eax + 4]
push eax
call sub.KERNEL32.DLL_SuspendThread
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x452c1e
mov eax, dword [0x528858]
call fcn.004555bc
ret
inc dword [ebp - 0x94]
dec dword [ebp - 0xa8]
jne 0x452ba4
xor eax, eax
push ebp
push 0x452dbb
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x452d40
inc eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x94], 0
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
je 0x452d2e
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
call fcn.00452670
test al, al
je 0x452d2e
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x174]
xor ecx, ecx
mov edx, 0xcc
call fcn.00403998
mov dword [ebp - 0x174], 0x10007
lea eax, [ebp - 0x174]
push eax
mov eax, dword [ebp - 0x98]
mov eax, dword [eax + 4]
push eax
call sub.KERNEL32.DLL_GetThreadContext
test eax, eax
je 0x452d2e
cmp dword [ebp - 0xbc], 0
je 0x452d2e
cmp dword [ebp - 0xb0], 0
je 0x452d2e
mov eax, dword [ebp - 0x98]
mov eax, dword [eax + 0x14]
push eax
mov eax, dword [ebp - 0x98]
mov eax, dword [eax]
push eax
push 1
push 1
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov al, byte [0x453518]
push eax
mov ecx, dword [ebp - 0xb0]
xor edx, edx
mov eax, dword [0x51c0ec]
call fcn.00443ba8
mov eax, dword [ebp - 0x98]
call fcn.004525fc
inc dword [ebp - 0x94]
dec dword [ebp - 0xa8]
jne 0x452c5e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x452dc2
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x452dba
inc eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x94], 0
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
je 0x452dac
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
call fcn.00452670
test al, al
je 0x452dac
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
mov eax, dword [eax + 4]
push eax
call fcn.00407c64
inc dword [ebp - 0x94]
dec dword [ebp - 0xa8]
jne 0x452d69
ret
mov dword [0x528998], 5
cmp byte [ebp + 8], 2
je 0x453405
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x452e9b
inc eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x94], 0
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
mov ebx, dword [eax]
call sub.KERNEL32.DLL_GetCurrentThreadId_1
cmp ebx, eax
je 0x452e89
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
je 0x452e89
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
call fcn.004526b0
test al, al
je 0x452e89
mov eax, dword [0x528858]
call fcn.004555b0
xor eax, eax
push ebp
push 0x452e82
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
mov eax, dword [eax + 4]
push eax
call sub.KERNEL32.DLL_SuspendThread
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x452e89
mov eax, dword [0x528858]
call fcn.004555bc
ret
inc dword [ebp - 0x94]
dec dword [ebp - 0xa8]
jne 0x452df6
xor eax, eax
push ebp
push 0x4533d5
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [0x528998], 6
mov byte [0x528ada], 1
mov eax, dword [0x528868]
test byte [eax + 0x1c1], 0x10
je 0x452ecd
call fcn.0043eac8
mov dword [0x528998], 7
mov eax, dword [0x51c0ec]
mov dword [0x528b0c], eax
mov eax, dword [0x528868]
mov dword [0x528b10], eax
mov dword [0x528998], 0x2be
push ebp
call fcn.00450b50
pop ecx
mov eax, 0x528b04
mov edx, dword [0x528928]
call fcn.00405078
mov dword [0x528998], 0x2bf
mov eax, dword [0x51c0e8]
mov dword [0x528b08], eax
mov dword [0x528998], 0x2c0
mov dword [0x528924], 0x528af8
call fcn.0044104c
mov dword [0x528998], 0x2c1
call fcn.0043dc50
mov dword [0x528998], 0x2c2
call fcn.0044a7d4
call fcn.0043ed8c
test al, al
je 0x452f8c
lea eax, [ebp - 0x188]
call fcn.0044148c
mov eax, dword [ebp - 0x188]
lea edx, [ebp - 0x184]
call fcn.00441788
mov edx, dword [ebp - 0x184]
mov eax, 0x5288cc
call fcn.00405078
mov eax, 0x528da8
mov edx, dword [0x5288cc]
call fcn.00405078
mov eax, 0x441a0c
call fcn.004427f8
mov dword [0x528998], 8
cmp byte [0x528ada], 0
je 0x45333a
mov eax, dword [0x528868]
test byte [eax + 0x205], 1
je 0x453016
call fcn.0040e730
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x18c]
call fcn.0040f3c4
mov edx, dword [ebp - 0x18c]
mov eax, dword [0x52898c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x52898c]
mov edx, dword [eax]
call dword [edx + 0x14]
mov edx, dword [0x528868]
cmp eax, dword [edx + 0x1fc]
jle 0x453016
xor edx, edx
mov eax, dword [0x52898c]
mov ecx, dword [eax]
call dword [ecx + 0x48]
mov eax, 0x528b24
call fcn.00405024
mov eax, 0x441e74
call fcn.004427f8
cmp dword [0x528b24], 0
je 0x45305b
lea ecx, [ebp - 0x190]
mov dl, 0xd
mov eax, dword [0x528868]
call fcn.00428470
mov edx, dword [ebp - 0x190]
mov ecx, dword [0x528b24]
mov eax, 6
call fcn.004447e4
mov dword [0x528998], 9
inc dword [0x528874]
mov dword [0x528998], 0xa
push ebp
lea eax, [ebp - 0x198]
call fcn.0044e858
pop ecx
mov eax, dword [ebp - 0x198]
lea edx, [ebp - 0x194]
call fcn.0044df18
mov edx, dword [ebp - 0x194]
mov eax, 0x52891c
call fcn.00405078
mov dword [0x528998], 0xb
mov eax, dword [0x528868]
test byte [eax + 0x1e8], 1
je 0x4531e4
mov dword [0x528998], 0xc
mov byte [0x528ad9], 1
call fcn.0043dc50
mov eax, 0x44fba0
call fcn.004427f8
cmp byte [0x528ad9], 0
je 0x453205
mov dword [0x528998], 0xd
mov al, byte [ebp + 0x10]
call fcn.004525b4
sub al, 1
jb 0x45318d
je 0x453121
dec al
jne 0x4531ce
push ebp
mov eax, dword [0x528928]
call fcn.0045231c
pop ecx
jmp 0x4531ce
xor eax, eax
push ebp
push 0x45316e
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x19c]
mov ecx, dword [0x528928]
mov edx, dword [ebp - 0x2c]
call fcn.0040534c
mov edx, dword [ebp - 0x19c]
mov eax, dword [0x5248b0]
call fcn.0040571c
call fcn.00403bbc
call fcn.00403014
mov byte [0x528ad9], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4531ce
xor eax, eax
push ebp
push 0x4531b1
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00449a9c
mov byte [0x528ad9], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4531ce
mov dword [0x528998], 0xe
mov eax, 0x44fbc4
call fcn.004427f8
jmp 0x453205
call fcn.0043efd4
test al, al
je 0x453205
push ebp
lea eax, [ebp - 0x1a0]
call fcn.00443f78
mov eax, dword [ebp - 0x1a0]
call fcn.0045231c
pop ecx
call fcn.00444e68
call fcn.004524bc
test al, al
je 0x453229
lea eax, [ebp - 0x1a4]
call fcn.004412f4
mov eax, dword [ebp - 0x1a4]
call fcn.0044aebc
call fcn.0044af4c
mov dword [0x528998], 0xf
mov eax, dword [0x528868]
test byte [eax + 0x1c1], 4
je 0x4532de
call fcn.00440f7c
xor eax, eax
push ebp
push 0x453293
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xa4]
push eax
mov eax, dword [0x528b40]
call fcn.0043701c
mov ecx, eax
dec ecx
mov edx, 0x453540
mov eax, dword [0x528b40]
call fcn.00436df8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45329a
call fcn.00441030
ret
mov eax, dword [0x528868]
cmp byte [eax + 0x1c0], 0
je 0x4532f1
call fcn.0044f9b0
cmp byte [0x528936], 0
je 0x453304
mov eax, dword [0x528928]
call fcn.0043deb0
mov dword [0x528998], 0x10
call fcn.004524bc
test al, al
je 0x45331c
call fcn.0044dd6c
call fcn.004524bc
test al, al
je 0x453333
mov eax, dword [0x528868]
test byte [eax + 0x1c2], 0x80
jne 0x453341
call fcn.0044dda8
jmp 0x453341
mov byte [ebp - 0x8d], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4533df
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x4533d4
inc eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x94], 0
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
mov ebx, dword [eax]
call sub.KERNEL32.DLL_GetCurrentThreadId_1
cmp ebx, eax
je 0x4533c6
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
je 0x4533c6
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
call fcn.004526b0
test al, al
je 0x4533c6
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
call fcn.0045557c
mov eax, dword [eax + 4]
push eax
call fcn.00407c64
inc dword [ebp - 0x94]
dec dword [ebp - 0xa8]
jne 0x45336a
ret
mov dword [0x528998], 0x12
cmp byte [ebp + 8], 2
je 0x453431
call fcn.004524bc
test al, al
je 0x45342c
mov eax, dword [0x528868]
test byte [eax + 0x1c2], 0x80
jne 0x453431
call fcn.0044deac
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45345a
mov eax, dword [ebp - 0x60]
call fcn.00404130
call fcn.00407608
mov byte [eax + 0xe9], 0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x453504
lea eax, [ebp - 0x1b0]
mov edx, 0xf
call fcn.00405048
lea eax, [ebp - 0xa4]
call fcn.00405024
lea eax, [ebp - 0x8c]
call fcn.00405024
lea eax, [ebp - 0x6c]
call fcn.00405024
lea eax, [ebp - 0x5c]
call fcn.00405024
lea eax, [ebp - 0x54]
mov edx, 3
call fcn.00405048
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.00405048
lea eax, [ebp - 0x24]
call fcn.00405024
lea eax, [ebp - 0x18]
mov edx, dword [0x43ae78]
call fcn.00405c20
ret