Function at 0x407750
Capabilities:
Resume thread

Disassembly:
push 0xffffffffffffffff
push 0x53b590
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov eax, dword [0x58b998]
xor eax, esp
push eax
lea eax, [esp + 0x3c]
mov dword fs:[0], eax
mov ebp, ecx
call fcn.004181e2
call fcn.004181e2
mov eax, dword [eax + 0xc]
push 0x80
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [ebp + 0x74], eax
call fcn.00416df7
xor ecx, ecx
xor edi, edi
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4077b1
push 0x80004005
call fcn.00402a00
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push 0x71
mov dword [esp + 0x48], edi
call fcn.004182ce
cmp eax, edi
je 0x4077dc
push 0x71
push eax
lea ecx, [esp + 0x20]
call fcn.00402630
call fcn.00416df7
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4077f6
push 0x80004005
call fcn.00402a00
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x44], 1
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push 0x6d
push edx
call fcn.004022b0
add esp, 0xc
push 0x3eb
mov ecx, ebp
call fcn.00415b18
cmp eax, edi
je 0x40783b
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, eax
call fcn.00415c2e
push 0x3fc
mov ecx, ebp
call fcn.00415b18
mov ebx, eax
cmp ebx, edi
je 0x4078ef
call fcn.00416df7
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40786b
push 0x80004005
call fcn.00402a00
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, 8
mov byte [esp + 0x44], 2
cmp dword [ebp + 0x174], eax
jb 0x407895
mov ecx, dword [ebp + 0x160]
jmp 0x40789b
lea ecx, [ebp + 0x160]
cmp dword [ebp + 0x158], eax
jb 0x4078ab
mov eax, dword [ebp + 0x144]
jmp 0x4078b1
lea eax, [ebp + 0x144]
push ecx
push eax
lea ecx, [esp + 0x24]
push 0x66
push ecx
call fcn.004022b0
mov esi, dword [esp + 0x2c]
add esp, 0x10
push esi
mov ecx, ebx
call fcn.00415c2e
lea eax, [esi - 0x10]
mov byte [esp + 0x44], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4078ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, ebp
call fcn.0040ec5e
mov eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x20]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push eax
push 1
push 0x80
push ecx
call esi
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp + 0x20]
push eax
push edi
push 0x80
push edx
call esi
push 0x7c
call fcn.0040dd00
add esp, 4
cmp eax, edi
je 0x407960
mov dword [eax + 0x1c], edi
mov ecx, 7
mov dword [eax + 0x20], ecx
xor edx, edx
mov word [eax + 0xc], dx
mov dword [eax + 0x3c], ecx
mov dword [eax + 0x38], edi
mov word [eax + 0x28], dx
mov dword [eax + 0x58], ecx
mov dword [eax + 0x54], edi
mov word [eax + 0x44], dx
mov dword [eax + 0x74], ecx
xor ecx, ecx
mov dword [eax + 0x70], edi
mov word [eax + 0x60], cx
mov ebx, eax
jmp 0x407962
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x44], 3
mov edx, dword [ebp + 0x20]
mov dword [ebx], edx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0xffffffffffffffff
mov dword [ebx + 4], eax
push edi
lea eax, [ebp + 0xec]
lea ecx, [ebx + 8]
push eax
call fcn.00401620
lea eax, [ebp + 0x140]
push eax
lea ecx, [ebp + 0x108]
lea esi, [ebp + 0x124]
push ecx
mov edx, 0x568a58
mov ecx, esi
lea edi, [esp + 0x28]
call fcn.00401040
add esp, 8
push 0xffffffffffffffff
push 0
lea ecx, [ebx + 0x24]
push eax
mov byte [esp + 0x50], 4
call fcn.00401620
mov byte [esp + 0x44], 3
cmp dword [esp + 0x38], 8
jb 0x4079dd
mov edx, dword [esp + 0x24]
push edx
call fcn.0040dd3a
add esp, 4
mov eax, dword [ebp + 0x198]
mov edx, esi
push 0x568a58
lea ecx, [ebp + 0x140]
lea esi, [esp + 0x24]
mov dword [ebx + 0x78], eax
call fcn.00401190
add esp, 4
push 0xffffffffffffffff
xor esi, esi
push esi
lea ecx, [ebx + 0x40]
push eax
mov byte [esp + 0x50], 5
call fcn.00401620
mov byte [esp + 0x44], 3
cmp dword [esp + 0x38], 8
jb 0x407a2b
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0040dd3a
add esp, 4
push 0xffffffffffffffff
push esi
lea eax, [ebp + 0x140]
xor edx, edx
lea ecx, [ebx + 0x5c]
push eax
mov dword [esp + 0x44], 7
mov dword [esp + 0x40], esi
mov word [esp + 0x30], dx
call fcn.00401620
push esi
push 4
push esi
push esi
push ebx
push 0x407530
mov dword [esp + 0x34], esi
call fcn.0041bd3c
mov dword [ebp + 0xe8], eax
cmp eax, esi
je 0x407a81
mov dword [eax + 0x28], esi
mov ebp, dword [ebp + 0xe8]
mov eax, dword [ebp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov byte [esp + 0x44], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407aa6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x44], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407ace
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret