Function at 0x40d5cd
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1ec
mov eax, dword [0x5836e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
push esi
xor esi, esi
push edi
cmp dword [ebx + 0x398], esi
jne 0x40d5fa
lea ecx, [ebx + 0x180]
call fcn.0042f90e
call fcn.004229f3
mov eax, dword [0x5a229c]
mov edi, 0x7f00
push edi
mov dword [ebp - 0x178], eax
mov eax, dword [0x5a23e4]
mov dword [ebp - 0x180], esi
push esi
mov esi, dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [ebp - 0x18c], 0x30
mov dword [ebp - 0x188], 0x28
mov dword [ebp - 0x184], 0x4111c9
mov dword [ebp - 0x17c], 0x10
mov dword [ebp - 0x174], eax
call esi
mov dword [ebp - 0x170], eax
xor ecx, ecx
mov eax, dword [str.VirtualConsoleClass]
mov dword [ebp - 0x164], eax
mov eax, dword [0x5a23e8]
mov dword [ebp - 0x160], eax
mov eax, dword [0x5a229c]
push edi
mov dword [ebp - 0x1a8], eax
mov eax, dword [0x5a23e4]
push ecx
mov dword [ebp - 0x16c], ecx
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x1bc], 0x30
mov dword [ebp - 0x1b8], 0x28
mov dword [ebp - 0x1b4], 0x41e9a6
mov dword [ebp - 0x1b0], ecx
mov dword [ebp - 0x1ac], 0x10
mov dword [ebp - 0x1a4], eax
call esi
mov dword [ebp - 0x1a0], eax
xor ecx, ecx
mov eax, dword [str.VirtualConsoleClassWork]
mov dword [ebp - 0x194], eax
mov eax, dword [0x5a23e8]
mov dword [ebp - 0x190], eax
mov eax, dword [0x5a229c]
push edi
mov dword [ebp - 0x1d8], eax
xor edi, edi
mov eax, dword [0x5a23e4]
push edi
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0x198], ecx
mov dword [ebp - 0x1ec], 0x30
mov dword [ebp - 0x1e8], 0x28
mov dword [ebp - 0x1e4], 0x4cebc4
mov dword [ebp - 0x1e0], ecx
mov dword [ebp - 0x1dc], 0x10
mov dword [ebp - 0x1d4], eax
call esi
mov esi, dword [sym.imp.USER32.dll_RegisterClassExW]
mov dword [ebp - 0x1d0], eax
mov eax, dword [str.VirtualConsoleClassBack]
mov dword [ebp - 0x1c4], eax
mov eax, dword [0x5a23e8]
mov dword [ebp - 0x1c0], eax
lea eax, [ebp - 0x18c]
push eax
mov dword [ebp - 0x1cc], edi
mov dword [ebp - 0x1c8], edi
call esi
test ax, ax
je 0x40dc0c
lea eax, [ebp - 0x1bc]
push eax
call esi
test ax, ax
je 0x40dc0c
lea eax, [ebp - 0x1ec]
push eax
call esi
test ax, ax
je 0x40dc0c
lea esi, [ebx + 0x3e68]
mov eax, dword [esi]
test eax, eax
je 0x40d7ee
mov eax, dword [eax + 0x228]
test eax, eax
jne 0x40d7bb
push esi
call fcn.00403ba7
pop ecx
jmp 0x40d7ee
lea ecx, [ebp - 0x148]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push 1
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
test eax, eax
jne 0x40d7ee
push edi
push edi
push edi
push edi
push str.Inside:_AttachThreadInput___failed_
call fcn.00420ad9
add esp, 0x14
mov ecx, ebx
call fcn.0040f0d4
mov ecx, ebx
mov dword [ebp - 0x148], eax
call fcn.0040f0b8
mov dword [ebp - 0x154], eax
lea edi, [ebx + 0x180]
mov eax, SysReAllocString
mov ecx, edi
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], eax
mov eax, dword [0x5a2408]
push dword [eax + 0x48]
call fcn.0042b3f8
mov ecx, 0xffffff
mov byte [ebp - 0x135], al
test dword [ebx + 0x320], ecx
je 0x40d849
test dword [ebx + 0x33c], ecx
jne 0x40d852
cmp dword [esi], 0
je 0x40d98b
lea eax, [ebp - 0x134]
mov ecx, edi
push eax
call fcn.0042bcbd
mov eax, dword [0x5a23f0]
cmp byte [eax + 0x11a60], 0
jne 0x40d87b
cmp byte [ebp - 0x135], 0
je 0x40d959
lea esi, [ebp - 0x134]
lea edi, [ebp - 0x114]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x134]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor esi, esi
lea edi, [ebx + 0x180]
push esi
push 0xf
push eax
mov ecx, edi
call fcn.0042b736
test al, al
je 0x40d953
push dword [ebp - 0x130]
lea eax, [ebp - 0x15c]
mov ecx, edi
push dword [ebp - 0x134]
push eax
call fcn.004321d8
mov ecx, eax
push 0x10
push esi
push esi
mov eax, dword [ecx]
mov dword [ebx + 0x358], eax
mov eax, dword [ecx + 4]
mov ecx, edi
mov dword [ebx + 0x35c], eax
lea eax, [ebp - 0x134]
push eax
push 7
lea eax, [ebp - 0x124]
push eax
call fcn.004284c8
mov edx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x12c]
sub edx, dword [ebp - 0x114]
sub eax, dword [ebp - 0x134]
cmp edx, eax
jle 0x40d924
push dword [ebp - 0x11c]
lea ecx, [ebx + 0x320]
push esi
push 1
call fcn.0041a9de
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x128]
sub ecx, dword [ebp - 0x110]
sub eax, dword [ebp - 0x130]
cmp ecx, eax
jle 0x40d953
push dword [ebp - 0x118]
lea ecx, [ebx + 0x33c]
push esi
push esi
call fcn.0041a9de
lea esi, [ebx + 0x3e68]
lea eax, [ebp - 0x134]
mov ecx, edi
push eax
call fcn.00431bf7
mov eax, dword [ebp - 0x12c]
sub eax, dword [ebp - 0x134]
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x128]
sub eax, dword [ebp - 0x130]
mov dword [ebp - 0x140], eax
mov eax, dword [esi]
test eax, eax
je 0x40d999
mov eax, dword [eax + 0x228]
jmp 0x40d99e
mov eax, dword [0x5a22ac]
mov ecx, dword [0x5a23ec]
push 1
mov dword [ebp - 0x13c], eax
call fcn.004673c5
test eax, eax
je 0x40da9b
mov ecx, dword [0x5a23f0]
call fcn.0046d020
push eax
lea eax, [ebp - 0x104]
push str.Current_display_logical_DPI_u
push eax
call fcn.00401133
add esp, 0xc
lea eax, [ebp - 0x104]
mov ecx, ebx
push 1
push 1
push eax
call fcn.00410feb
mov eax, dword [0x5a23ec]
cmp byte [eax + 0x10f91], 0
je 0x40da01
mov eax, dword [eax + 0x11174]
jmp 0x40da07
mov eax, dword [ebx + 0x314]
push eax
call fcn.004211e0
pop ecx
push eax
push dword [ebp - 0x148]
lea ecx, [ebx + 0x978]
push dword [ebp - 0x154]
push dword [ebp - 0x140]
push dword [ebp - 0x144]
push dword [ebx + 0x35c]
push dword [ebx + 0x358]
push dword [ebp - 0x13c]
call fcn.00432d85
test al, al
mov edx, 0x514870
mov ecx, str._Desktop
mov eax, str._Inside
cmove ecx, edx
cmp dword [esi], 0
push ecx
cmove eax, edx
mov ecx, 0x52591c
push eax
mov eax, dword [0x5a23ec]
cmp byte [eax + 0x10f91], 0
lea eax, [ebp - 0x104]
cmove ecx, edx
push ecx
push str.Creating_main_window._s_s_s_Parentx_08X_X_i_Y_i_W_i_H_i_stylex_08X_exStylex_08X_Mode_s
push eax
call fcn.00401133
add esp, 0x34
lea eax, [ebp - 0x104]
mov ecx, ebx
push 1
push 1
push eax
call fcn.00410feb
push dword [ebx + 0x35c]
lea eax, [ebp - 0x150]
mov ecx, edi
push dword [ebx + 0x358]
push eax
call fcn.0042f7e2
mov ecx, dword [0x5a23f0]
call fcn.0046d020
mov ecx, dword [0x5a23f0]
mov esi, eax
call fcn.0046d020
push eax
push esi
lea ecx, [ebp - 0x15c]
call fcn.0043943d
lea eax, [ebp - 0x15c]
mov ecx, edi
push eax
call fcn.004baabe
mov ecx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x114], eax
add eax, 0xa0
mov dword [ebp - 0x10c], eax
lea eax, [ecx + 0x10]
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x108], eax
mov ecx, edi
lea eax, [ebp - 0x114]
push eax
call fcn.004bab9a
mov esi, dword [ebp - 0x13c]
lea ecx, [ebx + 0x3b4]
xor eax, eax
push eax
push dword [0x5a229c]
push eax
push esi
push 0x10
push 0xa0
push dword [ebp - 0x14c]
push dword [ebp - 0x150]
push dword [ebp - 0x154]
push eax
push eax
call fcn.0043300a
push eax
push dword [0x52aa24]
push dword [ebp - 0x148]
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x5a22a4], eax
test eax, eax
jne 0x40db91
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push str.main_window
call fcn.004237fe
add esp, 0xc
xor eax, eax
jmp 0x40dc20
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
push dword [ebx + 0x314]
mov esi, eax
mov ecx, ebx
push esi
call fcn.0040ed64
cmp esi, eax
je 0x40dbbd
push eax
push 0xfffffffffffffff0
push dword [0x5a22a4]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 2
push dword [ebp - 0x140]
mov ecx, edi
push dword [ebp - 0x144]
push dword [ebp - 0x14c]
push dword [ebp - 0x150]
push 0
call fcn.004324ee
mov ecx, ebx
call fcn.00411b99
mov ecx, ebx
call fcn.004175ef
mov ecx, ebx
call fcn.0041c64c
lea ecx, [ebx + 0x204e]
push ecx
call fcn.004d5a7d
pop ecx
call fcn.004d5a28
xor eax, eax
inc eax
jmp 0x40dc20
push edi
push edi
push edi
push edi
push str.Failed_to_register_class_names
call fcn.00420ad9
add esp, 0x14
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004f4166
leave
ret