Function at 0x508220
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x178
mov esi, esp
mov dword [esi + 0x160], ebp
mov dword [esi + 0x164], esp
mov dword [esi + 0x170], 0xffffffff
mov dword [esi + 0x16c], 0x704170
mov dword [esi + 0x2c], ecx
lea eax, [esi + 0x168]
mov dword [esi + 0x24], edx
mov ecx, dword fs:[0]
mov dword [esi + 0x168], ecx
mov dword fs:[0], eax
mov dword [esi + 0x68], 1
mov byte [esi + 0xb], 1
mov dword [esi + 0x170], 1
mov eax, dword [edx + 0x90]
mov ecx, dword [edx + 0x98]
lea edx, [esi + 0x68]
add ecx, eax
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], ecx
lea ecx, [esi + 0x30]
mov word [esi + 0x74], 0
call fcn.00502910
lea eax, [0x74025a]
lea ecx, [esi + 0x50]
lea edx, [esi + 0x68]
mov dword [esi + 0x68], 1
mov dword [esi + 0x6c], 0x74024e
mov byte [esi + 8], 1
mov dword [esi + 0x170], 2
mov dword [esi + 0x70], eax
mov word [esi + 0x74], 0
call fcn.00502910
mov eax, dword [esi + 0x50]
mov dword [esi + 0x68], 0x30
mov dword [esi + 0x6c], 3
mov dword [esi + 0x70], 0x4be5f0
mov dword [esi + 0x74], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x7c], 0x400000
mov dword [esi + 0x84], 0
mov dword [esi + 0x80], 0
mov dword [esi + 0x8c], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x170], 9
mov dword [esi + 0x90], eax
mov dword [esi + 0x10], eax
lea eax, [esi + 0x68]
mov dword [esi + 0x94], 0
push eax
call dword [sym.imp.user32.dll_RegisterClassExW]
mov ebx, dword [esi + 0x24]
mov ecx, dword [ebp + 8]
movzx eax, byte [ebx + 0xbe]
movzx edx, byte [ecx + 0x17]
shl eax, 0x13
mov byte [esi + 0x18], dl
mov ecx, eax
or ecx, 0x100000
test dl, dl
movzx edx, byte [ebx + 0xb9]
cmove ecx, eax
lea edi, [ecx + 0x40]
cmp dl, 2
cmovne edi, ecx
test dl, dl
movzx edx, byte [ebx + 0xc0]
lea eax, [edi + 0x80]
cmovne eax, edi
mov edi, dword [ebp + 8]
and eax, 0xffdffcfe
shl edx, 0x15
movzx ecx, byte [edi + 0x14]
mov dword [esi + 0x14], ecx
shl ecx, 8
or edx, ecx
movzx ecx, byte [ebx + 0xbd]
shl ecx, 9
or ecx, edx
movzx edx, byte [ebx + 0xba]
or edx, ecx
mov ecx, dword [esi + 0x54]
or edx, eax
mov eax, dword [ebx]
mov dword [esi + 0x20], ecx
cmp eax, 8
je 0x508407
cmp eax, 0xd
jne 0x508972
cmp dword [edi], 0
je 0x508504
mov eax, dword [edi + 4]
or edx, 0x1008
mov dword [esi + 0xc], 1
mov dword [esi + 0x1c], eax
jmp 0x508515
mov eax, dword [ebx + 4]
cmp dword [edi + 8], 0
mov dword [esi + 0xc], edx
lea edx, [esi + 0x68]
mov dword [esi + 0x1c], eax
je 0x5084f4
mov eax, dword [0x919aa8]
cmp eax, 2
jb 0x5084f4
mov eax, dword [0x91975c]
mov ecx, 0x8b82b8
mov dword [esi + 0x94], 0x74028c
mov dword [esi + 0x98], 1
mov dword [esi + 0x9c], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0xa0], 0
mov dword [esi + 0xa4], 0
mov dword [esi + 0x88], 2
mov dword [esi + 0x8c], str.winit::platform_impl::platform::windowWindow_ClassSetting_a_menu_on_a_child_window_is_unsupported
mov dword [esi + 0x90], 0x26
mov dword [esi + 0x70], 0
mov dword [esi + 0x78], 0x26
mov dword [esi + 0x74], str.winit::platform_impl::platform::windowWindow_ClassSetting_a_menu_on_a_child_window_is_unsupported
mov dword [esi + 0x7c], 0
mov dword [esi + 0x84], 0x7a
mov dword [esi + 0x80], str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowswindow.rs
mov dword [esi + 0x68], 1
mov dword [esi + 0x6c], 0x446
cmp eax, 2
mov eax, str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
cmove ecx, dword [0x9192e0]
cmove eax, dword [str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs]
mov ecx, dword [ecx + 0x14]
mov byte [esi + 7], 1
mov dword [esi + 0x170], 3
push edx
push eax
call ecx
add esp, 8
mov edi, dword [ebp + 8]
mov edx, dword [esi + 0xc]
mov eax, dword [edi]
or edx, 0x408
mov dword [esi + 0xc], eax
jmp 0x508515
or edx, 0x28
mov dword [esi + 0xc], 0
mov dword [esi + 0x1c], 0
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0x10]
mov ebx, dword [edi + 8]
mov dword [esi + 0x44], ecx
mov ecx, dword [edi + 0xc]
test eax, eax
mov dword [esi + 0x48], ebx
mov dword [esi + 0x40], eax
mov dword [esi + 0x4c], ecx
je 0x508556
lock inc dword [eax]
jle 0x508951
movzx eax, byte [edi + 0x14]
movzx ecx, byte [edi + 0x17]
mov ebx, edx
mov dword [esi + 0x170], 4
mov dword [esi + 0x14], eax
mov byte [esi + 0x18], cl
jmp 0x508558
mov ebx, edx
mov eax, dword [ebp + 0xc]
movzx ecx, word [edi + 0x15]
mov dword [esi + 0x158], eax
lea eax, [esi + 0x80]
mov word [esi + 0x2a], cx
push 0xc8
push dword [esi + 0x24]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, ebx
mov ecx, ebx
mov edi, ebx
mov edx, ebx
mov byte [esi + 9], 1
mov dword [esi + 0x170], 4
and eax, 4
and ecx, 2
shl edi, 0xc
shl edx, 0xd
shl eax, 0xe
shl ecx, 0x10
and edi, 0x20000000
or ecx, eax
mov eax, ebx
and eax, 0x10
shl eax, 0x18
or eax, ecx
mov ecx, ebx
shl ecx, 0x14
and ecx, 0x40000000
or ecx, eax
mov eax, ebx
shl eax, 0x13
and eax, 0x80000000
or eax, ecx
mov ecx, edx
and edx, 0x200000
or edi, eax
mov eax, ebx
and ecx, 0x1000000
and eax, 1
or ecx, edi
mov edi, 0x110
shl eax, 0x12
or ecx, eax
mov eax, ebx
shr eax, 3
or ecx, 0x6c80000
and eax, 8
or edx, eax
mov eax, ebx
and eax, 0x20
shl eax, 0xd
or edx, eax
test ebx, 0x40000
mov eax, 0x80130
cmove eax, edi
mov edi, dword [esi + 0x48]
or eax, edx
mov edx, ecx
and edx, 0xff30ffff
test ebx, 0x6000
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x40]
cmove edx, ecx
mov ecx, dword [esi + 0xc]
test edi, edi
mov dword [esi + 0x68], ecx
mov ecx, dword [esi + 0x44]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x4c]
mov dword [esi + 0x70], edi
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x14]
cmove ecx, edi
lea edi, [esi + 0x68]
mov byte [esi + 0x7c], al
movzx eax, word [esi + 0x2a]
mov word [esi + 0x7d], ax
movzx eax, byte [esi + 0x18]
mov byte [esi + 0x7f], al
mov dword [esi + 0x15c], ebx
mov ebx, dword [esi + 0x30]
mov dword [esi + 0x148], 0
push edi
push 0x400000
push ecx
push dword [esi + 0x1c]
push 0x80000000
push 0x80000000
push 0x80000000
push 0x80000000
push edx
push ebx
push dword [esi + 0x10]
push dword [esi + 0x3c]
call dword [sym.imp.user32.dll_CreateWindowExW]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx]
mov ecx, dword [edi + 0x50]
mov edx, dword [edi + 0x54]
mov dword [edi + 0x50], 0
test ecx, ecx
jne 0x508946
test eax, eax
je 0x5087df
mov eax, dword [esi + 0x148]
test eax, eax
je 0x508955
lea ecx, [esi + 0x14c]
cmp dword [esi + 0x114], 0
mov edi, dword [esi + 0x2c]
mov edx, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [edi + 0x10], edx
movsd qword [edi + 8], xmm0
mov dword [edi + 4], eax
mov byte [edi], 4
je 0x508717
push dword [esi + 0x110]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 0x11c], 0
je 0x508739
mov eax, dword [esi + 0x120]
test eax, eax
je 0x508739
push eax
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 0x10c]
test eax, eax
je 0x50875d
lock dec dword [eax]
jne 0x50875d
mov ecx, dword [esi + 0x10c]
mov dword [esi + 0x170], 5
call fcn.004f31c0
mov eax, dword [esi + 0x78]
test eax, eax
je 0x50877f
lock dec dword [eax]
jne 0x50877f
mov ecx, dword [esi + 0x78]
mov byte [esi + 7], 0
mov dword [esi + 0x170], 3
call fcn.004f31c0
cmp dword [esi + 0x20], 0
je 0x508796
push dword [esi + 0x10]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 0x34], 0
mov edi, dword [ebp + 8]
je 0x5087b0
push dword [esi + 0x30]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x508932
lock dec dword [eax]
jne 0x508932
mov ecx, dword [edi + 0x10]
mov byte [esi + 0xa], 0
mov dword [esi + 0x170], 0
call fcn.004f31c0
jmp 0x508932
call sub.kernel32.dll_GetLastError
mov ecx, dword [esi + 0x2c]
cmp dword [esi + 0x114], 0
mov dword [ecx + 4], eax
mov dword [ecx], 0
mov dword [ecx + 8], str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowswindow.rs
mov dword [ecx + 0xc], 0x7a
mov dword [ecx + 0x10], 0x475
je 0x508822
push dword [esi + 0x110]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 0x11c], 0
je 0x508844
mov eax, dword [esi + 0x120]
test eax, eax
je 0x508844
push eax
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 0x10c]
test eax, eax
je 0x508868
lock dec dword [eax]
jne 0x508868
mov ecx, dword [esi + 0x10c]
mov dword [esi + 0x170], 8
call fcn.004f31c0
mov eax, dword [esi + 0x78]
test eax, eax
je 0x508886
lock dec dword [eax]
jne 0x508886
mov ecx, dword [esi + 0x78]
mov dword [esi + 0x170], 7
call fcn.004f31c0
mov eax, dword [esi + 0x148]
test eax, eax
je 0x5088df
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x14c]
mov ecx, 0x91957c
mov dword [esi + 0x170], 6
mov dword [esi + 0x18], eax
call fcn.006fd340
push 0
push 0
push eax
push dword [esi + 0x18]
call dword [sym.imp.user32.dll_PostMessageW]
mov eax, dword [esi + 0x14]
lock dec dword [eax]
jne 0x5088df
mov ecx, dword [esi + 0x148]
mov byte [esi + 7], 0
mov dword [esi + 0x170], 3
call fcn.004f30b0
cmp dword [esi + 0x20], 0
je 0x5088f6
push dword [esi + 0x10]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 0x34], 0
mov edi, dword [ebp + 8]
je 0x508910
push dword [esi + 0x30]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x508932
lock dec dword [eax]
jne 0x508932
mov ecx, dword [edi + 0x10]
mov byte [esi + 0xa], 0
mov dword [esi + 0x170], 0
call fcn.004f31c0
mov eax, dword [esi + 0x168]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov byte [esi + 9], 1
call fcn.006adf00
jmp 0x5089cf
ud2
mov byte [esi + 9], 0
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x740294
call fcn.0070a0f0
add esp, 4
jmp 0x5089cf
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
lea eax, [esi + 0x50]
lea ecx, [esi + 0x68]
mov edx, 0x740304
mov dword [esi + 0x68], 0x7402f4
mov dword [esi + 0x6c], 2
mov dword [esi + 0x78], 0
mov byte [esi + 7], 1
mov dword [esi + 0x170], 3
mov dword [esi + 0x60], eax
lea eax, [esi + 0x60]
mov dword [esi + 0x64], fcn.00604b00
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], 1
movsd qword [esi + 0x58], xmm1
movsd qword [esi + 0x50], xmm0
call fcn.00709f70
ud2