Function at 0x4cab63
Capabilities:
Create thread
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
push 0x80000301
push 0
push 0x100
push 1
mov ebx, 0x1bc
call fcn.00536520
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4cabcb
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x1c], esp
mov eax, dword [ebp - 4]
test eax, eax
je 0x4cabdc
add eax, 8
push eax
call dword [sym.imp.user32.dll_GetKeyboardState]
nop
nop
nop
nop
cmp dword [ebp - 0x1c], esp
je 0x4cabf9
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x4cac0b
jmp 0x4cb5c5
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
push ebx
push ecx
mov eax, 0x13
dec eax
jns 0x4cac2a
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cac3d
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp byte [ebx], 0x7f
mov eax, 0
seta al
test eax, eax
je 0x4cac62
mov eax, 1
jmp 0x4cac67
mov eax, 0
mov dword [ebp - 0x24], eax
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
push ebx
push ecx
mov eax, 0x12
dec eax
jns 0x4cac89
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cac9c
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x28]
cmp byte [ebx], 0x7f
mov eax, 0
seta al
test eax, eax
je 0x4cacc1
mov eax, 2
jmp 0x4cacc6
mov eax, 0
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
push ebx
push ecx
mov eax, 0x11
dec eax
jns 0x4cace8
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cacfb
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 0x34]
cmp byte [ebx], 0x7f
mov eax, 0
seta al
test eax, eax
je 0x4cad20
mov eax, 4
jmp 0x4cad25
mov eax, 0
mov dword [ebp - 0x3c], eax
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
push ebx
push ecx
mov eax, 0x5c
dec eax
jns 0x4cad47
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cad5a
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x40]
cmp byte [ebx], 0x7f
mov eax, 0
seta al
test eax, eax
je 0x4cad7f
mov eax, 8
jmp 0x4cad84
mov eax, 0
mov dword [ebp - 0x48], eax
fild dword [ebp - 0x24]
fstp qword [ebp - 0x50]
fld qword [ebp - 0x50]
fild dword [ebp - 0x30]
fstp qword [ebp - 0x58]
fadd qword [ebp - 0x58]
fild dword [ebp - 0x3c]
fstp qword [ebp - 0x60]
fadd qword [ebp - 0x60]
fild dword [ebp - 0x48]
fstp qword [ebp - 0x68]
fadd qword [ebp - 0x68]
fstp qword [ebp - 0x70]
fld qword [ebp - 0x70]
call fcn.0049d9a9
mov dword [ebp - 8], eax
mov ebx, 6
call fcn.0049dd5e
push reloc.WS2_32.dll_getpeername
push 0
push 0x619554
push reloc.WS2_32.dll_getpeername
push 0
push 0x61955d
push reloc.WS2_32.dll_getpeername
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x4cadee
mov eax, 0x6187fe
push eax
push 5
mov ebx, 0x1b8
call fcn.0053cf30
add esp, 0x40
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4cae18
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 4], eax
mov ebx, 6
call fcn.0049dd5e
push reloc.WS2_32.dll_getpeername
push 0
push 0x6188ef
push reloc.WS2_32.dll_getpeername
push 0
push 0x619566
push reloc.WS2_32.dll_getpeername
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x4cae51
mov eax, 0x6187fe
push eax
push 5
mov ebx, 0x1b8
call fcn.0053cf30
add esp, 0x40
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4cae7b
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 4], eax
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
push ebx
push ecx
mov eax, 0x13
dec eax
jns 0x4cae9e
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4caeb1
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
push ebx
push ecx
mov eax, 0x12
dec eax
jns 0x4caed5
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4caee8
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
push ebx
push ecx
mov eax, 0x11
dec eax
jns 0x4caf0c
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4caf1f
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
push ebx
push ecx
mov eax, 0x5c
dec eax
jns 0x4caf43
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4caf56
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
mov eax, 0xa0
cmp eax, ecx
jl 0x4caf79
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
mov eax, 0xa1
cmp eax, ecx
jl 0x4caf9c
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
mov eax, 0xa2
cmp eax, ecx
jl 0x4cafbf
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
mov eax, 0xa3
cmp eax, ecx
jl 0x4cafe2
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x38], ebx
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
mov eax, 0xa4
cmp eax, ecx
jl 0x4cb005
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x3c], ebx
mov ebx, dword [ebp - 4]
call fcn.0049d8c2
mov eax, 0xa5
cmp eax, ecx
jl 0x4cb028
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x1c]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x20]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x24]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x28]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x2c]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x30]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x34]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x38]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x3c]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x40]
mov byte [ebx], 0
mov ebx, dword [0x6378b5]
call fcn.0049ecb4
xor ecx, ecx
push eax
lea eax, [ebp - 0xc]
mov ebx, eax
pop eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
push eax
cmp ecx, eax
jg 0x4cb5c2
mov ebx, dword [0x6378b5]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x4cb0ab
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb0be
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
je 0x4cb5ba
mov ebx, dword [0x6378b5]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x4cb0f4
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb107
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0xc
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx]
cmp dword [ebp - 8], eax
jne 0x4cb571
push 0x80000301
push 0
push 0x100
push 1
mov ebx, 0x1bc
call fcn.00536520
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x4cb157
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 0x10], eax
mov ebx, dword [0x6378b5]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x4cb17b
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb18e
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x10
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
je 0x4cb23b
mov ebx, dword [ebp - 0x10]
call fcn.0049d8c2
push ebx
push ecx
mov ebx, dword [0x6378b5]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x4cb1d1
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb1e4
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x10
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
fild dword [ebx]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fadd qword [0x61880c]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
call fcn.0049d9a9
dec eax
jns 0x4cb21d
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb230
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x30]
mov byte [ebx], 0x80
mov ebx, dword [0x6378b5]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x4cb25b
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb26e
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x18
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
je 0x4cb4e6
mov ebx, dword [0x6378b5]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x4cb2a7
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb2ba
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 8
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
je 0x4cb367
mov ebx, dword [ebp - 0x10]
call fcn.0049d8c2
push ebx
push ecx
mov ebx, dword [0x6378b5]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x4cb2fd
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb310
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 8
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
fild dword [ebx]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fadd qword [0x61880c]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
call fcn.0049d9a9
dec eax
jns 0x4cb349
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb35c
push 1
call fcn.0053559b
add esp, 4
add ebx, eax
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x30]
mov byte [ebx], 0x80
mov eax, dword [ebp - 4]
xor ecx, ecx
test eax, eax
je 0x4cb373
mov ecx, dword [eax + 4]
push ecx
add eax, 8
push eax
mov eax, dword [ebp - 0x10]
xor ebx, ebx
test eax, eax
je 0x4cb384
mov ebx, dword [eax + 4]
add eax, 8
push eax
cmp ebx, ecx
mov eax, 1
jne 0x4cb39b
dec eax
test ecx, ecx
je 0x4cb39b
call fcn.004a4655
add esp, 0xc
test eax, eax
jne 0x4cb4e1
mov ebx, dword [0x6378b5]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x4cb3c6
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb3d9
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x18
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
mov dword [ebx], 0
mov ebx, dword [0x6378b5]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x4cb40f
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb422
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 4
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
mov ebx, dword [0x6378b5]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x4cb457
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb46a
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], esp
mov eax, 0
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x14]
push 0
push 0
call dword [sym.imp.kernel32.dll_CreateThread]
nop
nop
nop
nop
cmp dword [ebp - 0x1c], esp
je 0x4cb4bc
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], esp
push dword [ebp - 0x24]
call dword [sym.imp.kernel32.dll_CloseHandle]
nop
nop
nop
nop
cmp dword [ebp - 0x28], esp
je 0x4cb4e1
push 6
call fcn.0053559b
add esp, 4
jmp 0x4cb56c
mov ebx, dword [0x6378b5]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x4cb506
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb519
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x18
mov dword [ebp - 0x1c], ebx
mov eax, dword [ebp - 4]
xor ecx, ecx
test eax, eax
je 0x4cb532
mov ecx, dword [eax + 4]
push ecx
add eax, 8
push eax
mov eax, dword [ebp - 0x10]
xor ebx, ebx
test eax, eax
je 0x4cb543
mov ebx, dword [eax + 4]
add eax, 8
push eax
cmp ebx, ecx
mov eax, 1
jne 0x4cb55a
dec eax
test ecx, ecx
je 0x4cb55a
call fcn.004a4655
add esp, 0xc
test eax, eax
mov eax, 0
sete al
mov ebx, dword [ebp - 0x1c]
mov dword [ebx], eax
jmp 0x4cb5ba
mov ebx, dword [0x6378b5]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x4cb591
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4cb5a4
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x18
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
mov dword [ebx], 0
pop eax
pop ebx
pop ecx
jmp 0x4cb07d
add esp, 0xc
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4cb5d5
push ebx
call fcn.0053558f
add esp, 4
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x4cb5e5
push ebx
call fcn.0053558f
add esp, 4
mov esp, ebp
pop ebp
ret