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

Disassembly:
push 0xffffffffffffffff
push 0x58dbc9
mov eax, dword fs:[0]
push eax
sub esp, 0x230
mov eax, dword [0x5ea2c4]
xor eax, esp
mov dword [esp + 0x228], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5ea2c4]
xor eax, esp
push eax
lea eax, [esp + 0x244]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x254]
cmp dword [ebp + 0x87c], 0
mov eax, dword [ebp + 4]
je 0x42ace8
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [ebp + 4]
and eax, 0xff3fffff
or eax, 0x6000000
push eax
push 0xfffffffffffffff0
push ecx
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov eax, dword [ebp + 4]
lea ecx, [esp + 0xcc]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0xd4]
mov eax, dword [ebp + 4]
push 0x30
sub edx, ecx
push edx
mov edx, dword [esp + 0xd4]
sub esi, edx
push esi
push ecx
push edx
push 0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [ebp + 4]
lea ebx, [ebp + 0x6c]
push eax
mov dword [ebx], eax
call dword [sym.imp.USER32.dll_GetDC]
push ebx
mov esi, 0x5f0b00
mov dword [ebx + 8], eax
call fcn.00466e90
push 0xacc
call fcn.0052747b
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24c], 0
test eax, eax
je 0x42a6eb
push eax
call fcn.00429770
jmp 0x42a6ed
xor eax, eax
mov dword [esp + 0x24c], 0xffffffff
mov ecx, dword [ebp + 0x87c]
mov dword [ebp + 0x880], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
mov edx, eax
mov ecx, ebx
call fcn.0044c260
mov ecx, dword [ebp + 0x880]
mov eax, dword [ecx]
mov edx, dword [eax + 0x20]
push 1
push 0
push ebx
call edx
mov ecx, dword [ebp + 0x87c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
mov edi, str.Menu
call fcn.0044cea0
test eax, eax
je 0x42a74f
mov ecx, dword [ebp + 0x880]
push ecx
mov ecx, eax
call fcn.00441de0
mov eax, dword [ebp + 0x880]
mov edx, dword [eax + 0x63c]
lea ecx, [eax + 0x63c]
mov eax, dword [edx + 0x24]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x190]
push 0
call eax
mov eax, dword [ebp + 0x87c]
mov edx, dword [eax + 0x5dc]
lea ecx, [eax + 0x5dc]
mov eax, dword [edx + 0xc]
xor esi, esi
call eax
test eax, eax
jle 0x42a84b
jmp 0x42a7a0
mov ecx, dword [ebp + 0x87c]
mov edx, dword [ecx + 0x5dc]
mov eax, dword [edx]
add ecx, 0x5dc
push esi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x10]
push str.MenuElement
call eax
test eax, eax
je 0x42a82f
mov ecx, dword [ebp + 0x87c]
mov edx, dword [ecx + 0x5dc]
mov eax, dword [edx]
add ecx, 0x5dc
push esi
call eax
mov edx, dword [eax + 0x618]
mov edx, dword [edx + 0xc]
lea ecx, [eax + 0x618]
mov eax, dword [ebp + 0x880]
push eax
call edx
mov ecx, dword [ebp + 0x87c]
mov eax, dword [ebp + 0x880]
mov edi, dword [eax + 0x5dc]
mov edx, dword [ecx + 0x5dc]
mov eax, dword [edx]
add ecx, 0x5dc
push esi
add edi, 0x10
call eax
mov ecx, dword [ebp + 0x880]
mov edx, dword [edi]
push eax
add ecx, 0x5dc
call edx
mov eax, dword [ebp + 0x87c]
lea ecx, [eax + 0x5dc]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
inc esi
call edx
cmp esi, eax
jl 0x42a7a0
mov eax, dword [ebp + 0x880]
push eax
push ebx
call fcn.0044ad90
inc dword [ebp + 0x6c0]
mov ecx, dword [ebp + 0x6c0]
mov eax, dword [ebp + 0x6c4]
cmp ecx, eax
lea edi, [ebp + 0x4c]
jl 0x42a8a8
lea esi, [eax + eax]
test esi, esi
jne 0x42a87d
mov esi, 0xb
mov edx, dword [ebp + 0x6bc]
lea ecx, [esi*4]
push ecx
push edx
call fcn.0052899b
add esp, 8
test eax, eax
je 0x42ac22
mov dword [ebp + 0x6c4], esi
mov dword [ebp + 0x6bc], eax
mov eax, dword [ebp + 0x6c0]
mov ecx, dword [ebp + 0x6bc]
mov dword [ecx + eax*4 - 4], edi
mov ecx, dword [ebp + 0x87c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
mov cl, byte [eax + 0x5c5]
mov byte [ebp + 0x631], cl
mov ecx, dword [ebp + 0x87c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x888]
xor ebx, ebx
mov dword [esp + 0xe8], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], esi
cmp eax, ebx
je 0x42a916
mov ecx, dword [ebp + 0x884]
push ecx
push ebp
call eax
xor eax, eax
lea edx, [esp + 0x94]
push edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov eax, dword [ebp + 4]
push 1
push eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0xa0], 0x28
call dword [sym.imp.USER32.dll_MonitorFromWindow]
push eax
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0x9c]
push 0
mov dword [esp + 0x58], eax
push 0x5ed328
sub eax, edx
push 0x5ed244
mov edi, eax
mov eax, dword [ebp + 0x5cc]
mov dword [esp + 0x64], ecx
sub ecx, esi
push 0
push eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], esi
mov dword [esp + 0xf4], ecx
call fcn.005854c8
mov esi, eax
add esp, 0x14
test esi, esi
je 0x42aa16
mov eax, dword [esi]
mov edx, dword [eax + 0x174]
lea ecx, [esp + 0xbc]
push ecx
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x58]
mov ecx, esi
call edx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc0]
lea ebx, [ecx + eax]
mov eax, dword [ebp + 0x880]
mov edx, dword [eax + 0x5dc]
lea ecx, [eax + 0x5dc]
mov eax, dword [edx + 0xc]
xor esi, esi
call eax
test eax, eax
jle 0x42aafc
jmp 0x42aa40
mov ecx, dword [ebp + 0x880]
mov edx, dword [ecx + 0x5dc]
mov eax, dword [edx]
add ecx, 0x5dc
push esi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x10]
push str.MenuElement
call eax
test eax, eax
je 0x42aadc
mov eax, dword [ebp + 0x880]
mov edx, dword [eax + 0x5dc]
lea ecx, [eax + 0x5dc]
mov eax, dword [edx]
push esi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xd4]
call eax
test al, al
je 0x42aadc
mov ecx, dword [ebp + 0x880]
mov edx, dword [ecx + 0x5dc]
mov eax, dword [edx]
add ecx, 0x5dc
push esi
call eax
mov ecx, dword [esp + 0xe0]
mov edx, dword [eax]
mov edx, dword [edx + 0x154]
push ecx
push edi
lea ecx, [esp + 0xc4]
push ecx
mov ecx, eax
call edx
mov eax, dword [esp + 0xbc]
add ebx, dword [esp + 0xc0]
cmp dword [esp + 0x1c], eax
jge 0x42aadc
mov dword [esp + 0x1c], eax
mov ecx, dword [ebp + 0x880]
mov eax, dword [ecx + 0x5dc]
mov edx, dword [eax + 0xc]
add ecx, 0x5dc
inc esi
call edx
cmp esi, eax
jl 0x42aa40
mov ecx, dword [ebp + 0x87c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
mov edx, dword [eax]
lea ecx, [esp + 0x30]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0xe8]
mov ecx, dword [ebp + 0x87c]
mov dword [esp + 0x24], eax
add eax, ebx
mov dword [esp + 0x2c], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
mov edx, dword [eax]
push 2
lea ecx, [esp + 0x24]
push ecx
xor esi, esi
push esi
push edx
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
add eax, ecx
mov dword [esp + 0x28], eax
xor eax, eax
lea edi, [esp + 0x40]
mov byte [esp + 0x1a], 0
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x40], 0x5f0a50
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
call fcn.0042d510
test eax, eax
je 0x42ac52
push 0
push 0x5eda2c
push 0x5eda0c
push 0
push eax
call fcn.005854c8
mov esi, eax
add esp, 0x14
test esi, esi
je 0x42abfa
mov eax, dword [esi + 4]
lea edx, [esp + 0x5c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x5c]
cmp ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x60]
mov ecx, dword [ebp + 0x87c]
mov eax, dword [ecx]
mov esi, dword [esi + 4]
setge byte [esp + 0x1a]
cmp edx, dword [esp + 0x3c]
mov edx, dword [eax + 0x1c]
setge byte [esp + 0x1b]
call edx
cmp esi, dword [eax]
je 0x42ac2d
cmp byte [esp + 0x1b], 0
jne 0x42ac34
cmp byte [esp + 0x1a], 0
jne 0x42ac3e
lea edi, [esp + 0x40]
call fcn.0042d510
test eax, eax
jne 0x42ab92
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
cmp byte [esp + 0x1a], 0
je 0x42ac5a
mov eax, dword [esp + 0x30]
mov ecx, eax
sub eax, dword [esp + 0x1c]
jmp 0x42ac62
dec dword [ebp + 0x6c0]
jmp 0x42a8b8
cmp byte [esp + 0x1b], 0
je 0x42ac07
mov edx, dword [esp + 0x34]
mov esi, edx
sub edx, ebx
jmp 0x42ac0f
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov ecx, eax
sub eax, dword [esp + 0x1c]
jmp 0x42ac62
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
cmp esi, dword [esp + 0x58]
jle 0x42ac6c
mov esi, edx
sub edx, ebx
cmp ecx, dword [esp + 0x54]
jle 0x42ac81
mov ecx, dword [esp + 0x30]
add ecx, 4
mov eax, ecx
sub eax, dword [esp + 0x1c]
jmp 0x42ac87
sub eax, 4
sub ecx, 4
cmp edx, dword [esp + 0x50]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], eax
jge 0x42aca7
mov esi, dword [esp + 0xe8]
mov edx, dword [esp + 0x34]
add edx, esi
lea esi, [edx + ebx]
jmp 0x42acad
sub edx, 5
sub esi, 5
cmp eax, dword [esp + 0x4c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], edx
jge 0x42accd
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
push 0x10
sub esi, edx
push esi
sub ecx, eax
push ecx
push edx
mov edx, dword [ebp + 4]
push eax
push 0xffffffffffffffff
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
jmp 0x42aefb
lea edi, [ebp + 0x6c]
push eax
mov dword [edi], eax
call dword [sym.imp.USER32.dll_GetDC]
push edi
mov esi, 0x5f0b00
mov dword [edi + 8], eax
call fcn.00466e90
xor eax, eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov byte [esp + 0x230], 1
mov dword [esp + 0x234], eax
mov dword [esp + 0x238], eax
push eax
push edi
lea ecx, [ebp + 0x50]
push ecx
mov dword [esp + 0x258], 1
mov eax, dword [ebp + 0x68]
push 0x5a5000
push eax
lea ecx, [esp + 0x108]
call fcn.004442b0
mov ebx, eax
push ebx
push edi
call fcn.0044ad90
lea eax, [ebp + 0x4c]
push eax
lea esi, [ebp + 0x6bc]
call fcn.00466e90
mov ecx, dword [0x5f0ae0]
xor eax, eax
lea edx, [esp + 0x6c]
mov dword [esp + 0x6c], eax
push edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x70], 0x28
mov eax, dword [ecx]
push 2
push eax
call dword [sym.imp.USER32.dll_MonitorFromWindow]
push eax
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x74]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x888]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
test eax, eax
je 0x42adfe
mov ecx, dword [ebp + 0x884]
push ecx
push ebp
call eax
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x30]
mov edx, dword [ebx]
mov edx, dword [edx + 0x154]
sub ecx, esi
push ecx
push eax
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
call edx
cmp dword [edi + 0x560], 0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi + 0x58c], ecx
mov dword [edi + 0x590], eax
jne 0x42ae50
mov edi, dword [edi]
test edi, edi
je 0x42ae50
push 0x16
push eax
push ecx
push 0
push 0
push 0
push edi
call dword [sym.imp.USER32.dll_SetWindowPos]
cmp byte [ebp + 0x60], 0
mov edi, dword [ebp + 0x58]
mov edx, dword [ebp + 0x5c]
mov ebx, dword [ebp + 0x5f8]
mov ecx, edi
mov eax, edx
je 0x42ae70
sub ecx, ebx
sub eax, dword [ebp + 0x5fc]
jmp 0x42ae7a
add edi, ebx
mov ebx, dword [ebp + 0x5fc]
add edx, ebx
mov ebx, edi
sub ebx, ecx
mov dword [esp + 0x1c], ebx
mov ebx, edx
sub ebx, eax
cmp eax, esi
jge 0x42ae8f
mov eax, esi
lea edx, [esi + ebx]
mov esi, dword [esp + 0x30]
cmp ecx, esi
jge 0x42ae9f
mov edi, dword [esp + 0x1c]
mov ecx, esi
add edi, esi
mov esi, dword [esp + 0x38]
cmp edi, esi
jle 0x42aeaf
mov edi, esi
sub esi, dword [esp + 0x1c]
mov ecx, esi
mov esi, dword [esp + 0x3c]
cmp edx, esi
jle 0x42aebd
mov edx, esi
sub esi, ebx
mov eax, esi
push 0x10
sub edx, eax
push edx
sub edi, ecx
push edi
push eax
mov eax, dword [ebp + 4]
push ecx
push 0xffffffffffffffff
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [esp + 0xf4]
test eax, eax
je 0x42aee7
push eax
call fcn.005282dc
add esp, 4
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x42aefb
push eax
call fcn.005282dc
add esp, 4
mov byte [ebp + 0x635], 1
xor eax, eax
mov ecx, dword [esp + 0x244]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x228]
xor ecx, esp
call fcn.005273c3
add esp, 0x23c
ret 4