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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [ebp + 0x10]
sub esp, 0x54
push ebx
push esi
push edi
mov edi, ecx
mov dword [edi + 0x30], eax
mov eax, dword [ebp + 0x18]
mov dword [edi + 0x64], eax
lea esi, [edi + 0x90]
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
push 0x14
cdq
pop ecx
idiv ecx
or dword [0x4dcef4], 0xffffffff
test eax, eax
jbe 0x437f53
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
and dword [esp + 0xc], 0
cdq
idiv ecx
test eax, eax
jbe 0x437af3
push dword [esp + 0xc]
call fcn.0043b7ed
mov ebx, dword [eax]
cmp dword [ebx + 0x50], 0
jne 0x437af3
mov ecx, dword [edi + 0x3c]
test ecx, ecx
je 0x437aaf
lea eax, [edi + 0xec]
cmp ebx, eax
je 0x437aaf
mov eax, dword [ecx]
push ebx
push dword [edi + 0x38]
call dword [eax + 0xc]
mov ecx, dword [edi + 0x44]
test ecx, ecx
je 0x437add
mov eax, dword [ebx + 0x74]
lea edx, [esp + 0x10]
push edx
push dword [ebx + 0x84]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
call dword [eax]
test eax, eax
je 0x437add
mov ecx, dword [esp + 0x10]
push 0
mov eax, ebx
call fcn.00431a0a
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
push 0x14
cdq
pop ecx
idiv ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], eax
jb 0x437a84
cmp dword [0x4f3948], 0
mov esi, dword [edi + 0x2c]
lea ebx, [edi + 4]
jne 0x437b09
and dword [0x4f3948], 0
lea eax, [ebx + 0x20]
push eax
push 0x4f3918
call fcn.00407276
movzx eax, ax
push eax
xor eax, eax
push eax
push 0x8000088
push 0x80000000
push eax
push eax
push esi
call fcn.004214b1
test eax, eax
je 0x437f53
push str.win_bk
call fcn.0042cd1c
mov dword [edi + 0x288], eax
mov dword [esp], str.menuitem
call fcn.0042cd56
mov dword [edi + 0xc4], eax
mov dword [esp], str.menuitem_bold
call fcn.0042cd56
mov dword [edi + 0xc8], eax
mov dword [esp], str.menuitem_normal
call fcn.0042cd88
mov dword [edi + 0xd0], eax
mov dword [esp], str.menuitem_hilite
call fcn.0042cd88
mov dword [edi + 0xcc], eax
mov dword [esp], str.menuitem_disable
call fcn.0042cd88
mov dword [edi + 0xd4], eax
mov dword [esp], str.menuitem_hotkey
call fcn.0042cd88
mov dword [edi + 0xd8], eax
mov dword [esp], str.menuitem_separator
call fcn.0042cd88
mov dword [edi + 0xdc], eax
mov dword [esp], str.menuitem_bkcolor
call fcn.0042cd88
mov dword [edi + 0xe0], eax
mov dword [esp], str.menuitem_dragcolor
call fcn.0042cd88
mov dword [edi + 0xe4], eax
mov dword [esp], str.win_frame
call fcn.0042cd88
mov dword [edi + 0xe8], eax
pop ecx
lea eax, [esp + 0x20]
push eax
call fcn.0043911b
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
push 2
test esi, esi
je 0x437c16
push esi
jmp 0x437c32
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
inc eax
mov dword [esp + 0x20], eax
lea ecx, [ebx + 1]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
push eax
call dword [sym.imp.USER32.dll_MonitorFromRect]
lea ecx, [esp + 0x38]
push ecx
push eax
mov dword [esp + 0x40], 0x28
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
test esi, esi
je 0x437c77
cmp dword [edi + 0x60], 0
jne 0x437c77
mov eax, dword [esp + 0x58]
mov ecx, dword [esi + 4]
sub eax, dword [esi + 0xc]
sub ecx, dword [esp + 0x50]
cmp ecx, eax
jle 0x437c73
mov edx, dword [esp + 0x24]
add edx, 6
cmp eax, edx
jl 0x437c7f
mov ecx, eax
jmp 0x437c7f
mov ecx, dword [esp + 0x58]
sub ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x24]
add eax, 6
cmp eax, ecx
jle 0x437d77
cmp ecx, 6
jle 0x437d77
add ecx, 0xfffffffa
mov eax, ecx
cdq
idiv dword [edi + 0x80]
mov eax, dword [esp + 0x24]
sub ecx, edx
lea eax, [ecx + eax - 1]
cdq
idiv ecx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x24], ecx
mov ecx, edx
sub ecx, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
add eax, 3
imul eax, dword [esp + 0xc]
sub eax, 3
cmp dword [edi + 0x60], 0
je 0x437ce6
mov ecx, dword [esi]
sub edx, dword [esi + 8]
sub ecx, dword [esp + 0x4c]
cmp edx, ecx
jle 0x437ce6
mov ecx, edx
cmp eax, ecx
jle 0x437d7b
mov eax, ecx
cdq
idiv dword [esp + 0xc]
mov edx, dword [edi + 0x78]
cmp eax, edx
mov dword [edi + 0x8c], eax
jle 0x437d25
mov eax, dword [edi + 0x8c]
lea ebx, [eax + 3]
imul ebx, dword [esp + 0xc]
sub ebx, 3
cmp ebx, ecx
jle 0x437d22
dec eax
cmp eax, edx
mov dword [edi + 0x8c], eax
jg 0x437d02
mov ebx, dword [ebp + 8]
cmp dword [edi + 0x8c], edx
jge 0x437d33
mov dword [edi + 0x8c], edx
mov eax, dword [edi + 0x7c]
cmp dword [edi + 0x8c], eax
jle 0x437d44
mov dword [edi + 0x8c], eax
mov eax, dword [edi + 0x8c]
add eax, 3
imul eax, dword [esp + 0xc]
sub eax, 3
cmp eax, ecx
jle 0x437d7b
mov eax, dword [edi + 0x8c]
push 0xfffffffffffffffd
pop edx
sub edx, eax
add eax, 3
imul eax, dword [esp + 0xc]
sub eax, 3
add eax, edx
cmp eax, ecx
jg 0x437d6f
jmp 0x437d7b
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
add ecx, 6
push ecx
push eax
lea eax, [esp + 0x18]
push eax
call fcn.00439340
cmp dword [edi + 0x70], 0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
jne 0x437da3
sub ebx, ecx
cmp ebx, dword [esp + 0x4c]
jge 0x437dad
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
mov edx, eax
sub edx, ebx
cmp edx, ecx
jge 0x437dbe
mov ebx, eax
sub ebx, ecx
dec ebx
cmp dword [edi + 0x60], 0
je 0x437e65
test esi, esi
je 0x437f02
mov ecx, dword [esp + 0x58]
sub ecx, dword [ebp + 0xc]
cmp ecx, dword [esp + 0x24]
jge 0x437de9
mov ecx, dword [esi + 0xc]
sub ecx, dword [esp + 0x24]
add ecx, 3
jmp 0x437def
mov ecx, dword [esi + 4]
sub ecx, 3
mov edx, dword [esi + 8]
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esi]
mov esi, dword [esp + 0x20]
mov dword [ebp + 0xc], ecx
mov ecx, eax
sub ecx, dword [esp + 0x4c]
cmp dword [edi + 0x20c], 0
je 0x437e39
cmp dword [esp + 0x10], esi
jl 0x437e1e
lea ebx, [edx - 3]
jmp 0x437f02
cmp ecx, esi
jl 0x437f02
sub eax, esi
add eax, 3
and dword [edi + 0x20c], 0
mov ebx, eax
jmp 0x437f02
cmp ecx, esi
jl 0x437e49
sub eax, esi
add eax, 3
mov ebx, eax
jmp 0x437f02
cmp dword [esp + 0x10], esi
jl 0x437f02
lea ebx, [edx - 3]
mov dword [edi + 0x20c], 1
jmp 0x437f02
test esi, esi
je 0x437ed8
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x58]
sub eax, dword [esi + 0xc]
mov edx, ecx
sub edx, dword [esp + 0x50]
cmp edx, eax
jle 0x437e8a
cmp eax, dword [esp + 0x24]
jge 0x437e8a
sub ecx, dword [esp + 0x24]
mov dword [ebp + 0xc], ecx
mov ecx, dword [esp + 0x20]
xor eax, eax
add ecx, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
add ecx, eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
push eax
push esi
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ecx
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x437f02
mov ebx, dword [esi]
sub ebx, dword [esp + 0x20]
jmp 0x437f02
mov ecx, dword [esp + 0x58]
mov eax, ecx
sub eax, dword [ebp + 0xc]
cmp eax, dword [esp + 0x24]
jge 0x437f02
mov edx, dword [ebp + 0xc]
sub edx, dword [esp + 0x50]
cmp edx, eax
jle 0x437efb
mov eax, dword [esp + 0x24]
sub dword [ebp + 0xc], eax
jmp 0x437f02
sub ecx, dword [esp + 0x24]
mov dword [ebp + 0xc], ecx
mov eax, dword [esp + 0x50]
cmp dword [ebp + 0xc], eax
jge 0x437f0e
mov dword [ebp + 0xc], eax
push 0x50
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [ebp + 0xc]
push ebx
push 0xffffffffffffffff
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov esi, edi
call fcn.00438532
push dword [edi + 0x29c]
xor esi, esi
inc esi
mov dword [edi + 0x294], esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x437f53
push esi
lea eax, [edi + 0x298]
call fcn.00441b84
cmp dword [edi + 0x68], 0
je 0x437f66
cmp dword [edi + 0x60], 0
jne 0x437f66
mov eax, edi
call fcn.004387a3
mov eax, dword [0x4dcef4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14