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

Disassembly:
sub esp, 0x7c
push ebx
mov ebx, dword [esp + 0x8c]
push ebp
push esi
push edi
mov edi, eax
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
lea eax, [esp + 0x38]
push eax
push 1
push 0
mov esi, ecx
mov dword [esp + 0x44], 0x28
mov dword [esp + 0x68], 1
call dword [sym.imp.USER32.dll_MonitorFromWindow]
push eax
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x44]
push edi
push esi
push edi
mov dword [esp + 0x24], ecx
push esi
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], eax
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [esp + 0x90]
lea edx, [esi + ecx]
cmp edx, ebp
jle 0x4142a8
test bl, 4
jne 0x414272
mov eax, esi
sub eax, ecx
cmp eax, dword [esp + 0x18]
jl 0x414272
cmp esi, ebp
jge 0x414272
mov esi, eax
jmp 0x414276
mov esi, ebp
sub esi, ecx
mov edx, dword [esp + 0x9c]
mov eax, dword [edx]
test eax, 0x600000
je 0x4142af
mov edx, eax
and edx, 0x3800000
xor edx, 0x400000
and eax, 0xfc1fffff
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x9c]
mov dword [edx], eax
jmp 0x4142af
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x18]
cmp esi, eax
jge 0x4142e8
add esi, ecx
test bl, 4
jne 0x4142c6
cmp esi, ebp
jge 0x4142c6
cmp esi, eax
jge 0x4142c8
mov esi, eax
mov eax, dword [edx]
test eax, 0x600000
je 0x4142e8
mov ecx, eax
and ecx, 0x3800000
xor ecx, 0x200000
and eax, 0xfc1fffff
or ecx, eax
mov dword [edx], ecx
mov ebp, dword [esp + 0x94]
lea eax, [edi + ebp]
cmp eax, dword [esp + 0x24]
jle 0x414337
test bl, 0x10
jne 0x414311
mov eax, edi
sub eax, ebp
cmp eax, dword [esp + 0x1c]
jl 0x414311
cmp edi, dword [esp + 0x24]
jge 0x414311
mov edi, eax
jmp 0x414317
mov edi, dword [esp + 0x24]
sub edi, ebp
mov eax, dword [edx]
test eax, 0x1800000
je 0x414337
mov ecx, eax
and ecx, 0x2600000
xor ecx, 0x1000000
and eax, 0xfc1fffff
or ecx, eax
mov dword [edx], ecx
mov eax, dword [esp + 0x1c]
cmp edi, eax
jge 0x414372
add edi, ebp
test bl, 0x10
jne 0x414350
cmp edi, dword [esp + 0x24]
jge 0x414350
cmp edi, eax
jge 0x414352
mov edi, eax
mov eax, dword [edx]
test eax, 0x1800000
je 0x414372
mov ecx, eax
and ecx, 0x2600000
xor ecx, 0x800000
and eax, 0xfc1fffff
or ecx, eax
mov dword [edx], ecx
xor eax, eax
lea edx, [esp + 0x60]
push edx
push 1
mov dword [esp + 0x68], eax
mov dword [esp + 0x8c], eax
push eax
mov dword [esp + 0x70], eax
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 + 0x6c], 0x28
mov dword [esp + 0x90], 1
call dword [sym.imp.USER32.dll_MonitorFromWindow]
push eax
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
mov eax, dword [esp + 0x90]
lea ecx, [esi + eax]
lea eax, [esp + 0x28]
mov dword [esp + 0x20], ecx
lea edx, [edi + ebp]
push eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x28], edx
push ecx
mov edx, ecx
push edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
call dword [sym.imp.USER32.dll_IntersectRect]
neg eax
sbb eax, eax
add eax, 1
jne 0x414521
mov ecx, ebx
mov eax, ebx
shr eax, 2
shr ecx, 5
not eax
and eax, 2
and ecx, 2
add ecx, ecx
add ecx, ecx
shr ebx, 4
mov edx, 2
sub edx, eax
mov dword [esp + ecx + 0x1c], edx
mov dword [esp + ecx + 0x18], eax
not ebx
and ebx, 2
lea edx, [esp + 0x20]
sub edx, ecx
lea eax, [ebx + 1]
mov dword [edx], eax
mov eax, 3
lea edx, [esp + 0x24]
sub eax, ebx
sub edx, ecx
mov dword [edx], eax
xor ebp, ebp
mov edx, dword [esp + 0x94]
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + ebp*4 + 0x20]
push edx
push eax
push ecx
mov eax, edi
mov ecx, esi
call fcn.004140a0
add esp, 0x14
test eax, eax
jne 0x4144a9
inc ebp
cmp ebp, 4
jl 0x414461
movzx eax, di
movzx edx, si
shl eax, 0x10
or eax, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov ebp, dword [esp + ebp*4 + 0x18]
cmp ebp, 3
ja case.default.0x4144b2
jmp dword [ebp*4 + 0x414534]
mov eax, dword [esp + 0x9c]
mov edx, dword [eax]
and edx, 0xfd1fffff
or edx, 0x1000000
mov dword [eax], edx
jmp case.default.0x4144b2
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax]
and ecx, 0xfc5fffff
or ecx, 0x400000
jmp 0x414517
mov eax, dword [esp + 0x9c]
mov edx, dword [eax]
and edx, 0xfc9fffff
or edx, 0x800000
mov dword [eax], edx
jmp case.default.0x4144b2
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax]
and ecx, 0xfc3fffff
or ecx, 0x200000
mov dword [eax], ecx
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
movzx eax, di
pop edi
movzx edx, si
pop esi
shl eax, 0x10
pop ebp
or eax, edx
pop ebx
add esp, 0x7c
ret