Function at 0x4536d0
Capabilities:
Hide graphical window
Inspect load icon resource
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x456a36
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x138
mov eax, dword [0x4a2040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x4a2bec]
test eax, eax
je 0x453725
mov eax, dword [eax + 0x74]
test eax, eax
je 0x453725
mov byte [eax + 0x26], 1
xor edx, edx
push ecx
lea ecx, [edx + 0xa]
call fcn.00445150
mov edi, dword fs:[0x2c]
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x45379d
mov ecx, dword [edi]
mov eax, dword [0x4a31e0]
cmp eax, dword [ecx + 8]
jle 0x453782
push 0x4a31e0
call fcn.004547f0
add esp, 4
cmp dword [0x4a31e0], 0xffffffff
jne 0x453782
push str.user32.dll
call esi
push 0x4a31e0
mov dword [0x4a31d4], eax
call fcn.0045479f
add esp, 4
push str.SetThreadDpiAwarenessContext
push dword [0x4a31d4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x45379d
push 0xfffffffffffffffc
call eax
jmp 0x453811
mov edx, 3
push ecx
lea ecx, [edx + 3]
call fcn.00445150
add esp, 4
test eax, eax
je 0x45380b
mov ecx, dword [edi]
mov eax, dword [0x4a31e8]
cmp eax, dword [ecx + 8]
jle 0x4537f0
push 0x4a31e8
call fcn.004547f0
add esp, 4
cmp dword [0x4a31e8], 0xffffffff
jne 0x4537f0
push str.shcore.dll
call esi
push 0x4a31e8
mov dword [0x4a31d8], eax
call fcn.0045479f
add esp, 4
push str.SetProcessDpiAwareness
push dword [0x4a31d8]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x45380b
push 2
call eax
jmp 0x453811
call dword [sym.imp.USER32.dll_SetProcessDPIAware]
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0
mov dword [ebp - 0x138], 0x30
mov dword [ebp - 0x134], 0x40
mov dword [ebp - 0x130], 0x453530
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x144], eax
call eax
mov dword [ebp - 0x124], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x138]
mov dword [ebp - 0x110], 0x49ce1c
push eax
movups xmmword [ebp - 0x120], xmm0
mov dword [ebp - 0x10c], 0
call dword [sym.imp.USER32.dll_RegisterClassExW]
push 0
push dword [ebp - 0x124]
push 0
push 0
push 0x32
push 0x32
push 0x64
push 0x64
push 0xcf0000
push 0x49ce1c
push dword [ebp - 0x110]
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
push 0x4a2c0c
mov esi, eax
mov dword [ebp - 0xa4], 2
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x140], esi
push eax
push 0x4a2c10
push 0x4a2c04
lea eax, [ebp - 0xcc]
mov dword [ebp - 0xcc], 0
push eax
push 7
push 2
lea eax, [ebp - 0x28]
mov dword [ebp - 0xc8], 0
push eax
push 0
push 0
push 1
xorps xmm0, xmm0
mov dword [ebp - 0xbc], 0x1c
push 0
movlpd qword [ebp - 0xb8], xmm0
mov dword [ebp - 0xc4], 0x3c
mov dword [ebp - 0xc0], 1
mov dword [ebp - 0x94], 2
mov dword [ebp - 0xa8], 0x20
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0xb0], 1
mov dword [ebp - 0xac], 0
mov dword [ebp - 0x9c], 1
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x28], 0xb000
mov dword [ebp - 0x24], 0xa000
call dword [sym.imp.d3d11.dll_D3D11CreateDeviceAndSwapChain]
test eax, eax
je 0x45398c
call fcn.004534c0
jmp 0x4541e8
mov ecx, dword [0x4a2c04]
lea edx, [ebp - 0x84]
push edx
push 0x49cb18
push 0
mov eax, dword [ecx]
push ecx
call dword [eax + 0x24]
mov edx, dword [ebp - 0x84]
test edx, edx
je 0x4539d0
mov ecx, dword [0x4a2c10]
push 0x4a2c08
push 0
push edx
mov eax, dword [ecx]
push ecx
call dword [eax + 0x24]
mov eax, dword [ebp - 0x84]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push 0x65
push dword [ebp - 0x124]
call dword [sym.imp.USER32.dll_LoadIconW]
push 0
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov edi, dword [0x4a2bec]
mov dword [ebp - 0x24], edi
test edi, edi
je 0x453a01
inc dword [edi + 0xb0]
push 0x6218
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
lea ecx, [ebp - 0x139]
mov dword [ebp - 0x3c], eax
add esp, 4
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x453a3a
push 0
mov ecx, eax
call fcn.0040f920
jmp 0x453a3c
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x4a2bec], eax
call fcn.00416b00
test edi, edi
je 0x453a59
mov dword [0x4a2bec], edi
jmp 0x453a62
mov edi, dword [0x4a2bec]
mov dword [ebp - 0x24], edi
or dword [edi + 8], 0x401
lea eax, [ebp - 0x108]
push 0x78
push 0
push eax
call sub.VCRUNTIME140.dll_memset
movss xmm2, dword [0x49cfd8]
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x20], 0xff0020
mov word [ebp - 0x18], ax
mov esi, 0xffff
lea eax, [ebp - 0x20]
mov dword [ebp - 0x1c], 0x44f0400
mov ecx, dword [edi + 0x40]
push eax
lea eax, [ebp - 0x108]
mov byte [ebp - 0x100], 1
push eax
push str.C:WindowsFonts_verdana.ttf
mov dword [ebp - 0xf0], 1
mov dword [ebp - 0xd0], 0x7f7fffff
mov dword [ebp - 0xc4], 0x3f800000
mov word [ebp - 0xc0], si
mov dword [ebp - 0xf4], 2
call fcn.0043db50
movss xmm2, dword [0x49cfe0]
mov ecx, dword [edi + 0x40]
mov dword [0x4a2bfc], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x108]
push eax
push str.C:WindowsFonts_verdana.ttf
call fcn.0043db50
movss xmm2, dword [0x49cfe8]
mov ecx, dword [edi + 0x40]
mov dword [0x4a2c00], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x108]
push eax
push str.C:WindowsFonts_verdanab.ttf
call fcn.0043db50
movss xmm2, dword [0x49cfe4]
mov ecx, dword [edi + 0x40]
mov dword [0x4a2bf4], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x108]
push eax
push str.C:WindowsFonts_verdana.ttf
call fcn.0043db50
movss xmm2, dword [0x49cff0]
lea eax, [ebp - 0x20]
mov ecx, dword [edi + 0x40]
push eax
lea eax, [ebp - 0x108]
push eax
push str.C:WindowsFonts_verdanab.ttf
call fcn.0043db50
push 0x78
mov dword [0x4a2bf8], eax
lea eax, [ebp - 0x108]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [ebp - 0x100], 1
lea eax, [ebp - 0x108]
mov dword [ebp - 0xd0], 0x7f7fffff
mov dword [ebp - 0xc4], 0x3f800000
mov word [ebp - 0xc0], si
push 0x49ce80
push eax
push ecx
mov byte [ebp - 0xcc], 1
mov byte [ebp - 0xec], 1
mov dword [ebp - 0xf4], 3
mov dword [ebp - 0xf0], 3
push 0x47cab8
movss xmm3, dword [0x49cfec]
mov ecx, dword [edi + 0x40]
call fcn.0043dd10
mov esi, dword [edi + 0x40]
cmp dword [esi + 0x4c], 0
jne 0x453c0a
push 0
mov ecx, esi
call fcn.0043da00
mov eax, dword [esi + 0x458]
test eax, eax
jne 0x453c23
mov dword [0x4a31d0], 0x43e020
mov eax, 0x4a31d0
mov eax, dword [eax]
push esi
call eax
add esp, 4
xor ecx, ecx
call fcn.00439830
test dword [edi + 8], 0x400
mov eax, dword [0x4a2bec]
je 0x453c54
mov dword [eax + 0x3864], 0x40800000
mov dword [eax + 0x3948], 0x3f800000
mov esi, dword [ebp - 0x140]
push 2
push esi
call dword [sym.imp.USER32.dll_MonitorFromWindow]
xorps xmm0, xmm0
lea ecx, [ebp - 0x80]
push ecx
movups xmmword [ebp - 0x80], xmm0
push eax
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x80], 0x28
movq qword [ebp - 0x60], xmm0
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
mov eax, dword [ebp - 0x70]
sub eax, dword [ebp - 0x78]
cmp eax, 0x438
jle 0x453cff
push 0x78
lea eax, [ebp - 0x108]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [0x4a2bec]
add esp, 0xc
mov eax, 0xffff
mov byte [ebp - 0x100], 1
mov word [ebp - 0xc0], ax
lea eax, [ebp - 0x108]
mov dword [ebp - 0xf4], 3
mov ecx, dword [ecx + 0x40]
push eax
mov dword [ebp - 0xf0], 1
mov dword [ebp - 0xd0], 0x7f7fffff
mov dword [ebp - 0xc4], 0x3f800000
mov dword [ebp - 0xf8], 0x41d00000
call fcn.0043da00
mov eax, dword [0x4a2bec]
mov ecx, esi
mov dword [eax + 0x20], 0
call fcn.00443160
mov eax, dword [0x4a2c0c]
mov edi, dword [0x4a2bec]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x4a2c10]
mov dword [ebp - 0x84], eax
test edi, edi
je 0x453d35
inc dword [edi + 0xb0]
push 0x40
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
je 0x453db7
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0x1388
mov dword [esi + 0x3c], 0x2710
jmp 0x453db9
xor esi, esi
mov ecx, dword [ebp - 0x84]
lea edx, [ebp - 0x8c]
or dword [edi + 0xc], 0x1008
push edx
mov dword [edi + 0x78], esi
mov dword [edi + 0x70], str.imgui_impl_dx11
mov eax, dword [ecx]
push 0x49caf8
push ecx
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x88], 0
call dword [eax]
test eax, eax
jne 0x453e52
mov ecx, dword [ebp - 0x8c]
lea edx, [ebp - 0x90]
push edx
push 0x49cb08
push ecx
mov eax, dword [ecx]
call dword [eax + 0x18]
test eax, eax
jne 0x453e52
mov ecx, dword [ebp - 0x90]
lea edx, [ebp - 0x88]
push edx
push 0x49cb28
push ecx
mov eax, dword [ecx]
call dword [eax + 0x18]
test eax, eax
jne 0x453e52
mov eax, dword [ebp - 0x84]
mov dword [esi], eax
mov eax, dword [ebp - 0x3c]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x88]
mov dword [esi + 8], eax
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
je 0x453e62
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x90]
test ecx, ecx
je 0x453e72
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esi]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov eax, dword [esi + 4]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
test dword [edi + 8], 0x400
je 0x453ec3
mov eax, dword [0x4a2bec]
mov dword [eax + 0x3810], 0x442e40
mov dword [eax + 0x3814], 0x442f60
mov dword [eax + 0x3818], 0x442fc0
mov dword [eax + 0x381c], 0x4430b0
mov dword [eax + 0x3820], 0x443140
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov byte [ebp - 0x84], 0
push 1
push 0
push 0
push 0
lea eax, [ebp - 0x58]
push eax
call esi
test eax, eax
je 0x453f24
lea eax, [ebp - 0x58]
push eax
call edi
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov eax, dword [ebp - 0x84]
mov ecx, 1
cmp dword [ebp - 0x54], 0x12
push ecx
movzx eax, al
push 0
cmove eax, ecx
push 0
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x58]
push 0
push eax
call esi
test eax, eax
jne 0x453ee8
push 0x23
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
jne 0x4540bd
cmp byte [ebp - 0x84], 0
jne 0x4540bd
mov eax, dword [0x4a2bec]
test eax, eax
je 0x453f4f
mov eax, dword [eax + 0x78]
jmp 0x453f51
xor eax, eax
cmp dword [eax + 0x24], 0
jne 0x453f5c
call fcn.004429b0
call fcn.00443f30
call fcn.004159d0
call fcn.004058a0
call fcn.00418330
call fcn.00418800
mov eax, dword [0x4a2c0c]
movaps xmm0, xmmword [0x49d1e0]
push 0
push 0x4a2c08
movups xmmword [ebp - 0x38], xmm0
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x84]
mov eax, dword [0x4a2c0c]
lea edx, [ebp - 0x38]
push edx
push dword [0x4a2c08]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc8]
mov eax, dword [0x4a2bec]
xor ecx, ecx
mov eax, dword [eax + 0x40e0]
mov eax, dword [eax]
sub eax, 0xffffff80
cmp byte [eax], cl
cmovne ecx, eax
call fcn.00441f30
mov eax, dword [ebp - 0x24]
test dword [eax + 8], 0x400
je 0x4540a1
call fcn.00428270
mov esi, dword [0x4a2bec]
mov edi, 1
mov eax, dword [esi + 0x3830]
cmp eax, edi
jle 0x454047
nop word [eax + eax]
mov eax, dword [esi + 0x3838]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x3c], eax
test dword [eax + 4], 0x400
jne 0x45403c
mov ecx, dword [esi + 0x37fc]
test ecx, ecx
je 0x45402a
push 0
push eax
call ecx
mov eax, dword [ebp - 0x3c]
add esp, 8
mov ecx, dword [esi + 0x381c]
test ecx, ecx
je 0x45403c
push 0
push eax
call ecx
add esp, 8
mov eax, dword [esi + 0x3830]
inc edi
cmp edi, eax
jl 0x454000
mov edi, 1
cmp eax, edi
jle 0x454095
mov eax, dword [esi + 0x3838]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x3c], eax
test dword [eax + 4], 0x400
jne 0x45408c
mov ecx, dword [esi + 0x3800]
test ecx, ecx
je 0x45407a
push 0
push eax
call ecx
mov eax, dword [ebp - 0x3c]
add esp, 8
mov ecx, dword [esi + 0x3820]
test ecx, ecx
je 0x45408c
push 0
push eax
call ecx
add esp, 8
inc edi
cmp edi, dword [esi + 0x3830]
jl 0x454050
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
mov eax, dword [0x4a2c04]
push 0
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
cmp byte [0x4a20ac], 1
je 0x453ed6
mov edi, dword [0x4a2bec]
test edi, edi
je 0x4540cc
mov esi, dword [edi + 0x78]
jmp 0x4540ce
xor esi, esi
call fcn.004287b0
call fcn.00442d30
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4540e5
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [esi]
test ecx, ecx
je 0x4540f1
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4540fe
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [0x4a2bec]
mov dword [edi + 0x70], 0
mov dword [edi + 0x78], 0
test eax, eax
je 0x45411b
dec dword [eax + 0xb0]
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push esi
call edi
mov esi, dword [0x4a2bec]
add esp, 4
test esi, esi
je 0x45413c
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x84], eax
jmp 0x454146
mov dword [ebp - 0x84], 0
push 0
call dword [ebp - 0x144]
push eax
push str.ImGui_Platform
call dword [sym.imp.USER32.dll_UnregisterClassW]
call fcn.004287b0
mov ecx, dword [ebp - 0x84]
mov eax, dword [ecx + 0x28]
test eax, eax
je 0x454179
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp - 0x84]
mov eax, dword [0x4a2bec]
mov dword [esi + 0x6c], 0
mov dword [esi + 0x74], 0
test eax, eax
je 0x454196
dec dword [eax + 0xb0]
push ecx
call edi
mov esi, dword [0x4a2bec]
add esp, 4
mov dword [0x4a2bec], esi
call fcn.00416d60
mov dword [0x4a2bec], 0
test esi, esi
je 0x4541d7
mov ecx, esi
call fcn.00432060
mov eax, dword [0x4a2bec]
test eax, eax
je 0x4541d1
dec dword [eax + 0xb0]
push esi
call edi
add esp, 4
call fcn.004534c0
push dword [ebp - 0x140]
call dword [sym.imp.USER32.dll_DestroyWindow]
push dword [ebp - 0x124]
push dword [ebp - 0x110]
call dword [sym.imp.USER32.dll_UnregisterClassW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00454557
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret