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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x110
mov esi, esp
mov dword [esi + 0xf8], ebp
mov dword [esi + 0xfc], esp
mov dword [esi + 0x108], 0xffffffff
mov dword [esi + 0x104], 0x703ee0
mov dword [esi + 0x28], ecx
lea eax, [esi + 0x100]
movss dword [esi + 4], xmm0
xorps xmm0, xmm0
mov dword [esi + 0x2c], edx
mov ecx, dword fs:[0]
mov dword [esi + 0x100], ecx
mov dword fs:[0], eax
lea eax, [esi + 0x30]
movups xmmword [esi + 0x30], xmm0
mov ecx, dword [edx + 4]
push eax
mov dword [esi + 0x10], ecx
push ecx
call dword [sym.imp.user32.dll_GetWindowRect]
test eax, eax
je 0x4f49f1
movd xmm0, dword [esi + 4]
movd eax, xmm0
test eax, eax
js 0x4f49c7
ucomiss xmm0, xmm0
jp 0x4f49c7
mov eax, dword [esi + 0x30]
cvtss2sd xmm0, xmm0
movaps xmmword [esi + 0xe0], xmm0
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x20], eax
movsd qword [esi + 0x98], xmm0
mov edi, dword [esi + 0x9c]
mov eax, dword [esi + 0x98]
mov ecx, edi
and edi, 0x7ff00000
mov dword [esi + 4], eax
and ecx, 0xfffff
or eax, ecx
mov dword [esi + 0xa0], ecx
jne 0x4f4659
cmp edi, 0x7ff00000
je 0x4f49c7
test edi, edi
je 0x4f49c7
test edi, edi
je 0x4f49c7
push 2
mov ebx, dword [esi + 0x10]
push ebx
call dword [sym.imp.user32.dll_MonitorFromWindow]
push 2
push ebx
call dword [sym.imp.user32.dll_MonitorFromWindow]
lea ebx, [esi + 0x30]
mov dword [esi + 0x38], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x60], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x70], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x80], 0
mov dword [esi + 0x7c], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x84], 0
mov dword [esi + 0x90], 0
mov dword [esi + 0x8c], 0
mov dword [esi + 0x94], 0
mov dword [esi + 0x30], 0x68
push ebx
push eax
call dword [sym.imp.user32.dll_GetMonitorInfoW]
test eax, eax
je 0x4f4a2f
mov eax, dword [esi + 4]
mov ebx, dword [esi + 0xa0]
mov ecx, dword [esi + 0x38]
movsd xmm0, qword [esi + 0x3c]
or eax, ebx
mov eax, dword [esi + 0x34]
mov dword [esi + 0x18], ecx
movaps xmmword [esi + 0xd0], xmm0
mov dword [esi + 0x1c], eax
jne 0x4f478a
test edi, edi
je 0x4f49d8
cmp edi, 0x7ff00000
je 0x4f49d8
xorps xmm0, xmm0
lea eax, [esi + 0xb0]
movaps xmmword [esi + 0xb0], xmm0
push eax
push dword [esi + 0x10]
call dword [sym.imp.user32.dll_GetClientRect]
test eax, eax
je 0x4f4a67
or dword [esi + 4], ebx
movsd xmm0, qword [esi + 0xb0]
movsd xmm1, qword [esi + 0xb8]
movaps xmmword [esi + 0xc0], xmm0
movaps xmmword [esi + 0xa0], xmm1
jne 0x4f47e3
test edi, edi
je 0x4f49d8
cmp edi, 0x7ff00000
je 0x4f49d8
mov ebx, dword [esi + 0x2c]
mov ecx, dword [ebx]
call fcn.006fc2a0
mov ecx, dword [eax + 0x90]
mov byte [esi + 4], dl
mov edx, eax
test ecx, ecx
mov dword [esi + 0x10], ecx
je 0x4f4868
mov edi, dword [edx + 0x94]
test edi, edi
je 0x4f4873
mov dword [esi + 0xc], edx
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f482f
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4f4a99
mov dword [0x919820], eax
push 0xdc
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4f4a99
push 0xdc
push edi
mov dword [esi + 0x14], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov edi, dword [ebp + 8]
cmp byte [esi + 4], 0
jne 0x4f4893
jmp 0x4f4883
mov edi, dword [ebp + 8]
cmp byte [esi + 4], 0
jne 0x4f4893
jmp 0x4f4883
mov dword [esi + 0x14], 0
mov edi, dword [ebp + 8]
cmp byte [esi + 4], 0
jne 0x4f4893
mov eax, dword [0x919aac]
test eax, 0x7fffffff
jne 0x4f49a8
test ecx, ecx
setne byte [esi + 4]
push edx
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
movzx eax, byte [edi]
mov ecx, dword [ebx]
mov dword [esi + 0x108], 3
mov byte [esi + 0xc], al
movzx eax, byte [edi + 1]
mov byte [esi + 0xb], al
call fcn.004f4cc0
movss xmm1, dword [esi + 0x20]
movss xmm2, dword [esi + 0x24]
movd xmm0, dword [esi + 0x18]
movdqa xmm4, xmmword [esi + 0xd0]
movapd xmm3, xmmword [esi + 0xe0]
mov ecx, dword [esi + 0x28]
movzx edx, byte [esi + 4]
cmp dword [esi + 0x10], 0
unpcklps xmm2, xmm1
movd xmm1, dword [esi + 0x1c]
unpcklpd xmm3, xmm3
mov dword [ecx], 1
cvtdq2pd xmm2, xmm2
divpd xmm2, xmm3
punpckldq xmm1, xmm0
pxor xmm0, xmm0
psubd xmm4, xmm1
movdqa xmm1, xmmword [esi + 0xa0]
punpckldq xmm4, xmm0
psubd xmm1, xmmword [esi + 0xc0]
cvtpd2ps xmm2, xmm2
punpckldq xmm1, xmm0
movdqa xmm0, xmmword [0x7259c0]
movlpd qword [ecx + 4], xmm2
mov byte [ecx + 0x20], dl
movzx edx, byte [esi + 0xc]
por xmm4, xmm0
por xmm1, xmm0
mov byte [ecx + 0x21], dl
movzx edx, byte [esi + 0xb]
subpd xmm4, xmm0
subpd xmm1, xmm0
divpd xmm1, xmm3
divpd xmm4, xmm3
mov byte [ecx + 0x22], dl
mov byte [ecx + 0x23], al
mov eax, dword [esi + 0x14]
cvtpd2ps xmm1, xmm1
cvtpd2ps xmm0, xmm4
movlpd qword [ecx + 0x18], xmm1
mov dword [ecx + 0xc], 1
movlpd qword [ecx + 0x10], xmm0
je 0x4f4994
test eax, eax
je 0x4f4994
push eax
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 0x100]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0xc], edx
call fcn.00721f90
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
test al, al
jne 0x4f4893
mov byte [edx + 4], 1
jmp 0x4f4893
mov ecx, 0x8f6daf
mov edx, 0x35
push 0x73ed7c
jmp 0x4f49e7
mov ecx, 0x8f6daf
mov edx, 0x35
push 0x743e50
call fcn.0070a0f0
add esp, 4
ud2
call sub.kernel32.dll_GetLastError
mov dword [esi + 0x34], eax
mov dword [esi + 0x30], 0
mov dword [esi + 0x108], 0
mov ecx, str.Unexpected_GetWindowRect_failure__please_report_this_error_to_https:__github.com_rust_windowing_winit
mov edx, 0x65
push 0x743ec8
push 0x73ed4c
lea eax, [esi + 0x30]
push eax
call fcn.0070a360
add esp, 0xc
jmp 0x4f4ab2
call sub.kernel32.dll_GetLastError
mov dword [esi + 0x34], eax
mov dword [esi + 0x30], 0
mov dword [esi + 0x108], 1
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x8f7f04
push 0x73ed4c
push ebx
call fcn.0070a360
add esp, 0xc
jmp 0x4f4ab2
lea ecx, [esi + 0x30]
mov edx, 0x743e40
mov dword [esi + 0x30], 0x743e38
mov dword [esi + 0x34], 1
mov dword [esi + 0x40], 0
mov dword [esi + 0x38], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0x3c], 0
call fcn.00709f70
ud2
mov ecx, 4
mov edx, 0xdc
mov dword [esi + 0x108], 2
call fcn.00709d20
ud2