Function at 0x4756fa
Capabilities:
Resolve function by parsing pe exports
Set global application hook

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x354
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
mov ebx, ecx
push edi
lea eax, [ebx + 0x56]
mov ecx, esi
call fcn.004813e5
mov eax, pe_nt_image_headers32
cmp esi, eax
ja 0x475d62
je 0x475d56
cmp esi, 0x16
ja 0x475c02
je 0x475be4
mov eax, esi
dec eax
dec eax
je 0x475b97
sub eax, 3
je 0x475b36
sub eax, 0xa
je 0x475772
dec eax
jne 0x475bd1
cmp byte [ebx + 0x68], al
jne 0x475ec7
mov esi, ebx
call fcn.0047507e
jmp 0x475ec7
cmp byte [ebx + 0x19f9], 0
jne 0x47578b
push 5
push dword [ebx + 0x63]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x475bd1
xor esi, esi
cmp byte [ebx + 0x19fa], 0
je 0x4757fb
push esi
push dword [ebx + 0x63]
call dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [esp + 0x9c]
push eax
push dword [ebx + 0x63]
call dword [sym.imp.USER32.dll_GetWindowRect]
push dword [ebx + 0x63]
xor eax, eax
lea edi, [esp + 0x90]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [esp + 0xac]
sub eax, dword [esp + 0xa4]
mov dword [esp + 0x9c], eax
mov dword [ebx + 0x2d], eax
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [ebx + 0x1a5b]
cmp ecx, esi
je 0x4757f4
lea edx, [esp + 0x8c]
push edx
push eax
call ecx
mov byte [ebx + 0x19fa], 0
lea eax, [esp + 0x118]
push eax
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_BeginPaint]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x18]
push eax
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [esp + 0x38]
push eax
push dword [ebx + 0x63]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x44]
push 4
add eax, dword [esp + 0x28]
mov dword [esp + 0x20], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_FillRect]
push dword [esp + 0x10]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [esp + 0xc], eax
push 0xa
pop ecx
xor eax, eax
lea edi, [esp + 0xb0]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
push esi
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x28]
push esi
mov dword [esp + 0xbc], eax
lea eax, [esp + 0x1c]
push eax
push esi
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x20]
mov dword [esp + 0xc4], 0x28
mov word [esp + 0xd0], 1
mov word [esp + 0xd2], 0x20
mov dword [esp + 0xd4], esi
mov dword [esp + 0x2c], esi
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push dword [esp + 0x10]
mov dword [esp + 0x38], eax
call edi
push 0x3c
mov dword [esp + 0x30], eax
lea eax, [esp + 0xe0]
push esi
push eax
call fcn.005251f0
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x24]
add esp, 0xc
push dword [ebx + 4]
mov dword [esp + 0xdc], 0x40
mov dword [esp + 0xe0], 0x2800
mov dword [esp + 0x110], 0xf
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], eax
call dword [sym.imp.USER32.dll_IsZoomed]
mov ecx, dword [esp + 0x24]
test eax, eax
setne al
neg al
sbb eax, eax
and eax, 4
sub ecx, eax
sub ecx, dword [esp + 0x1c]
lea esi, [ebx + 0x19fb]
mov dword [esp + 0x58], ecx
call fcn.00427937
push eax
push dword [esp + 0x10]
mov dword [esp + 0x3c], eax
call edi
mov dword [esp + 0x28], eax
lea eax, [esp + 0x158]
push eax
xor esi, esi
push esi
push 0x40d
push dword [ebx + 0x63]
mov word [esp + 0x168], si
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebx + 0x1a3f]
cmp eax, esi
je 0x4759c1
lea ecx, [esp + 0xd8]
push ecx
lea ecx, [esp + 0x50]
push ecx
push 0x824
push 0xffffffffffffffff
lea ecx, [esp + 0x168]
push ecx
push esi
push esi
push dword [esp + 0x28]
push dword [ebx + 0x1a07]
call eax
cmp dword [ebx + 0x5e], esi
jne 0x4759ff
push esi
push dword [0x5a9cd0]
mov eax, SysReAllocString
push esi
push dword [ebx + 4]
push eax
push eax
push eax
push eax
push reloc.WS2_32.dll_closesocket
push esi
push str.tooltips_class32
push 8
call dword [sym.imp.USER32.dll_CreateWindowExW]
push 0x13
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push eax
mov dword [ebx + 0x5e], eax
call dword [sym.imp.USER32.dll_SetWindowPos]
lea eax, [esp + 0x158]
push eax
push 0x1040000
push 0x413
push dword [ebx + 0x63]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp word [esp + 0x158], si
je 0x475a9e
mov eax, dword [ebx + 4]
mov dword [esp + 0x64], eax
mov eax, dword [0x5a9cd0]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x158]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x5c]
push eax
push esi
push 0x433
push dword [ebx + 0x5e]
mov dword [esp + 0x6c], 0x30
mov dword [esp + 0x70], 0x10
mov dword [esp + 0x78], esi
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esp + 0x5c]
push eax
push esi
push 0x432
push dword [ebx + 0x5e]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_IsZoomed]
mov ecx, dword [esp + 0x24]
push 0xcc0020
push esi
test eax, eax
push esi
push dword [esp + 0x18]
setne al
sub ecx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x2c]
neg al
push ecx
sbb eax, eax
add eax, 4
add eax, dword [esp + 0x34]
push eax
push dword [esp + 0x34]
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_BitBlt]
lea eax, [esp + 0x118]
push eax
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_EndPaint]
push dword [esp + 0x28]
push dword [esp + 0x10]
call edi
push dword [esp + 0x34]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x2c]
push dword [esp + 0x10]
call edi
push dword [esp + 0xc]
call dword [sym.imp.GDI32.dll_DeleteDC]
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
push esi
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetWindowLongW]
jmp 0x475ec7
xor edi, edi
cmp dword [ebp + 0xc], edi
jne 0x475b63
mov eax, dword [ebx + 4]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x3c], 0x14
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
call dword [sym.imp.USER32.dll_FlashWindowEx]
cmp dword [ebp + 0xc], 1
je 0x475bd1
cmp byte [ebx + 0x2c], 0
jne 0x475bd1
mov edx, dword [ebp + 0x10]
shr edx, 0x10
push edx
movzx edx, word [ebp + 0x10]
lea ecx, [ebx + 0x41]
mov eax, dword [ecx]
push edx
call dword [eax]
push 0x2127
push edi
push edi
push edi
push edi
push edi
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
jmp 0x475bd1
call fcn.00446abd
mov eax, dword [ebx]
push str.MainWindow
mov ecx, ebx
mov dword [0x5a9cac], 3
call dword [eax + 0x28]
lea eax, [ebx + 0x68]
push eax
call fcn.00441d6c
lea esi, [ebx + 0x19fb]
call fcn.0047a029
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov esi, dword [ebp + 8]
push dword [ebp + 0x10]
mov ecx, ebx
push dword [ebp + 0xc]
push esi
call fcn.0047e0e0
jmp 0x475eca
test edi, edi
je 0x475e75
mov byte [ebx + 0x68], 1
mov byte [ebx + 0x6a], 1
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x475e75
cmp esi, 0x1a
je 0x475cfb
cmp esi, 0x24
je 0x475cbb
cmp esi, 0x4a
jne 0x475bd1
mov eax, dword [ebp + 0x10]
cmp dword [eax + 4], 0x10404
jne 0x475e75
mov esi, dword [eax + 8]
mov edi, dword [esi]
test edi, edi
mov dword [esp + 0x28], edi
je 0x475e75
xor ecx, ecx
push 4
pop edx
mov eax, edi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fd80
and dword [esp + 0x10], 0
test edi, edi
pop ecx
mov dword [esp + 0x14], eax
jle 0x475ca3
add esi, 4
mov dword [esp + 0x10], esi
mov edi, 0x208
push edi
call fcn.0051fd80
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [ecx + edx*4], eax
mov edx, dword [esp + 0x14]
mov esi, eax
mov dword [esp], 0x104
call fcn.0044b0f6
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
add dword [esp + 0x10], edi
cmp eax, dword [esp + 0x28]
jl 0x475c6a
mov edi, dword [esp + 0x28]
push dword [esp + 0x14]
push edi
push 0x406
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x475ec7
lea edx, [esp + 0x2c]
push edx
lea ecx, [ebx + 0x41]
mov eax, dword [ecx]
lea edx, [esp + 0x34]
push edx
call dword [eax + 4]
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + 0x20]
cmp ecx, edx
mov edi, dword [esp + 0x2c]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edi
jg 0x475ce7
mov ecx, edx
mov dword [eax + 0x20], ecx
mov ecx, dword [eax + 0x24]
cmp edi, ecx
jle 0x475cf3
mov ecx, edi
mov dword [eax + 0x24], ecx
jmp 0x475bd1
call fcn.0040134a
test al, al
je 0x475bd1
call fcn.004061f8
test al, al
lea edi, [ebx + 0x1a5f]
je 0x475d30
mov eax, dword [edi]
test eax, eax
je 0x475bd1
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
and dword [edi], 0
jmp 0x475bd1
cmp dword [edi], 0
jne 0x475bd1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push 0
push 0x475f8e
push 3
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [edi], eax
jmp 0x475bd1
mov edi, ebx
call fcn.004753c2
jmp 0x475bd1
mov ecx, esi
mov eax, 0x111
sub ecx, eax
je 0x475e79
dec ecx
dec ecx
je 0x475e65
sub ecx, 0x207
je 0x475e41
sub ecx, 4
je 0x475e41
sub ecx, 0xe8
je 0x475dd2
sub ecx, 0x60
je 0x475db6
sub ecx, 0x7c08
jne 0x475bd1
lea edi, [ebx + 0x41]
mov esi, ebx
call fcn.00404079
jmp 0x475ec7
cmp dword [ebp + 0x10], 0
jne 0x475dc4
mov byte [ebx + 0x68], 1
mov byte [ebx + 0x6a], 1
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x475ec7
mov esi, dword [ebp + 0x10]
xor edi, edi
cmp esi, edi
je 0x475ec7
cmp dword [ebp + 0xc], 1
mov byte [ebx + 0x51], 1
jne 0x475e14
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
setne al
neg al
sbb eax, eax
and eax, 0xfffffffa
add eax, 9
push eax
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, dword [ebp + 0xc]
push esi
add ebx, 0x4d
push ebx
call fcn.00440d7c
cmp dword [ebp + 0xc], edi
jle 0x475e35
push dword [esi + edi*4]
call fcn.00520947
inc edi
cmp edi, dword [ebp + 0xc]
pop ecx
jl 0x475e26
push esi
call fcn.00520947
pop ecx
jmp 0x475ec7
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x34]
test al, al
je 0x475bd1
mov edi, ebx
call fcn.0047542a
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_UpdateWindow]
jmp 0x475bd1
push edi
mov esi, ebx
call fcn.0047566f
test al, al
je 0x475bce
xor eax, eax
jmp 0x475eca
push dword [ebp + 0x10]
push edi
push eax
push ebx
lea eax, [ebx + 0x28]
call fcn.0047e493
test eax, eax
jne 0x475eca
movzx eax, word [ebp + 0xc]
mov edi, dword [0x5a9cac]
mov dword [0x5a9cac], eax
mov eax, dword [ebp + 0xc]
shr eax, 0x10
push eax
push dword [ebp + 0xc]
mov eax, ebx
call fcn.00475490
cmp edi, 5
jne 0x475eba
mov eax, dword [0x5a9cac]
mov dword [0x5a9cb0], eax
mov eax, dword [ebx]
mov ecx, ebx
mov dword [0x5a9cac], edi
call dword [eax + 0x18]
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc