Function at 0x41dc80
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48e373
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x4b3100]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, edx
mov ebx, ecx
mov dword [ebp - 0x24], ebx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x20], 0
cmp dword [0x4b5fb4], 0
mov dword [ebp - 0x34], eax
je 0x41df18
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 0x18]
mov byte [ebp - 0x39], 1
mov dword [ebp - 0x20], eax
cmp edi, eax
je 0x41dd0b
nop dword [eax]
push dword [edi]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x41dd07
add edi, 4
cmp edi, dword [ebp - 0x20]
jne 0x41dcf0
jmp 0x41dd0b
mov byte [ebp - 0x39], 0
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x24]
mov byte [ebp - 0x3a], 1
mov dword [ebp - 0x20], eax
cmp edi, eax
je 0x41dd3b
nop dword [eax]
push dword [edi]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x41dd37
add edi, 4
cmp edi, dword [ebp - 0x20]
jne 0x41dd20
jmp 0x41dd3b
mov byte [ebp - 0x3a], 0
mov eax, dword [esi + 0x34]
mov cl, 1
mov edi, dword [esi + 0x30]
mov byte [ebp - 0x1b], cl
mov dword [ebp - 0x20], eax
cmp edi, eax
je 0x41dd6f
nop dword [eax]
push dword [edi]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x41dd6a
add edi, 4
cmp edi, dword [ebp - 0x20]
jne 0x41dd50
mov cl, byte [ebp - 0x1b]
jmp 0x41dd6f
xor cl, cl
mov byte [ebp - 0x1b], cl
cmp byte [ebp - 0x39], 0
jne 0x41dd83
cmp byte [ebp - 0x3a], 0
jne 0x41dd83
test cl, cl
je 0x41df18
mov edi, dword [ebp - 0x34]
mov edx, 0x4a1fb4
mov ecx, edi
call fcn.00438610
test al, al
jne 0x41ea97
mov edx, str.floats
mov ecx, edi
call fcn.00438610
test al, al
jne 0x41ea97
mov edx, str.floate
mov ecx, edi
call fcn.00438610
test al, al
jne 0x41ea97
push str.4bytes
lea ecx, [ebp - 0xcc]
call fcn.0042fd20
mov dword [ebp - 4], 6
mov ebx, 1
mov edx, eax
mov dword [ebp - 0x20], ebx
mov ecx, edi
call fcn.004387a0
test al, al
jne 0x41de40
push str.4byte
lea ecx, [ebp - 0xb4]
call fcn.0042fd20
mov dword [ebp - 4], 7
mov ebx, 3
mov edx, eax
mov dword [ebp - 0x20], ebx
mov ecx, edi
call fcn.004387a0
test al, al
jne 0x41de40
push str.4byts
lea ecx, [ebp - 0x9c]
call fcn.0042fd20
mov edx, eax
mov ecx, edi
mov ebx, 7
call fcn.004387a0
mov byte [ebp - 0x15], 0
test al, al
je 0x41de44
mov byte [ebp - 0x15], 1
test bl, 4
je 0x41de57
lea ecx, [ebp - 0x9c]
and ebx, 0xfffffffb
call fcn.00405cd0
test bl, 2
je 0x41de6a
lea ecx, [ebp - 0xb4]
and ebx, 0xfffffffd
call fcn.00405cd0
mov dword [ebp - 4], 0xffffffff
test bl, 1
je 0x41de84
lea ecx, [ebp - 0xcc]
and ebx, 0xfffffffe
call fcn.00405cd0
cmp byte [ebp - 0x15], 0
je 0x41e08f
mov ebx, dword [ebp - 0x2c]
lea eax, [ebp - 0x20]
mov edi, dword [ebp - 0x24]
push 0
push 4
push eax
push ebx
push edi
mov dword [ebp - 0x20], 0
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
cmp byte [ebp - 0x39], 0
je 0x41df71
push 0xa
lea ecx, [esi + 0x3c]
mov dword [ebp - 4], 8
call fcn.00405480
add eax, dword [ebp - 0x20]
lea ecx, [esi + 0xb4]
add esp, 4
mov dword [ebp - 0x24], eax
push 0xa
call fcn.00405480
add esp, 4
cmp dword [ebp - 0x24], eax
jg 0x41df10
push 0
push 4
lea eax, [ebp - 0x24]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41df10
mov edx, 0x4a2298
mov ecx, 0x4b51c8
call fcn.004387f0
push eax
call fcn.00438d10
add esp, 4
push 0x37
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00460925
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x3a], 0
je 0x41e00f
push 0xa
lea ecx, [esi + 0x3c]
mov dword [ebp - 4], 0xa
call fcn.00405480
mov ecx, dword [ebp - 0x20]
add esp, 4
sub ecx, eax
mov dword [ebp - 0x24], ecx
lea ecx, [esi + 0xcc]
push 0xa
call fcn.00405480
add esp, 4
cmp dword [ebp - 0x24], eax
jl 0x41df10
push 0
push 4
lea eax, [ebp - 0x24]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41df10
mov edx, 0x4a2380
jmp 0x41defd
cmp byte [ebp - 0x1b], 0
je 0x41df18
push 0xa
lea ecx, [esi + 0x54]
mov dword [ebp - 4], 0xc
call fcn.00405480
add esp, 4
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push 0
push 4
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41df10
mov edx, 0x4a2468
jmp 0x41defd
push str.8bytes
lea ecx, [ebp - 0x9c]
call fcn.0042fd20
mov dword [ebp - 4], 0xe
or ebx, 8
mov edx, eax
mov dword [ebp - 0x20], ebx
mov ecx, edi
call fcn.004387a0
test al, al
jne 0x41e107
push str.8byte
lea ecx, [ebp - 0xb4]
call fcn.0042fd20
mov dword [ebp - 4], 0xf
or ebx, 0x10
mov edx, eax
mov dword [ebp - 0x20], ebx
mov ecx, edi
call fcn.004387a0
test al, al
jne 0x41e107
push str.8byts
lea ecx, [ebp - 0xcc]
call fcn.0042fd20
mov edx, eax
mov ecx, edi
or ebx, 0x20
call fcn.004387a0
mov byte [ebp - 0x15], 0
test al, al
je 0x41e10b
mov byte [ebp - 0x15], 1
test bl, 0x20
je 0x41e11e
lea ecx, [ebp - 0xcc]
and ebx, 0xffffffdf
call fcn.00405cd0
test bl, 0x10
je 0x41e131
lea ecx, [ebp - 0xb4]
and ebx, 0xffffffef
call fcn.00405cd0
mov dword [ebp - 4], 0xffffffff
test bl, 8
je 0x41e14b
lea ecx, [ebp - 0x9c]
and ebx, 0xfffffff7
call fcn.00405cd0
cmp byte [ebp - 0x15], 0
je 0x41e356
mov ebx, dword [ebp - 0x2c]
lea eax, [ebp - 0x38]
mov edi, dword [ebp - 0x24]
xorps xmm0, xmm0
push 0
push 8
push eax
push ebx
push edi
movlpd qword [ebp - 0x38], xmm0
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
cmp byte [ebp - 0x39], 0
je 0x41e225
push ecx
lea ecx, [esi + 0x3c]
mov dword [ebp - 4], 0x10
call fcn.00405560
add esp, 4
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x28], eax
adc edx, dword [ebp - 0x34]
mov dword [ebp - 0x24], edx
push ecx
lea ecx, [esi + 0xb4]
call fcn.00405560
add esp, 4
cmp dword [ebp - 0x24], edx
jg 0x41e1e3
jl 0x41e1b7
cmp dword [ebp - 0x28], eax
ja 0x41e1e3
push 0
push 8
lea eax, [ebp - 0x28]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41e1e3
mov edx, 0x4a2538
mov ecx, 0x4b51c8
call fcn.004387f0
push eax
call fcn.00438d10
add esp, 4
jmp 0x41df10
cmp byte [ebp - 0x3a], 0
je 0x41e2d4
push ecx
lea ecx, [esi + 0x3c]
mov dword [ebp - 4], 0x12
call fcn.00405560
mov ecx, dword [ebp - 0x38]
add esp, 4
sub ecx, eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x28], ecx
sbb eax, edx
push ecx
lea ecx, [esi + 0xcc]
mov dword [ebp - 0x24], eax
call fcn.00405560
add esp, 4
cmp dword [ebp - 0x24], edx
jl 0x41e1e3
jg 0x41e275
cmp dword [ebp - 0x28], eax
jb 0x41e1e3
push 0
push 8
lea eax, [ebp - 0x28]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41e1e3
mov edx, 0x4a2630
jmp 0x41e1d0
cmp byte [ebp - 0x1b], 0
je 0x41df18
push ecx
lea ecx, [esi + 0x54]
mov dword [ebp - 4], 0x14
call fcn.00405560
add esp, 4
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x24], edx
push 0
push 8
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41e1e3
mov edx, 0x4a2728
jmp 0x41e1d0
mov edx, str.2bytes
mov ecx, edi
call fcn.00438610
test al, al
jne 0x41e8af
mov edx, str.2byte
mov ecx, edi
call fcn.00438610
test al, al
jne 0x41e8af
mov edx, str.2byts
mov ecx, edi
call fcn.00438610
test al, al
jne 0x41e8af
mov edx, str.double
mov ecx, edi
call fcn.00438610
test al, al
jne 0x41e6d5
mov edx, str.doubles
mov ecx, edi
call fcn.00438610
test al, al
jne 0x41e6d5
mov edx, str.duble
mov ecx, edi
call fcn.00438610
test al, al
jne 0x41e6d5
push str.byte
lea ecx, [ebp - 0xe4]
call fcn.0042fd20
mov dword [ebp - 4], 0x22
or ebx, 0x40
mov edx, eax
mov dword [ebp - 0x20], ebx
mov ecx, edi
call fcn.004387a0
test al, al
jne 0x41e47d
push str.bytes
lea ecx, [ebp - 0x9c]
call fcn.0042fd20
mov dword [ebp - 4], 0x23
or ebx, 0x80
mov edx, eax
mov dword [ebp - 0x20], ebx
mov ecx, edi
call fcn.004387a0
test al, al
jne 0x41e47d
push str.1byte
lea ecx, [ebp - 0xb4]
call fcn.0042fd20
mov dword [ebp - 4], 0x24
or ebx, 0x100
mov edx, eax
mov dword [ebp - 0x20], ebx
mov ecx, edi
call fcn.004387a0
test al, al
jne 0x41e47d
push str.1byt
lea ecx, [ebp - 0xcc]
call fcn.0042fd20
mov edx, eax
mov ecx, edi
or ebx, 0x200
call fcn.004387a0
mov byte [ebp - 0x15], 0
test al, al
je 0x41e481
mov byte [ebp - 0x15], 1
test ebx, 0x200
je 0x41e49a
lea ecx, [ebp - 0xcc]
and ebx, 0xfffffdff
call fcn.00405cd0
test ebx, 0x100
je 0x41e4b3
lea ecx, [ebp - 0xb4]
and ebx, 0xfffffeff
call fcn.00405cd0
test bl, bl
jns 0x41e4c8
lea ecx, [ebp - 0x9c]
and ebx, 0xffffff7f
call fcn.00405cd0
mov dword [ebp - 4], 0xffffffff
test bl, 0x40
je 0x41e4df
lea ecx, [ebp - 0xe4]
call fcn.00405cd0
cmp byte [ebp - 0x15], 0
je 0x41df18
mov ebx, dword [ebp - 0x2c]
lea eax, [ebp - 0x15]
mov edi, dword [ebp - 0x24]
push 0
push 1
push eax
push ebx
push edi
mov byte [ebp - 0x15], 0
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
cmp byte [ebp - 0x39], 0
je 0x41e5ac
push 0xa
lea ecx, [esi + 0x3c]
mov dword [ebp - 4], 0x25
call fcn.00405480
mov cl, byte [ebp - 0x15]
add esp, 4
add cl, al
mov byte [ebp - 0x1b], cl
lea ecx, [esi + 0xb4]
push 0xa
call fcn.00405480
add esp, 4
cmp byte [ebp - 0x1b], al
ja 0x41e56a
push 0
push 1
lea eax, [ebp - 0x1b]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41e56a
mov edx, str.Failed_to_increase_value_at_offset_address
mov ecx, 0x4b51c8
call fcn.004387f0
push eax
call fcn.00438d10
add esp, 4
jmp 0x41df10
cmp byte [ebp - 0x3a], 0
je 0x41e646
push 0xa
lea ecx, [esi + 0x3c]
mov dword [ebp - 4], 0x27
call fcn.00405480
mov cl, byte [ebp - 0x15]
add esp, 4
sub cl, al
mov byte [ebp - 0x1b], cl
lea ecx, [esi + 0xcc]
push 0xa
call fcn.00405480
add esp, 4
cmp byte [ebp - 0x1b], al
jb 0x41e56a
push 0
push 1
lea eax, [ebp - 0x1b]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41e56a
mov edx, str.Failed_to_decrease_value_at_offset_address
jmp 0x41e557
cmp byte [ebp - 0x1b], 0
je 0x41df18
push 0xa
lea ecx, [esi + 0x54]
mov dword [ebp - 4], 0x29
call fcn.00405480
add esp, 4
mov byte [ebp - 0x1b], al
lea eax, [ebp - 0x1b]
push 0
push 1
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41e693
mov edx, str.Failed_to_set_value_at_offset_address
mov ecx, 0x4b51c8
call fcn.004387f0
push eax
call fcn.00438d10
add esp, 4
jmp 0x41df10
mov ebx, dword [ebp - 0x2c]
lea eax, [ebp - 0x38]
mov edi, dword [ebp - 0x24]
xorps xmm0, xmm0
push 0
push 8
push eax
push ebx
push edi
movsd qword [ebp - 0x38], xmm0
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
cmp byte [ebp - 0x39], 0
je 0x41e796
lea ecx, [esi + 0x3c]
mov dword [ebp - 4], 0x1c
call fcn.00405640
addsd xmm0, qword [ebp - 0x38]
lea ecx, [esi + 0xb4]
movsd qword [ebp - 0x28], xmm0
call fcn.00405640
comisd xmm0, xmmword [ebp - 0x28]
jb 0x41e754
push 0
push 8
lea eax, [ebp - 0x28]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41e754
mov edx, 0x4a2ac0
mov ecx, 0x4b51c8
call fcn.004387f0
push eax
call fcn.00438d10
add esp, 4
jmp 0x41df10
cmp byte [ebp - 0x3a], 0
je 0x41e832
lea ecx, [esi + 0x3c]
mov dword [ebp - 4], 0x1e
call fcn.00405640
movsd xmm1, qword [ebp - 0x38]
lea ecx, [esi + 0xcc]
subsd xmm1, xmm0
movsd qword [ebp - 0x28], xmm1
call fcn.00405640
movsd xmm1, qword [ebp - 0x28]
comisd xmm1, xmm0
jb 0x41e754
push 0
push 8
lea eax, [ebp - 0x28]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41e754
mov edx, 0x4a2bb0
jmp 0x41e741
cmp byte [ebp - 0x1b], 0
je 0x41df18
lea ecx, [esi + 0x54]
mov dword [ebp - 4], 0x20
call fcn.00405640
push 0
push 8
lea eax, [ebp - 0x28]
movsd qword [ebp - 0x28], xmm0
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41e754
mov edx, 0x4a2ca0
jmp 0x41e741
mov ebx, dword [ebp - 0x2c]
xor eax, eax
mov edi, dword [ebp - 0x24]
push eax
push 2
mov word [ebp - 0x20], ax
lea eax, [ebp - 0x20]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
cmp byte [ebp - 0x39], 0
je 0x41e974
push 0xa
lea ecx, [esi + 0x3c]
mov dword [ebp - 4], 0x16
call fcn.00405480
add ax, word [ebp - 0x20]
lea ecx, [esi + 0xb4]
add esp, 4
mov word [ebp - 0x1c], ax
push 0xa
call fcn.00405480
add esp, 4
cmp word [ebp - 0x1c], ax
jg 0x41e932
push 0
push 2
lea eax, [ebp - 0x1c]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41e932
mov edx, 0x4a2808
mov ecx, 0x4b51c8
call fcn.004387f0
push eax
call fcn.00438d10
add esp, 4
jmp 0x41df10
cmp byte [ebp - 0x3a], 0
je 0x41ea16
push 0xa
lea ecx, [esi + 0x3c]
mov dword [ebp - 4], 0x18
call fcn.00405480
mov cx, word [ebp - 0x20]
add esp, 4
sub cx, ax
mov word [ebp - 0x1c], cx
lea ecx, [esi + 0xcc]
push 0xa
call fcn.00405480
add esp, 4
cmp word [ebp - 0x1c], ax
jl 0x41e932
push 0
push 2
lea eax, [ebp - 0x1c]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41e932
mov edx, 0x4a28f8
jmp 0x41e91f
cmp byte [ebp - 0x1b], 0
je 0x41df18
push 0xa
lea ecx, [esi + 0x54]
mov dword [ebp - 4], 0x1a
call fcn.00405480
add esp, 4
mov word [ebp - 0x1c], ax
lea eax, [ebp - 0x1c]
push 0
push 2
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41e932
mov edx, 0x4a29e8
jmp 0x41e91f
mov edi, dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
push 0
push 4
push eax
push edi
push ebx
mov dword [ebp - 0x24], 0
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
cmp byte [ebp - 0x39], 0
je 0x41eb5b
lea ecx, [esi + 0x3c]
mov dword [ebp - 4], 0
call fcn.004055d0
addss xmm0, dword [ebp - 0x24]
lea ecx, [esi + 0xb4]
movss dword [ebp - 0x2c], xmm0
call fcn.004055d0
comiss xmm0, dword [ebp - 0x2c]
jb 0x41df10
push 0
push 4
lea eax, [ebp - 0x2c]
push eax
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41df10
mov edx, 0x4a1fe0
mov ecx, 0x4b51c8
call fcn.004387f0
push eax
call fcn.00438d10
add esp, 4
jmp 0x41df10
cmp byte [ebp - 0x3a], 0
je 0x41ebfa
lea ecx, [esi + 0x3c]
mov dword [ebp - 4], 2
call fcn.004055d0
movss xmm1, dword [ebp - 0x24]
lea ecx, [esi + 0xcc]
subss xmm1, xmm0
movss dword [ebp - 0x2c], xmm1
call fcn.004055d0
movss xmm1, dword [ebp - 0x2c]
comiss xmm1, xmm0
jb 0x41df10
push 0
push 4
lea eax, [ebp - 0x2c]
push eax
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41df10
mov edx, 0x4a20d0
jmp 0x41eb06
cmp byte [ebp - 0x1b], 0
je 0x41df18
lea ecx, [esi + 0x54]
mov dword [ebp - 4], 4
call fcn.004055d0
push 0
push 4
lea eax, [ebp - 0x34]
movss dword [ebp - 0x34], xmm0
push eax
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x41df10
mov edx, 0x4a21c0
jmp 0x41eb06