Function at 0x456770
Capabilities:
Resume thread
Suspend thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4acf44
mov eax, dword fs:[0]
push eax
sub esp, 0x620
mov eax, dword [0x4dc6e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
push edi
mov dword [ebp - 0x5c8], eax
call fcn.004543e0
test eax, eax
je 0x456d29
mov dword [ebp - 0x5c4], 0
mov eax, dword [ebx + 0x1c]
lea edx, [ebp - 0x5c4]
push edx
push edi
push eax
mov ecx, dword [eax]
mov dword [ebp - 4], 0
call dword [ecx + 0x3c]
cmp dword [ebp - 0x5c4], 0
push edi
push 1
push 0x1f03ff
jne 0x45680e
call dword [sym.imp.KERNEL32.dll_OpenThread]
mov esi, eax
test esi, esi
je 0x456807
push esi
call dword [sym.imp.KERNEL32.dll_ResumeThread]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
jmp 0x456d10
call dword [sym.imp.KERNEL32.dll_OpenThread]
mov esi, eax
test esi, esi
je 0x456828
push esi
call dword [sym.imp.KERNEL32.dll_SuspendThread]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x5c4]
xor ecx, ecx
mov dword [ebp - 0x5b0], ecx
test eax, eax
je 0x45685e
mov ecx, dword [eax]
lea edx, [ebp - 0x5b0]
push edx
push 0x4bd6d0
push eax
call dword [ecx]
mov ecx, dword [ebp - 0x5b0]
xor edx, edx
test eax, eax
cmovs ecx, edx
mov dword [ebp - 0x5b0], ecx
test ecx, ecx
jne 0x456871
push edi
mov ecx, ebx
call fcn.00455210
xor ebx, ebx
jmp 0x456cfc
mov dword [ebp - 0x5c0], 0
mov eax, dword [ecx]
lea edx, [ebp - 0x5c0]
push edx
push ecx
mov byte [ebp - 4], 2
call dword [eax + 0xc]
test eax, eax
je 0x45689f
push edi
mov ecx, ebx
call fcn.00455210
xor ebx, ebx
jmp 0x456ce8
mov dword [ebp - 0x5ec], 0
mov dword [ebp - 0x5e8], 0
mov dword [ebp - 0x624], 0
mov dword [ebp - 0x620], 0
mov dword [ebp - 0x61c], 0
mov dword [ebp - 0x618], 0
mov dword [ebp - 0x614], 0
mov dword [ebp - 0x610], 0xa
mov dword [ebp - 0x5d8], 0
mov dword [ebp - 0x60c], 0
mov dword [ebp - 0x608], 0
mov dword [ebp - 0x604], 0
mov dword [ebp - 0x600], 0
mov dword [ebp - 0x5fc], 0
mov dword [ebp - 0x5f8], 0xa
lea eax, [ebp - 0x5f0]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x5f4]
mov ecx, ebx
push eax
push dword [ebp - 0x5b0]
call fcn.004536c0
test eax, eax
jne 0x45695f
xor ebx, ebx
jmp 0x456cd2
xorps xmm0, xmm0
mov dword [ebp - 0x5cc], 0
xor edi, edi
movlpd qword [ebp - 0x62c], xmm0
mov dword [ebp - 0x5e0], 0
mov dword [ebp - 0x5d4], edi
xor esi, esi
mov dword [ebp - 0x5d0], esi
mov byte [ebp - 4], 6
cmp dword [ebp - 0x5cc], 1
jne 0x456a51
mov dword [ebp - 0x5dc], edi
test edi, edi
je 0x4569af
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov byte [ebp - 4], 7
test edi, edi
je 0x456a43
lea ecx, [ebp - 0x5b8]
mov dword [ebp - 0x5bc], 0
push ecx
mov dword [ebp - 0x5b8], 0
mov eax, dword [edi]
push 0x4bd6e0
push edi
call dword [eax]
mov ecx, dword [ebp - 0x5b8]
xor edx, edx
test eax, eax
cmovs ecx, edx
mov dword [ebp - 0x5b8], ecx
mov byte [ebp - 4], 8
test ecx, ecx
je 0x456a35
mov eax, dword [ecx]
lea edx, [ebp - 0x5bc]
push edx
push ecx
call dword [eax + 0xc]
cmp dword [ebp - 0x5bc], 1
jne 0x456a2f
cmp esi, edi
je 0x456a2f
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov eax, esi
mov esi, edi
mov dword [ebp - 0x5d0], esi
test eax, eax
je 0x456a2f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x5b8]
mov byte [ebp - 4], 7
test ecx, ecx
je 0x456a43
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 6
test edi, edi
je 0x456a51
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea eax, [ebp - 0x5d8]
mov dword [ebp - 0x5d4], 0
push eax
push dword [ebp - 0x5f0]
lea eax, [ebp - 0x5cc]
mov dword [ebp - 0x5bc], edi
push dword [ebp - 0x5f4]
mov ecx, ebx
push eax
lea eax, [ebp - 0x5e0]
push eax
lea eax, [ebp - 0x5bc]
push eax
push dword [ebp - 0x5c0]
push dword [ebp - 0x5b0]
call fcn.004544f0
mov edi, dword [ebp - 0x5bc]
mov dword [ebp - 0x5d4], edi
test eax, eax
je 0x456bb2
test esi, esi
je 0x456bb2
mov dword [ebp - 0x5dc], edi
test edi, edi
je 0x456ac8
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov byte [ebp - 4], 9
test edi, edi
je 0x456b9b
lea ecx, [ebp - 0x5ac]
mov dword [ebp - 0x5ac], 0
mov eax, dword [esi]
push ecx
push 0x4bd6e0
push esi
call dword [eax]
mov ecx, dword [ebp - 0x5ac]
xor edx, edx
test eax, eax
cmovs ecx, edx
mov dword [ebp - 0x5ac], ecx
lea ecx, [ebp - 0x5b4]
mov dword [ebp - 0x5b4], edx
mov eax, dword [edi]
push ecx
push 0x4bd6e0
push edi
mov byte [ebp - 4], 0xa
call dword [eax]
mov ecx, dword [ebp - 0x5b4]
xor edx, edx
test eax, eax
cmovs ecx, edx
mov dword [ebp - 0x5b4], ecx
mov eax, dword [ebp - 0x5ac]
mov byte [ebp - 4], 0xb
mov edx, dword [eax]
lea eax, [ebp - 0x5e4]
push eax
mov eax, dword [ebp - 0x5ac]
push ecx
push eax
call dword [edx + 0x10]
test eax, eax
jne 0x456c1c
cmp dword [ebp - 0x5e4], 1
jne 0x456b73
mov eax, esi
xor esi, esi
mov dword [ebp - 0x5d0], esi
test eax, eax
je 0x456b73
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x5b4]
mov byte [ebp - 4], 0xa
test eax, eax
je 0x456b87
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x5ac]
mov byte [ebp - 4], 9
test eax, eax
je 0x456b9b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 6
test edi, edi
je 0x456992
mov eax, dword [edi]
push edi
call dword [eax + 8]
jmp 0x456992
mov ecx, ebx
cmp eax, 1
jne 0x456c52
push dword [ebp - 0x5c8]
lea eax, [ebp - 0x62c]
push eax
lea eax, [ebp - 0x2dc]
push eax
lea eax, [ebp - 0x5e8]
push eax
lea eax, [ebp - 0x5a8]
push eax
lea eax, [ebp - 0x5ec]
push eax
lea eax, [ebp - 0x60c]
push eax
lea eax, [ebp - 0x624]
push eax
push dword [ebp - 0x5c0]
push edi
push dword [ebp + 8]
call fcn.00456d50
test eax, eax
jne 0x456992
push dword [ebp + 8]
mov ecx, ebx
call fcn.00455210
xor ebx, ebx
jmp 0x456cb6
mov eax, dword [ebp - 0x5b4]
mov byte [ebp - 4], 0xa
test eax, eax
je 0x456c30
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x5ac]
mov byte [ebp - 4], 9
test eax, eax
je 0x456c44
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [edi]
push edi
mov byte [ebp - 4], 6
call dword [eax + 8]
xor ebx, ebx
jmp 0x456cb6
lea eax, [ebp - 0x60c]
push eax
push SysReAllocString
push 0xffffffffffffffff
push 0x2cc
lea eax, [ebp - 0x2dc]
push eax
push dword [ebp + 8]
call fcn.00455c40
push dword [ebp - 0x5c8]
lea eax, [ebp - 0x60c]
mov ecx, ebx
push eax
lea eax, [ebp - 0x624]
push eax
call fcn.00455320
lea ecx, [ebp - 0x60c]
call fcn.00455100
push dword [ebp + 8]
mov ecx, ebx
call fcn.00455210
push dword [ebp - 0x5c8]
mov ecx, ebx
call fcn.00452eb0
mov ebx, 1
mov byte [ebp - 4], 5
test esi, esi
je 0x456cc4
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 4
test edi, edi
je 0x456cd2
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea ecx, [ebp - 0x60c]
call fcn.00455100
lea ecx, [ebp - 0x624]
call fcn.00455100
mov eax, dword [ebp - 0x5c0]
mov byte [ebp - 4], 1
test eax, eax
je 0x456cfc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x5b0]
mov byte [ebp - 4], 0
test eax, eax
je 0x456d10
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x5c4]
mov dword [ebp - 4], 0xffffffff
test ecx, ecx
je 0x456d27
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048fc6c
mov esp, ebp
pop ebp
ret 8