Function at 0x43a2e0
Capabilities:
Hide graphical window
Inspect load icon resource
Log keystrokes via polling

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 0x43d5d6
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1b0
mov eax, dword [0x44500c]
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 [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0
mov dword [ebp - 0x108], 0x30
mov dword [ebp - 0x104], 0x40
mov dword [ebp - 0x100], 0x43b0b0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0x124], eax
call eax
mov dword [ebp - 0xf4], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x108]
mov dword [ebp - 0xe0], str.Loaders
push eax
movups xmmword [ebp - 0xf0], xmm0
mov dword [ebp - 0xdc], 0
call dword [sym.imp.USER32.dll_RegisterClassExA]
push 0
push dword [ebp - 0xf4]
push 0
push 0
push 5
push 5
push 0
push 0
push 0x80000000
push str.Loaders
push dword [ebp - 0xe0]
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, eax
push 0x20
mov dword [0x445648], esi
call dword [sym.imp.d3d9.dll_Direct3DCreate9]
mov ecx, eax
mov dword [0x445644], ecx
test ecx, ecx
je 0x43b03d
push 0x445640
push 0x445608
push 0x40
xorps xmm0, xmm0
mov dword [0x44561c], 0
push esi
push 1
movlpd qword [0x445608], xmm0
movlpd qword [0x445614], xmm0
mov dword [0x445624], 0
movlpd qword [0x445634], xmm0
mov dword [0x445628], 1
mov dword [0x445620], 1
mov dword [0x445610], 0
mov dword [0x44562c], 1
mov dword [0x445630], 0x50
mov dword [0x44563c], 1
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x40]
test eax, eax
js 0x43b037
push 0
push dword [0x445648]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x445648]
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0x65
push dword [ebp - 0xf4]
call dword [sym.imp.USER32.dll_LoadIconA]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
mov edi, eax
push edi
push 1
push 0x80
push dword [0x445648]
call esi
push edi
push 0
push 0x80
push dword [0x445648]
call esi
call dword [sym.imp.KERNEL32.dll_AllocConsole]
push 0
push str.ConsoleWindowClass
call dword [sym.imp.USER32.dll_FindWindowA]
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x445600]
test eax, eax
je 0x43a4e4
inc dword [eax + 0x374]
push 0x3e70
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov dword [ebp - 0x120], eax
lea ecx, [ebp - 0x111]
add esp, 4
mov dword [ebp - 0x11c], ecx
mov dword [ebp - 0x110], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x43a520
push 0
mov ecx, eax
call fcn.00401530
jmp 0x43a522
xor eax, eax
mov dword [ebp - 4], 0xffffffff
cmp dword [0x445600], 0
jne 0x43a537
mov dword [0x445600], eax
mov ecx, eax
call fcn.00407e30
mov eax, dword [0x445600]
mov dword [ebp - 0x120], eax
push ecx
mov ecx, str.C:WindowsFontsmalgunbd.ttf
mov dword [ebp - 0x10c], 0
or dword [eax + 8], 0x400
mov dword [eax + 0x20], 0
mov eax, dword [eax + 0x98]
mov dword [ebp - 0x110], eax
lea eax, [ebp - 0x10c]
push eax
call fcn.00403050
add esp, 8
mov dword [ebp - 0x118], eax
test eax, eax
je 0x43a68a
push 0x78
lea eax, [ebp - 0x1c0]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, 0xffff
mov byte [ebp - 0x1b8], 1
add esp, 0xc
mov dword [ebp - 0x1ac], 3
cmp byte [ebp - 0x176], 0
lea esi, [ebp - 0x1c0]
mov ecx, 0x1e
mov dword [ebp - 0x1a8], 1
lea edi, [ebp - 0xc8]
mov dword [ebp - 0x188], 0x7f7fffff
mov dword [ebp - 0x17c], 0x3f800000
mov word [ebp - 0x178], ax
rep movsd dword es:[edi], dword [esi]
jne 0x43a639
mov eax, 0x442c75
nop
mov dl, byte [eax - 1]
cmp dl, 0x2f
je 0x43a615
cmp dl, 0x5c
je 0x43a615
dec eax
cmp eax, str.C:WindowsFontsmalgunbd.ttf
ja 0x43a600
movsd xmm0, qword [0x442e70]
sub esp, 8
movsd qword [esp], xmm0
push eax
push str._s___.0fpx
lea eax, [ebp - 0x7e]
push 0x28
push eax
call fcn.00402ea0
add esp, 0x18
mov eax, dword [ebp - 0x118]
lea esi, [ebp - 0xc8]
mov ecx, 0x1e
lea edi, [ebp - 0x1c0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0x1c0], eax
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x1bc], eax
lea eax, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x1b0], 0x41800000
mov dword [ebp - 0x190], 0x44297c
call fcn.0042b360
mov eax, dword [0x445600]
movaps xmm6, xmmword [0x442fc0]
movaps xmm5, xmmword [0x443030]
movaps xmm7, xmmword [0x443020]
movaps xmm3, xmmword [0x442fd0]
movaps xmm2, xmmword [0x442fe0]
movaps xmm4, xmmword [0x442ff0]
movaps xmm1, xmmword [0x443000]
movaps xmm0, xmmword [0x443010]
mov dword [eax + 0x165c], 0x3f800000
mov dword [eax + 0x1660], 0x3f800000
mov dword [eax + 0x1664], 0x3f800000
mov dword [eax + 0x1668], 0x3f800000
movups xmmword [eax + 0x166c], xmm0
movups xmmword [eax + 0x196c], xmm5
movups xmmword [eax + 0x167c], xmm6
mov dword [eax + 0x168c], 0x3ef2f2f3
mov dword [eax + 0x1690], 0x3ef2f2f3
mov dword [eax + 0x1694], 0x3ef2f2f3
mov dword [eax + 0x1698], 0x3f800000
movups xmmword [eax + 0x169c], xmm6
movups xmmword [eax + 0x16ac], xmm2
movups xmmword [eax + 0x16bc], xmm2
movups xmmword [eax + 0x16cc], xmm3
movups xmmword [eax + 0x16dc], xmm7
movups xmmword [eax + 0x16ec], xmm5
movups xmmword [eax + 0x16fc], xmm6
movups xmmword [eax + 0x170c], xmm6
movups xmmword [eax + 0x171c], xmm6
movups xmmword [eax + 0x172c], xmm3
movups xmmword [eax + 0x173c], xmm3
movups xmmword [eax + 0x174c], xmm4
movups xmmword [eax + 0x175c], xmm1
movups xmmword [eax + 0x176c], xmm1
movups xmmword [eax + 0x177c], xmm5
movups xmmword [eax + 0x178c], xmm7
movups xmmword [eax + 0x179c], xmm5
movups xmmword [eax + 0x17ac], xmm3
movups xmmword [eax + 0x17bc], xmm7
movups xmmword [eax + 0x17cc], xmm7
movups xmmword [eax + 0x17dc], xmm3
movups xmmword [eax + 0x17ec], xmm7
movups xmmword [eax + 0x17fc], xmm5
movups xmmword [eax + 0x180c], xmm2
movups xmmword [eax + 0x181c], xmm2
movups xmmword [eax + 0x182c], xmm2
movups xmmword [eax + 0x183c], xmm6
movups xmmword [eax + 0x184c], xmm3
movups xmmword [eax + 0x185c], xmm4
movups xmmword [eax + 0x18dc], xmm5
movups xmmword [eax + 0x18ec], xmm7
movups xmmword [eax + 0x18fc], xmm5
movups xmmword [eax + 0x190c], xmm7
movups xmmword [eax + 0x197c], xmm6
movups xmmword [eax + 0x198c], xmm6
movups xmmword [eax + 0x18bc], xmm5
movups xmmword [eax + 0x186c], xmm6
movups xmmword [eax + 0x188c], xmm5
movups xmmword [eax + 0x189c], xmm6
movups xmmword [eax + 0x18ac], xmm5
movups xmmword [eax + 0x187c], xmm7
mov dword [eax + 0x15a4], 0
mov dword [eax + 0x15c0], 0
mov dword [eax + 0x15d8], 0
mov dword [eax + 0x1614], 0
mov dword [eax + 0x15c8], 0
mov dword [eax + 0x160c], 0
mov dword [eax + 0x161c], 0
call fcn.004306f0
mov ecx, dword [0x445640]
mov esi, dword [0x445600]
push ecx
mov dword [0x44566c], ecx
or dword [esi + 0xc], 0x1008
mov dword [esi + 0xc8], str.imgui_impl_dx9
mov eax, dword [ecx]
call dword [eax + 4]
test dword [esi + 8], 0x400
je 0x43a8ff
mov eax, dword [0x445600]
mov dword [eax + 0x156c], 0x430430
mov dword [eax + 0x1570], 0x430500
mov dword [eax + 0x1574], 0x430560
mov dword [eax + 0x1578], 0x4305b0
mov dword [eax + 0x157c], 0x4306d0
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
movd xmm1, dword [ebp - 0x44]
xorps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mov dword [ebp - 0x24], 0
movups xmmword [ebp - 0x3c], xmm0
subss xmm1, dword [0x442ed0]
movq qword [ebp - 0x2c], xmm0
mulss xmm1, dword [0x442dec]
movss dword [ebp - 0x118], xmm1
movd xmm1, dword [ebp - 0x40]
cvtdq2ps xmm1, xmm1
subss xmm1, dword [0x442ec8]
mulss xmm1, dword [0x442dec]
movss dword [ebp - 0x11c], xmm1
push 1
push 0
push 0
push 0
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x43a992
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x43aef7
cmp dword [0x445664], 0
jne 0x43a9a0
call fcn.004302d0
mov esi, dword [0x445600]
lea eax, [ebp - 0xd8]
push eax
push dword [0x445684]
xorps xmm0, xmm0
mov dword [ebp - 0x10c], esi
movups xmmword [ebp - 0xd8], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0xd0]
sub eax, dword [ebp - 0xd8]
movd xmm1, eax
mov eax, dword [ebp - 0xcc]
sub eax, dword [ebp - 0xd4]
cmp byte [0x445022], 0
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x10], xmm1
movss dword [esi + 0x14], xmm0
je 0x43aa50
mov esi, dword [0x445600]
mov ecx, dword [esi + 0x1584]
test ecx, ecx
jns 0x43aa2e
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [esi + 0x1580]
call fcn.0041fca0
push 0
push 0x430fc0
push 0
push 0
mov dword [esi + 0x1580], 0
call dword [sym.imp.USER32.dll_EnumDisplayMonitors]
mov byte [0x445022], 0
lea eax, [ebp - 0x20]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x20], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edi, dword [ebp - 0x20]
mov ecx, edi
sub ecx, dword [0x445688]
mov esi, dword [ebp - 0x1c]
mov edx, esi
sbb edx, dword [0x44568c]
call fcn.0043d340
mov edx, dword [0x445694]
mov ecx, dword [0x445690]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x110], xmm0
call fcn.0043d340
movss xmm1, dword [ebp - 0x110]
cvtsd2ss xmm0, xmm0
mov eax, dword [ebp - 0x10c]
push 0x11
divss xmm1, xmm0
movss dword [eax + 0x18], xmm1
mov dword [0x445688], edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [0x44568c], esi
call edi
mov esi, dword [ebp - 0x10c]
shr eax, 0xf
and al, 1
push 0x10
mov byte [esi + 0x100], al
call edi
shr eax, 0xf
and al, 1
push 0x12
mov byte [esi + 0x101], al
call edi
shr eax, 0xf
and al, 1
mov byte [esi + 0x103], 0
mov byte [esi + 0x102], al
call fcn.00430b70
cmp byte [esi + 0xb7], 0
je 0x43ab14
or eax, 0xffffffff
jmp 0x43ab1f
mov eax, dword [0x445600]
mov eax, dword [eax + 0x1f58]
cmp dword [0x4451d4], eax
je 0x43ab31
mov dword [0x4451d4], eax
call fcn.00430a40
call fcn.00430d20
call fcn.00406cd0
mov eax, dword [0x445600]
mov edx, 0x445020
movss xmm0, dword [ebp - 0x118]
mov ecx, str.www.frostk.com
push 0x148
or dword [eax + 0x1cd0], 0x43
movss dword [eax + 0x1ce4], xmm0
movss xmm0, dword [ebp - 0x11c]
movss dword [eax + 0x1ce8], xmm0
mov dword [eax + 0x1cec], 0
mov dword [eax + 0x1cf0], 0
mov dword [eax + 0x1cd4], 2
mov byte [eax + 0x1d0c], 1
mov dword [eax + 0x1cf4], 0x43af0000
mov dword [eax + 0x1cf8], 0x43160000
mov dword [eax + 0x1cd8], 1
mov dword [eax + 0x1d28], 0x3f800000
call fcn.0040c760
add esp, 4
push str.HeroesWanted.exe
push str.Game_Process_Name_:__s
call fcn.004335d0
push dword [0x445698]
push str.Process_ID_:__d
call fcn.004335d0
mov ecx, dword [0x445600]
add esp, 0x10
movss xmm7, dword [0x442f00]
mov eax, dword [ecx + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
cmp byte [eax + 0xc8], 0
jne 0x43ac3f
movaps xmm1, xmm7
mov dword [ebp - 0x12c], 0
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x128], 0
call fcn.00410140
mov ecx, dword [0x445600]
mov eax, dword [ecx + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
cmp byte [eax + 0xc8], 0
jne 0x43ac83
movaps xmm1, xmm7
mov dword [ebp - 0x134], 0
lea ecx, [ebp - 0x134]
mov dword [ebp - 0x130], 0
call fcn.00410140
mov ecx, dword [0x445600]
mov eax, dword [ecx + 0x1c48]
cmp byte [eax + 0xc8], 0
jne 0x43acaa
mov ecx, dword [eax + 0x1d8]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.00435110
mov ecx, dword [0x445600]
mov eax, dword [ecx + 0x1c48]
movss xmm7, dword [0x442f00]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
cmp byte [eax + 0xc8], 0
jne 0x43acf6
movaps xmm1, xmm7
mov dword [ebp - 0x13c], 0
lea ecx, [ebp - 0x13c]
mov dword [ebp - 0x138], 0
call fcn.00410140
mov ecx, dword [0x445600]
mov eax, dword [ecx + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
cmp byte [eax + 0xc8], 0
jne 0x43ad34
movaps xmm1, xmm7
mov dword [ebp - 0x144], 0
lea ecx, [ebp - 0x144]
mov dword [ebp - 0x140], 0
call fcn.00410140
cmp dword [0x445698], 0
je 0x43ad5f
mov edx, dword [0x445650]
mov ecx, 0x442cb0
call fcn.00434cf0
mov edx, dword [0x44564c]
mov ecx, str._______
call fcn.00434cf0
jmp 0x43ad6c
push str.__.
call fcn.004335d0
add esp, 4
call fcn.0040faf0
call fcn.004091f0
mov eax, dword [0x445640]
push 0
mov ecx, dword [eax]
push ecx
mov dword [esp], 0x3f800000
push 0
push 3
push 0
push 0
push eax
call dword [ecx + 0xac]
mov eax, dword [0x445640]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xa4]
test eax, eax
js 0x43add7
call fcn.00409630
mov eax, dword [0x445600]
xor ecx, ecx
mov eax, dword [eax + 0x1dd8]
mov eax, dword [eax]
sub eax, 0xffffff80
cmp byte [eax], cl
cmovne ecx, eax
call fcn.0042fbd0
mov eax, dword [0x445640]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xa8]
mov eax, dword [ebp - 0x120]
test dword [eax + 8], 0x400
je 0x43aebd
call fcn.004172f0
mov esi, dword [0x445600]
mov edi, 1
mov eax, dword [esi + 0x158c]
lea ecx, [esi + 0x1594]
mov dword [ebp - 0x10c], ecx
cmp eax, edi
jle 0x43ae61
mov eax, dword [ecx]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x110], eax
test dword [eax + 4], 0x400
jne 0x43ae54
mov ecx, dword [esi + 0x1554]
test ecx, ecx
je 0x43ae3c
push 0
push eax
call ecx
mov eax, dword [ebp - 0x110]
add esp, 8
mov ecx, dword [esi + 0x1578]
test ecx, ecx
je 0x43ae4e
push 0
push eax
call ecx
add esp, 8
mov ecx, dword [ebp - 0x10c]
mov eax, dword [esi + 0x158c]
inc edi
cmp edi, eax
jl 0x43ae10
jmp 0x43ae67
mov dword [ebp - 0x10c], ecx
mov edi, 1
cmp eax, edi
jle 0x43aebd
mov eax, dword [ecx]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x110], eax
test dword [eax + 4], 0x400
jne 0x43aeb4
mov ecx, dword [esi + 0x1558]
test ecx, ecx
je 0x43ae9c
push 0
push eax
call ecx
mov eax, dword [ebp - 0x110]
add esp, 8
mov ecx, dword [esi + 0x157c]
test ecx, ecx
je 0x43aeae
push 0
push eax
call ecx
add esp, 8
mov ecx, dword [ebp - 0x10c]
inc edi
cmp edi, dword [esi + 0x158c]
jl 0x43ae70
mov eax, dword [0x445640]
push 0
push 0
push 0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x44]
cmp eax, 0x88760868
jne 0x43aeee
mov eax, dword [0x445640]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
cmp eax, 0x88760869
jne 0x43aeee
call fcn.0043a260
cmp byte [0x445020], 0
je 0x43af03
cmp dword [ebp - 0x38], 0x12
jne 0x43a963
jmp 0x43af11
mov byte [0x445023], 0
mov dword [ebp - 0x38], 0x12
call fcn.00417840
call fcn.00430330
mov ecx, dword [0x44566c]
test ecx, ecx
je 0x43af35
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x44566c], 0
push 0
call dword [ebp - 0x124]
mov edi, dword [sym.imp.USER32.dll_UnregisterClassA]
push eax
push str.ImGui_Platform
call edi
mov eax, dword [0x445678]
test eax, eax
je 0x43af5b
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [0x445600]
xorps xmm0, xmm0
mov ecx, esi
mov dword [0x445678], 0
mov dword [0x44567c], 0
mov dword [0x445680], 0
mov dword [0x445684], 0
movlpd qword [0x445688], xmm0
movlpd qword [0x445690], xmm0
mov dword [0x4451d4], 9
mov byte [0x445674], 0
mov byte [0x445021], 1
call fcn.004080a0
cmp dword [0x445600], esi
jne 0x43afcd
mov dword [0x445600], 0
test esi, esi
je 0x43aff1
mov ecx, esi
call fcn.00420200
mov eax, dword [0x445600]
test eax, eax
je 0x43afe7
dec dword [eax + 0x374]
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov ecx, dword [0x445640]
test ecx, ecx
je 0x43b00b
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x445640], 0
mov ecx, dword [0x445644]
test ecx, ecx
je 0x43b025
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x445644], 0
push dword [ebp - 0xf4]
push dword [ebp - 0xe0]
call edi
xor eax, eax
jmp 0x43b088
mov ecx, dword [0x445644]
mov edx, dword [0x445640]
test edx, edx
je 0x43b05d
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov ecx, dword [0x445644]
mov dword [0x445640], 0
test ecx, ecx
je 0x43b071
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x445644], 0
push dword [ebp - 0xf4]
push dword [ebp - 0xe0]
call dword [sym.imp.USER32.dll_UnregisterClassA]
mov eax, 1
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.0043c2f6
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8