Function at 0x43fb80
Capabilities:
Hide graphical window
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 0x4427d6
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x258
mov eax, dword [0x44c040]
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 [0x44c640]
test eax, eax
je 0x43fbd5
mov eax, dword [eax + 0x74]
test eax, eax
je 0x43fbd5
mov byte [eax + 0x26], 1
xor edx, edx
push ecx
lea ecx, [edx + 0xa]
call fcn.00436770
mov edi, dword fs:[0x2c]
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x43fc4d
mov ecx, dword [edi]
mov eax, dword [0x44c690]
cmp eax, dword [ecx + 4]
jle 0x43fc32
push 0x44c690
call fcn.0044123e
add esp, 4
cmp dword [0x44c690], 0xffffffff
jne 0x43fc32
push str.user32.dll
call esi
push 0x44c690
mov dword [0x44c684], eax
call fcn.004411ed
add esp, 4
push str.SetThreadDpiAwarenessContext
push dword [0x44c684]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x43fc4d
push 0xfffffffffffffffc
call eax
jmp 0x43fcc1
mov edx, 3
push ecx
lea ecx, [edx + 3]
call fcn.00436770
add esp, 4
test eax, eax
je 0x43fcbb
mov ecx, dword [edi]
mov eax, dword [0x44c698]
cmp eax, dword [ecx + 4]
jle 0x43fca0
push 0x44c698
call fcn.0044123e
add esp, 4
cmp dword [0x44c698], 0xffffffff
jne 0x43fca0
push str.shcore.dll
call esi
push 0x44c698
mov dword [0x44c688], eax
call fcn.004411ed
add esp, 4
push str.SetProcessDpiAwareness
push dword [0x44c688]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x43fcbb
push 2
call eax
jmp 0x43fcc1
call dword [sym.imp.USER32.dll_SetProcessDPIAware]
push 0
mov dword [ebp - 0x1dc], 0x30
mov dword [ebp - 0x1d8], 0x40
mov dword [ebp - 0x1d4], 0x43f030
mov dword [ebp - 0x1d0], 0
mov dword [ebp - 0x1cc], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x1c8], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x1dc]
mov dword [ebp - 0x1b4], str.ImGui_Standalone
push eax
movups xmmword [ebp - 0x1c4], xmm0
mov dword [ebp - 0x1b0], 0
call dword [sym.imp.USER32.dll_RegisterClassExW]
push 0
push dword [ebp - 0x1c8]
push 0
push 0
push 0x32
push 0x32
push 0x64
push 0x64
push 0xcf0000
push str.ImGui_Standalone
push dword [ebp - 0x1b4]
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov esi, eax
mov dword [ebp - 0x1c], 0xb000
push 0xfffffffffffffff0
push esi
mov dword [ebp - 0x264], esi
mov dword [ebp - 0x18], 0xa100
mov dword [ebp - 0x1fc], 0
mov dword [ebp - 0x1f4], 1
mov dword [ebp - 0x20c], 0x1c
mov dword [ebp - 0x1f8], 0x20
mov dword [ebp - 0x1e4], 2
mov dword [ebp - 0x1f0], esi
mov dword [ebp - 0x200], 1
call dword [sym.imp.USER32.dll_GetWindowLongW]
shr eax, 0x1f
push 0x44c654
not al
mov dword [ebp - 0x208], 0
and eax, 1
mov dword [ebp - 0x204], 0
mov dword [ebp - 0x1ec], eax
lea eax, [ebp - 0x50]
push eax
push 0x44c658
push 0x44c648
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1e8], 0
push eax
push 7
push 2
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x21c], 1
push eax
push 0
push 0
push 1
push 0
mov dword [ebp - 0x218], 1
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x210], 1
call dword [sym.imp.d3d11.dll_D3D11CreateDeviceAndSwapChain]
test eax, eax
jns 0x43fe54
push 0x10
push str.Fatal_Error
push str.Failed_to_create_device_and_swapchain.
push esi
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov edi, dword [0x44c640]
mov dword [ebp - 0x18], edi
test edi, edi
je 0x43fe77
inc dword [edi + 0xb0]
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
push 0x6218
call esi
mov dword [ebp - 0x50], eax
lea ecx, [ebp - 0x25d]
add esp, 4
mov dword [ebp - 0x1ac], ecx
mov dword [ebp - 0x25c], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x43feb2
push 0
mov ecx, eax
call fcn.004029b0
jmp 0x43feb4
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x44c640], eax
call fcn.00409900
test edi, edi
je 0x43fed1
mov dword [0x44c640], edi
jmp 0x43feda
mov edi, dword [0x44c640]
mov dword [ebp - 0x18], edi
or dword [edi + 8], 0x401
xor ecx, ecx
call fcn.0042b600
test dword [edi + 8], 0x400
mov eax, dword [0x44c640]
je 0x43ff0a
mov dword [eax + 0x3864], 0x40800000
mov dword [eax + 0x3948], 0x3f800000
mov edi, dword [ebp - 0x264]
push 2
push edi
call dword [sym.imp.USER32.dll_MonitorFromWindow]
xorps xmm0, xmm0
lea ecx, [ebp - 0x94]
push ecx
movups xmmword [ebp - 0x94], xmm0
push eax
movups xmmword [ebp - 0x84], xmm0
mov dword [ebp - 0x94], 0x28
movq qword [ebp - 0x74], xmm0
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x8c]
cmp eax, 0x438
jle 0x43ffc7
push 0x78
lea eax, [ebp - 0x258]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [0x44c640]
add esp, 0xc
mov eax, 0xffff
mov byte [ebp - 0x250], 1
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x258]
mov dword [ebp - 0x244], 3
mov ecx, dword [ecx + 0x40]
push eax
mov dword [ebp - 0x240], 1
mov dword [ebp - 0x220], 0x7f7fffff
mov dword [ebp - 0x214], 0x3f800000
mov dword [ebp - 0x248], 0x41d00000
call fcn.0042f270
mov eax, dword [0x44c640]
mov ecx, edi
mov dword [eax + 0x20], 0
call fcn.00434780
mov eax, dword [0x44c654]
mov edi, dword [0x44c640]
mov dword [ebp - 0x50], eax
mov eax, dword [0x44c658]
mov dword [ebp - 0x25c], eax
test edi, edi
je 0x43fffd
inc dword [edi + 0xb0]
push 0x40
call esi
mov esi, eax
add esp, 4
mov dword [ebp - 0x1ac], esi
test esi, esi
je 0x44002d
push 0x40
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esi + 0x38], 0x1388
mov dword [esi + 0x3c], 0x2710
jmp 0x44002f
xor esi, esi
mov ecx, dword [ebp - 0x25c]
lea edx, [ebp - 0x1a4]
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 0x448750
push ecx
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1ac], 0
call dword [eax]
test eax, eax
jne 0x4400c8
mov eax, dword [ebp - 0x1a4]
lea edx, [ebp - 0x1a8]
push edx
push 0x448760
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
test eax, eax
jne 0x4400c8
mov eax, dword [ebp - 0x1a8]
lea edx, [ebp - 0x1ac]
push edx
push 0x448780
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
test eax, eax
jne 0x4400c8
mov eax, dword [ebp - 0x25c]
mov dword [esi], eax
mov eax, dword [ebp - 0x50]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x1ac]
mov dword [esi + 8], eax
mov ecx, dword [ebp - 0x1a4]
test ecx, ecx
je 0x4400d8
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x1a8]
test ecx, ecx
je 0x4400e8
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 0x440139
mov eax, dword [0x44c640]
mov dword [eax + 0x3810], 0x434450
mov dword [eax + 0x3814], 0x434580
mov dword [eax + 0x3818], 0x4345e0
mov dword [eax + 0x381c], 0x4346d0
mov dword [eax + 0x3820], 0x434760
mov edi, dword [0x44c654]
lea eax, [ebp - 0x17b]
mov esi, dword [0x44c658]
xorps xmm0, xmm0
push 0xe3
push 0
push eax
movq qword [ebp - 0x1a0], xmm0
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esi]
lea ecx, [ebp - 0x1a0]
movaps xmm0, xmmword [0x448e00]
add esp, 0xc
movups xmmword [ebp - 0x198], xmm0
mov dword [ebp - 0x188], 2
mov dword [ebp - 0x184], 1
push 0x44c650
push ecx
push esi
mov dword [ebp - 0x180], 1
mov byte [ebp - 0x17c], 0xf
call dword [eax + 0x50]
mov eax, dword [edi]
lea ecx, [ebp - 0x2c]
push 0xffffffffffffffff
push ecx
push dword [0x44c650]
xorps xmm0, xmm0
push edi
movups xmmword [ebp - 0x2c], xmm0
call dword [eax + 0x8c]
mov byte [ebp - 0x1a8], 0
call fcn.0043f1d0
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
nop
push 1
push 0
push 0
push 0
lea eax, [ebp - 0x6c]
push eax
call esi
test eax, eax
je 0x44022e
lea eax, [ebp - 0x6c]
push eax
call edi
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov eax, dword [ebp - 0x1a8]
mov ecx, 1
cmp dword [ebp - 0x68], 0x12
push ecx
movzx eax, al
push 0
cmove eax, ecx
push 0
mov dword [ebp - 0x1a8], eax
lea eax, [ebp - 0x6c]
push 0
push eax
call esi
test eax, eax
jne 0x4401f2
push 0x23
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
jne 0x4404fe
cmp byte [ebp - 0x1a8], 0
jne 0x4404fe
mov eax, dword [0x44c640]
test eax, eax
je 0x440259
mov eax, dword [eax + 0x78]
jmp 0x44025b
xor eax, eax
cmp dword [eax + 0x24], 0
jne 0x440266
call fcn.00433ff0
call fcn.00435550
call fcn.004087a0
cmp byte [0x44c0a4], 1
jne 0x440326
mov esi, dword [0x44c640]
push 0x83
mov edx, dword [esi + 0x3fec]
or edx, 2
mov dword [esi + 0x3fec], edx
or edx, 0x40
mov ecx, dword [0x44c0ac]
mov eax, dword [0x44c0a8]
mov dword [esi + 0x4014], ecx
mov ecx, 0x4436c8
mov dword [esi + 0x3fec], edx
mov edx, 0x44c0a4
mov dword [esi + 0x4010], eax
mov dword [esi + 0x3ff4], 2
mov dword [esi + 0x4044], 0
call fcn.0040e8f0
add esp, 4
push str.Create_your_own_menu.
call fcn.004387c0
mov eax, dword [0x44c640]
sub esp, 0xc
movss xmm1, dword [eax + 0x9c]
cvtps2pd xmm0, xmm1
movsd qword [esp + 8], xmm0
movss xmm0, dword [0x448d80]
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.Application_average__.3f_ms_frame___.1f_FPS_
call fcn.004387c0
add esp, 0x14
call fcn.004118c0
call fcn.0040b100
call fcn.0040b5b0
mov eax, dword [0x44c654]
movaps xmm0, xmmword [0x4490c0]
push 0
push 0x44c64c
movups xmmword [ebp - 0x3c], xmm0
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x84]
mov eax, dword [0x44c654]
lea edx, [ebp - 0x3c]
push edx
push dword [0x44c64c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc8]
mov eax, dword [0x44c640]
xor ecx, ecx
mov eax, dword [eax + 0x40e0]
mov eax, dword [eax]
sub eax, 0xffffff80
cmp byte [eax], cl
cmovne ecx, eax
call fcn.00433550
mov eax, dword [0x44c654]
lea edx, [ebp - 0x4c]
push 0xffffffffffffffff
xorps xmm0, xmm0
push edx
movups xmmword [ebp - 0x4c], xmm0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x8c]
mov eax, dword [ebp - 0x18]
test dword [eax + 8], 0x400
je 0x4404d6
call fcn.0041a2c0
mov esi, dword [0x44c640]
mov edx, 1
mov dword [ebp - 0x1a4], edx
mov eax, dword [esi + 0x3830]
cmp eax, edx
jle 0x440448
mov ecx, 4
mov dword [ebp - 0x25c], ecx
nop
mov eax, dword [esi + 0x3838]
mov edi, dword [ecx + eax]
test dword [edi + 4], 0x400
jne 0x44042e
mov eax, dword [esi + 0x37fc]
test eax, eax
je 0x440410
push 0
push edi
call eax
mov ecx, dword [ebp - 0x25c]
add esp, 8
mov edx, dword [ebp - 0x1a4]
mov eax, dword [esi + 0x381c]
test eax, eax
je 0x44042e
push 0
push edi
call eax
mov ecx, dword [ebp - 0x25c]
add esp, 8
mov edx, dword [ebp - 0x1a4]
mov eax, dword [esi + 0x3830]
inc edx
add ecx, 4
mov dword [ebp - 0x1a4], edx
mov dword [ebp - 0x25c], ecx
cmp edx, eax
jl 0x4403e0
mov edx, 1
mov dword [ebp - 0x25c], edx
cmp eax, edx
jle 0x4404d6
mov ecx, 4
mov dword [ebp - 0x1a4], ecx
nop dword [eax]
nop word [eax + eax]
mov eax, dword [esi + 0x3838]
mov edi, dword [ecx + eax]
test dword [edi + 4], 0x400
jne 0x4404be
mov eax, dword [esi + 0x3800]
test eax, eax
je 0x4404a0
push 0
push edi
call eax
mov ecx, dword [ebp - 0x1a4]
add esp, 8
mov edx, dword [ebp - 0x25c]
mov eax, dword [esi + 0x3820]
test eax, eax
je 0x4404be
push 0
push edi
call eax
mov ecx, dword [ebp - 0x1a4]
add esp, 8
mov edx, dword [ebp - 0x25c]
inc edx
add ecx, 4
mov dword [ebp - 0x25c], edx
mov dword [ebp - 0x1a4], ecx
cmp edx, dword [esi + 0x3830]
jl 0x440470
mov eax, dword [0x44c648]
push 0
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
cmp byte [0x44c0a4], 1
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
je 0x4401e0
mov edi, dword [0x44c640]
test edi, edi
je 0x44050d
mov esi, dword [edi + 0x78]
jmp 0x44050f
xor esi, esi
call fcn.0041a810
call fcn.00434340
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x440526
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [esi]
test ecx, ecx
je 0x440532
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x44053f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [0x44c640]
mov dword [edi + 0x70], 0
mov dword [edi + 0x78], 0
test eax, eax
je 0x44055c
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 [0x44c640]
add esp, 4
test esi, esi
je 0x44057d
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x25c], eax
jmp 0x440587
mov dword [ebp - 0x25c], 0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
push str.ImGui_Platform
call dword [sym.imp.USER32.dll_UnregisterClassW]
call fcn.0041a810
mov ecx, dword [ebp - 0x25c]
mov eax, dword [ecx + 0x28]
test eax, eax
je 0x4405ba
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp - 0x25c]
mov eax, dword [0x44c640]
mov dword [esi + 0x6c], 0
mov dword [esi + 0x74], 0
test eax, eax
je 0x4405d7
dec dword [eax + 0xb0]
push ecx
call edi
mov esi, dword [0x44c640]
add esp, 4
mov dword [0x44c640], esi
call fcn.00409b60
mov dword [0x44c640], 0
test esi, esi
je 0x440618
mov ecx, esi
call fcn.00423ed0
mov eax, dword [0x44c640]
test eax, eax
je 0x440612
dec dword [eax + 0xb0]
push esi
call edi
add esp, 4
call fcn.0043efc0
push dword [ebp - 0x264]
call dword [sym.imp.USER32.dll_DestroyWindow]
push dword [ebp - 0x1c8]
push dword [ebp - 0x1b4]
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.004411d1
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret