Function at 0x43c870
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x4c
mov ecx, dword [esp + 0x54]
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_GetWindowRect]
push esi
lea eax, [esp + 0x2c]
push edi
push eax
push ecx
mov dword [esp + 0x1c], 1
call ebp
mov ebx, dword [esp + 0x60]
mov esi, dword [sym.imp.USER32.dll_ScreenToClient]
lea edx, [esp + 0x30]
push edx
push ebx
call esi
lea eax, [esp + 0x38]
push eax
push ebx
call esi
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, ecx
sub eax, esi
mov esi, dword [esp + 0x3c]
sub esi, edx
xor edx, edx
cmp esi, eax
setg dl
mov edi, edx
test edi, edi
je 0x43c8dc
test edi, edi
mov esi, eax
je 0x43c8dc
mov eax, dword [esp + 0x30]
add eax, ecx
jmp 0x43c8e7
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
lea eax, [ecx + edx]
cdq
sub eax, edx
sar eax, 1
test edi, edi
mov dword [esp + 0x10], eax
je 0x43c8fe
mov eax, dword [esp + 0x70]
mov dword [esp + 0x70], eax
jmp 0x43c906
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x70], ecx
lea edx, [esp + 0x20]
push edx
push ebx
call ebp
mov ecx, dword [esp + 0x64]
lea eax, [esp + 0x30]
push eax
push ecx
call ebp
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x1f
call ebx
mov edx, eax
push 6
mov dword [esp + 0x78], edx
call ebx
mov edx, dword [esp + 0x24]
add eax, edx
mov edx, dword [esp + 0x74]
add eax, edx
test edi, edi
je 0x43c96c
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x6c]
lea edx, [eax + ecx]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x28], edx
lea edx, [esi + ecx]
mov ecx, dword [esp + 0x3c]
add eax, edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], eax
jmp 0x43c994
mov edx, dword [esp + 0x6c]
lea ecx, [eax + edx]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x2c], ecx
lea ecx, [esi + edx]
mov edx, dword [esp + 0x30]
add eax, ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x20]
push ecx
call dword [sym.imp.USER32.dll_ClipCursor]
mov edx, dword [esp + 0x60]
push edx
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
mov eax, dword [esp + 0x60]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
mov ecx, dword [esp + 0x70]
push ecx
call dword [sym.imp.USER32.dll_SetCursor]
lea edx, [esp + 0x18]
mov dword [esp + 0x6c], eax
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [esp + 0x60]
lea eax, [esp + 0x18]
push eax
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
push 0
push 0
push 0
lea edx, [esp + 0x2c]
push 0
push edx
call dword [sym.imp.USER32.dll_SetRect]
test edi, edi
je 0x43ca13
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
add edx, ecx
mov dword [0x4cb074], eax
mov dword [0x4cb070], edx
jmp 0x43ca2c
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add edx, ecx
mov dword [0x4cb070], eax
mov dword [0x4cb074], edx
mov ecx, dword [esp + 0x64]
lea eax, [esp + 0x20]
push eax
push ecx
call ebp
mov ebp, dword [esp + 0x60]
lea edx, [esp + 0x20]
push edx
push ebp
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [esp + 0x28]
push eax
push ebp
call dword [sym.imp.USER32.dll_ScreenToClient]
push edi
push esi
lea ecx, [esp + 0x28]
push 0x4cb070
push ecx
push ebx
call fcn.0043c800
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
add esp, 0x14
push 1
push 0x108
push 0x100
lea edx, [esp + 0x4c]
push 0
push edx
call ebp
test eax, eax
jne 0x43cac0
push 1
push 0x209
push 0x200
lea eax, [esp + 0x4c]
push 0
push eax
call ebp
test eax, eax
jne 0x43cac0
call dword [sym.imp.USER32.dll_WaitMessage]
push 1
push 0x108
push 0x100
lea ecx, [esp + 0x4c]
push 0
push ecx
call ebp
test eax, eax
je 0x43ca88
mov eax, dword [esp + 0x44]
sub eax, 0x100
je 0x43cb43
sub eax, 0x100
je 0x43cb03
sub eax, 2
jne 0x43cc1b
mov eax, dword [esp + 0x4c]
push edi
mov edx, eax
push esi
and edx, 0xffff
push 0x4cb070
shr eax, 0x10
mov dword [0x4cb074], eax
lea eax, [esp + 0x2c]
mov dword [0x4cb070], edx
push eax
jmp 0x43cb70
push edi
push esi
lea ecx, [esp + 0x28]
push 0x4cb070
push ecx
push ebx
call fcn.0043c800
mov eax, dword [esp + 0x60]
add esp, 0x14
mov edx, eax
and edx, 0xffff
push edi
shr eax, 0x10
mov dword [0x4cb074], eax
push esi
lea eax, [esp + 0x28]
push 0x4cb070
mov dword [0x4cb070], edx
push eax
jmp 0x43cc12
mov eax, dword [esp + 0x48]
cmp eax, 0x26
je 0x43cb86
cmp eax, 0x28
je 0x43cb86
cmp eax, 0x25
je 0x43cb86
cmp eax, 0x27
je 0x43cb86
cmp eax, 0xd
jne 0x43cc1b
push edi
push esi
lea ecx, [esp + 0x28]
push 0x4cb070
push ecx
push ebx
call fcn.0043c800
add esp, 0x14
mov dword [esp + 0x14], 0
jmp 0x43cc1b
push edi
push esi
lea edx, [esp + 0x28]
push 0x4cb070
push edx
push ebx
call fcn.0043c800
mov eax, dword [esp + 0x5c]
add esp, 0x14
add eax, 0xffffffdb
cmp eax, 3
ja case.default.0x43cba7
jmp dword [eax*4 + 0x43cc68]
sub dword [0x4cb074], esi
jmp case.default.0x43cba7
add dword [0x4cb074], esi
jmp case.default.0x43cba7
mov eax, dword [0x4cb070]
sub eax, esi
jmp 0x43cbce
mov eax, dword [0x4cb070]
add eax, esi
mov dword [0x4cb070], eax
mov ecx, dword [esp + 0x60]
push 0x4cb070
push ecx
call dword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [0x4cb074]
mov eax, dword [0x4cb070]
push edx
push eax
call dword [sym.imp.USER32.dll_SetCursorPos]
mov ecx, dword [esp + 0x60]
push 0x4cb070
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
push edi
push esi
lea edx, [esp + 0x28]
push 0x4cb070
push edx
push ebx
call fcn.0043c800
add esp, 0x14
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x43ca6f
mov esi, dword [0x4cb070]
test edi, edi
jne 0x43cc37
mov esi, dword [0x4cb074]
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov eax, dword [esp + 0x60]
push ebx
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
push 0
call dword [sym.imp.USER32.dll_ClipCursor]
mov ecx, dword [esp + 0x6c]
push ecx
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret