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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x140
mov ebx, edx
mov dword [esp + 0x10], ecx
mov eax, dword [edx]
mov dword [esp + 8], eax
mov al, byte [0x57eac8]
push 0xc
pop ecx
push 4
pop edx
call fcn.00415570
test eax, eax
je 0x4c048a
mov ebp, eax
mov dword [eax], 4
and dword [eax + 4], 0
and dword [eax + 8], 0
lea ecx, [esp + 0x14]
and dword [ecx + 4], 0
xor edi, edi
inc edi
mov dword [ecx], edi
call fcn.004c06bc
mov esi, eax
lea ecx, [esp + 0xd8]
mov dword [ecx + 4], ebp
mov dword [ecx], edi
call fcn.004c06bc
push eax
push 0x4bf429
push 0
push esi
call dword [sym.imp.user32.dll_EnumDisplayMonitors]
test eax, eax
je 0x4c01a4
mov dword [esp + 0x40], ebx
mov esi, dword [ebp]
add esi, 0xffffff98
mov dword [esp + 0xc], ebp
imul ebp, dword [ebp + 8], 0x68
test ebp, ebp
je 0x4c017c
add esi, 0x68
push 0x1a
pop ecx
lea edi, [esp + 0xd8]
mov dword [esp + 4], esi
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x100]
call fcn.0042b53c
mov edi, eax
mov esi, edx
mov ecx, edx
call fcn.004f17f8
mov ebx, eax
mov dword [esp], edx
lea eax, [esi + esi]
push eax
push edi
push ebx
call fcn.004f7e80
add esp, 0xc
mov dword [esp + 0x14], ebx
lea edi, [esp + 0x14]
mov eax, dword [esp]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], esi
mov ecx, edi
call fcn.0042b564
sub edx, 1
jb 0x4c047a
mov esi, eax
and word [esp + 0x14], 0
lea eax, [eax + edx*2]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x58]
mov edx, edi
call fcn.004f19a4
mov ecx, esi
push 2
pop edx
call fcn.004155d0
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
mov ecx, esi
call fcn.004c450c
mov edi, eax
mov edx, dword [esp + 0x5c]
mov ecx, esi
call fcn.0043e571
add ebp, 0xffffff98
cmp edi, dword [esp + 8]
mov esi, dword [esp + 4]
jne 0x4bfd97
push 0x1a
pop ecx
lea ebx, [esp + 0x70]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xc]
call fcn.004bf4c8
movups xmm2, xmmword [ebx + 0x58]
lea edx, [esp + 0xd8]
movsd xmm0, qword [0x50c608]
mov esi, dword [esp + 0x40]
movss xmm1, dword [esi + 0xc]
orpd xmm1, xmm0
subsd xmm1, xmm0
cvtsd2ss xmm3, xmm1
movss xmm1, dword [esi + 0x14]
mulss xmm3, xmm1
cvttss2si edi, xmm3
movups xmmword [edx + 0x30], xmm2
movss xmm2, dword [0x50c620]
ucomiss xmm3, xmm2
mov eax, 0x7fffffff
cmova edi, eax
xor ecx, ecx
ucomiss xmm3, xmm3
movups xmm3, xmmword [ebx + 0x48]
movups xmmword [edx + 0x20], xmm3
movups xmm3, xmmword [ebx + 0x38]
cmovp edi, ecx
movups xmmword [edx + 0x10], xmm3
movss xmm3, dword [esi + 0x10]
orpd xmm3, xmm0
subsd xmm3, xmm0
movups xmm0, xmmword [ebx + 0x28]
cvtsd2ss xmm3, xmm3
mulss xmm3, xmm1
cvttss2si ebx, xmm3
ucomiss xmm3, xmm2
movups xmmword [edx], xmm0
cmova ebx, eax
ucomiss xmm3, xmm3
cmovp ebx, ecx
xor ebp, ebp
inc ebp
mov ecx, ebp
call fcn.004f1ba8
mov esi, eax
mov ecx, ebp
xor edx, edx
call fcn.004f1ba8
push 0
push eax
push esi
push esi
call dword [sym.imp.gdi32.dll_CreateDCW]
mov esi, eax
lea ecx, [esp + 0x70]
mov dword [ecx + 4], eax
mov dword [esp + 0x30], eax
mov dword [ecx], ebp
call fcn.004c06bc
push eax
call dword [sym.imp.gdi32.dll_CreateCompatibleDC]
mov ebp, eax
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x70]
mov dword [ecx + 4], esi
xor eax, eax
inc eax
mov dword [ecx], eax
call fcn.004c06bc
push ebx
push edi
push eax
call dword [sym.imp.gdi32.dll_CreateCompatibleBitmap]
mov esi, eax
lea ecx, [esp + 0x14]
mov dword [ecx + 4], ebp
xor eax, eax
inc eax
mov dword [ecx], eax
call fcn.004c06bc
mov ebp, eax
mov dword [esp + 0x38], esi
lea eax, [esp + 0x70]
mov dword [eax + 4], esi
xor ecx, ecx
inc ecx
mov dword [eax], ecx
lea ecx, [esp + 0x70]
call fcn.004c06bc
push eax
push ebp
mov ebp, edi
mov esi, dword [esp + 0x38]
call dword [sym.imp.gdi32.dll_SelectObject]
lea ecx, [esp + 0x70]
mov dword [ecx + 4], esi
xor eax, eax
inc eax
mov dword [ecx], eax
lea edi, [esp + 0x70]
mov ecx, edi
call fcn.004c06bc
push 4
push eax
call dword [sym.imp.gdi32.dll_SetStretchBltMode]
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x14]
mov dword [ecx + 4], eax
xor eax, eax
inc eax
mov dword [ecx], eax
call fcn.004c06bc
mov dword [esp], eax
mov dword [edi + 4], esi
xor eax, eax
inc eax
mov dword [edi], eax
lea ecx, [esp + 0x70]
call fcn.004c06bc
push 0xcc0020
push ebx
push ebp
push 0
push 0
push eax
mov edi, ebx
push ebx
push ebp
push 0
push 0
push dword [esp + 0x28]
call dword [sym.imp.gdi32.dll_StretchBlt]
test eax, eax
je 0x4c0187
mov dword [esp + 0x70], 0x28
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], 0x200001
shl ebp, 2
mov dword [esp + 0x3c], ebp
mov ecx, ebp
imul ecx, edi
xorps xmm0, xmm0
movups xmmword [esp + 0x80], xmm0
movups xmmword [esp + 0x8c], xmm0
xor edx, edx
inc edx
mov dword [esp], ecx
call fcn.004177eb
mov esi, eax
mov ebp, edx
lea ecx, [esp + 0x14]
mov ebx, dword [esp + 0x34]
mov dword [ecx + 4], ebx
mov dword [ecx], 1
call fcn.004c06bc
push 0
lea ecx, [esp + 0x74]
push ecx
push esi
push edi
push 0
mov edi, dword [esp + 0x4c]
push edi
push eax
call dword [sym.imp.gdi32.dll_GetDIBits]
test eax, eax
je 0x4c01b6
mov dword [esp + 0x44], esi
and dword [esp + 0x6c], 0
and dword [esp + 0x68], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x58], xmm0
lea ecx, [esp + 0x14]
mov dword [ecx + 4], edi
mov dword [ecx], 1
call fcn.004c06bc
lea ecx, [esp + 0x58]
push ecx
push 0x18
push eax
call dword [sym.imp.gdi32.dll_GetObjectW]
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x4c049e
lea edi, [esp + 0x4c]
mov ecx, edi
mov edx, dword [esp]
push esi
call fcn.004baecc
pop eax
cmp dword [edi + 4], 0
push 4
pop edi
je 0x4c04c5
mov eax, dword [esp + 0x54]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x4c010f
mov eax, dword [esp + 0x2c]
cmp eax, 0xaaaaaaa
ja 0x4c0497
imul ebx, eax, 0xc
test ebx, ebx
js 0x4c0497
mov ecx, ebx
call fcn.004c062c
mov edi, eax
test eax, eax
je 0x4c0518
lea ebx, [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp]
push esi
call fcn.004baecc
pop eax
cmp dword [ebx + 4], 0
je 0x4c04ec
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x2c]
cmp ebx, eax
mov dword [esp + 0x48], ebp
jae 0x4c01dd
lea ecx, [ebx + ebx]
cmp ecx, eax
cmova eax, ecx
cmp eax, 5
push 4
pop esi
cmovae esi, eax
xor edx, edx
cmp esi, 0xaaaaaab
setb dl
imul eax, esi, 0xc
mov dword [esp + 4], eax
shl edx, 2
test ebx, ebx
je 0x4c01e3
imul ecx, ebx, 0xc
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 4
mov dword [esp + 0x1c], ecx
jmp 0x4c01e8
mov ecx, dword [esp + 0xc]
call fcn.004bf4c8
jmp 0x4c01a4
lea ecx, [esp + 0x70]
mov eax, dword [esp + 0x30]
mov dword [ecx], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + 8], eax
call fcn.004bf4e1
mov eax, dword [esp + 0x10]
and dword [eax], 0
add esp, 0x140
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x14]
mov eax, dword [esp + 0x30]
mov dword [ecx], eax
mov dword [ecx + 4], ebx
mov dword [ecx + 8], edi
call fcn.004bf4e1
mov eax, dword [esp + 0x10]
and dword [eax], 0
mov ecx, esi
mov edx, ebp
call fcn.0043e571
jmp 0x4c01ab
mov dword [esp + 8], edi
jmp 0x4c0227
and dword [esp + 0x18], 0
lea ebp, [esp + 0x4c]
mov ecx, ebp
lea eax, [esp + 0x14]
push eax
push dword [esp + 8]
call fcn.00417687
pop eax
pop ecx
cmp dword [ebp], 0
mov eax, dword [ebp + 4]
cmove ebx, esi
mov dword [esp + 0x2c], ebx
cmove edi, eax
mov dword [esp + 8], edi
mov edx, dword [ebp + 8]
mov ecx, 0x80000001
cmovne ecx, eax
call fcn.00404ae3
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp]
mov dword [esp + 0xc], 0
xor eax, eax
mov edi, dword [esp + 0x44]
test ecx, ecx
mov dword [esp + 4], eax
je 0x4c0298
cmp ecx, esi
mov ebx, esi
cmovb ebx, ecx
lea eax, [edi + ebx]
mov dword [esp + 0x40], eax
sub ecx, ebx
mov dword [esp], ecx
mov ecx, ebx
xor edx, edx
call fcn.004177eb
mov ebp, eax
mov esi, edx
push ebx
push edi
push eax
call fcn.004f7e80
mov ecx, dword [esp + 0xc]
add esp, 0xc
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [eax + edx], ebp
mov dword [eax + edx + 4], esi
mov esi, dword [esp + 0x3c]
mov dword [eax + edx + 8], ebx
mov eax, dword [esp + 4]
inc eax
add edx, 0xc
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0x40]
jmp 0x4c0238
mov edi, eax
shr edi, 1
imul eax, eax, 0xc
mov edx, dword [esp + 8]
add eax, edx
mov ecx, edi
neg ecx
imul ebp, ecx, 0xc
add ebp, eax
mov ecx, edi
push 0x54b338
push edi
call fcn.00439ae0
pop ecx
pop ecx
mov ebx, eax
mov esi, edx
mov ecx, edi
mov edx, ebp
push 0x54b348
push edi
call fcn.00439ae0
pop ecx
pop ecx
imul ecx, edi, 0xc
dec edi
add eax, ecx
add eax, 0xfffffff4
mov dword [esp], esi
mov ecx, esi
mov ebp, dword [esp + 0x30]
cmp edi, 0xffffffff
je 0x4c0333
sub ecx, 1
jb 0x4c045f
cmp edi, edx
jae 0x4c046b
mov esi, dword [ebx + 8]
mov dword [esp + 0x1c], esi
movsd xmm0, qword [ebx]
movsd qword [esp + 0x14], xmm0
mov esi, dword [eax + 8]
mov dword [ebx + 8], esi
movsd xmm0, qword [eax]
movsd qword [ebx], xmm0
mov esi, dword [esp + 0x1c]
mov dword [eax + 8], esi
movsd xmm0, qword [esp + 0x14]
movsd qword [eax], xmm0
add ebx, 0xc
dec edi
add eax, 0xfffffff4
jmp 0x4c02e4
lea ecx, [esp + 0x14]
mov dword [ecx], ebp
mov eax, dword [esp + 0x34]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + 8], eax
call fcn.004bf4e1
mov edx, dword [esp + 4]
test edx, edx
mov ebp, dword [esp + 8]
je 0x4c0367
lea eax, [ebp + 8]
xor ecx, ecx
add ecx, dword [eax]
add eax, 0xc
dec edx
jne 0x4c035d
jmp 0x4c0369
xor ecx, ecx
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov dword [esp], eax
xor edx, edx
call fcn.004177eb
lea edi, [esp + 0x14]
mov dword [edi], eax
mov dword [edi + 4], edx
and dword [edi + 8], 0
mov eax, ebp
mov ebx, dword [esp + 0xc]
test ebx, ebx
je 0x4c03b0
lea ebp, [eax + 0xc]
mov edx, dword [eax]
mov eax, dword [eax + 8]
add eax, edx
mov ecx, edi
push eax
call fcn.0042b753
pop eax
add ebx, 0xfffffff4
mov eax, ebp
mov ebp, dword [esp + 8]
jmp 0x4c038e
lea edi, [esp + 0x14]
mov eax, dword [edi + 8]
mov dword [esp + 0x54], eax
movsd xmm0, qword [edi]
movsd qword [esp + 0x4c], xmm0
mov ecx, edi
mov edx, esi
lea eax, [esp + 0x4c]
push eax
push dword [esp + 4]
call fcn.004baf88
pop eax
pop ecx
mov esi, dword [edi]
test esi, esi
je 0x4c03f4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [esp + 0x14]
movups xmmword [ecx], xmm0
jmp 0x4c03fb
mov eax, dword [esp + 0x10]
and dword [eax], 0
mov ebx, dword [esp + 4]
lea edi, [ebp + 4]
sub ebx, 1
jb 0x4c0416
mov ecx, dword [edi - 4]
mov edx, dword [edi]
call fcn.0043e571
add edi, 0xc
jmp 0x4c0402
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4c042d
imul eax, eax, 0xc
push 4
pop edx
mov ecx, ebp
push eax
call fcn.00404f8c
pop eax
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
call fcn.0043e571
test esi, esi
jne 0x4c01ab
cmp dword [esp + 0x18], 2
jne 0x4c01ab
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
call fcn.004c2ea6
jmp 0x4c01ab
mov ecx, dword [esp]
mov edx, ecx
push 0x54b358
jmp 0x4c0472
mov ecx, edi
push 0x54b368
call fcn.00506bf0
pop eax
ud2
mov ecx, edx
xor edx, edx
push 0x545638
call fcn.00506c60
jmp 0x4c0477
push 4
pop ecx
push 0xc
pop edx
call fcn.00506930
ud2
call fcn.004156f0
ud2
lea ecx, [esp + 0x14]
mov dword [ecx], 0x545950
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.OutOfRangeImpossibleNotEnoughInvalidTooShortTooLongBadFormat__NonexhaustiveEmpty
and dword [ecx + 0xc], 0
mov edx, 0x5456d8
jmp 0x4c0511
lea ecx, [esp + 0x14]
mov dword [ecx], str.capacity_overflow
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.OutOfRangeImpossibleNotEnoughInvalidTooShortTooLongBadFormat__NonexhaustiveEmpty
and dword [ecx + 0xc], 0
mov edx, 0x56fed0
jmp 0x4c0511
lea ecx, [esp + 0x14]
mov dword [ecx], str.capacity_overflow
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.OutOfRangeImpossibleNotEnoughInvalidTooShortTooLongBadFormat__NonexhaustiveEmpty
and dword [ecx + 0xc], 0
mov edx, 0x56ffb0
call fcn.00506b50
ud2
push 4
pop ecx
mov edx, ebx
jmp 0x4c0490