Function at 0x4bfccd
Capabilities:
Create thread
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x198
mov dword [ebp - 0x188], ecx
mov dword [ebp - 0x164], 0x547830
mov dword [ebp - 0x160], 0x54841a
lea eax, [ebp - 0x15c]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x4c1379
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.004d9f60
call fcn.004d99b0
mov dword [0x6ad0a0], 0
mov dword [0x6ad0a4], 0
mov dword [0x6ad0a8], 0xffffffff
mov dword [0x6ad0ac], 0xffffffff
mov dword [0x6ad0b0], 0
mov dword [0x6ad0b4], 0xffffffff
mov dword [0x6ad0b8], 0xffffffff
mov dword [0x6ad0bc], 0xffffffff
mov dword [0xa44298], 0
jmp 0x4bfe10
mov eax, dword [0xa44298]
shl eax, 5
add eax, 0x6ad020
mov dword [eax], 1
mov eax, dword [0xa44298]
shl eax, 5
add eax, 0x6ad020
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [0xa44298]
shl eax, 5
add eax, 0x6ad030
mov dword [eax], 0
mov eax, dword [0xa44298]
shl eax, 5
add eax, 0x6ad030
mov dword [eax + 4], 0
mov eax, dword [0xa44298]
shl eax, 5
add eax, 0x6ad030
mov dword [eax + 8], 0
mov eax, dword [0xa44298]
shl eax, 5
add eax, 0x6ad030
mov dword [eax + 0xc], 0
mov eax, dword [0xa44298]
add eax, 1
mov dword [0xa44298], eax
mov eax, dword [0xa44298]
cmp eax, 2
setle al
test al, al
jne 0x4bfd86
mov dword [ebp - 0x178], 1
call fcn.00401713
mov eax, dword [0x6ad010]
test eax, eax
je 0x4bfe45
mov dword [0x54a06c], 0
mov eax, dword [0x6ad00c]
test eax, eax
je 0x4bfe58
mov eax, dword [0x6ad00c]
mov dword [0x6acfec], eax
mov dword [esp], 0x1c
call fcn.004668c3
mov dword [0x6c7814], eax
mov dword [esp], 8
call fcn.004668c3
mov dword [0x6ad090], eax
mov dword [esp], 0x14
call fcn.004668c3
mov dword [0x6ad094], eax
mov dword [esp], 0x14
call fcn.004668c3
mov dword [0xa43634], eax
mov dword [esp], 0x48
mov dword [ebp - 0x178], 1
call fcn.00466955
mov dword [0x6ad0c4], eax
mov dword [esp], 0x70
call fcn.004668c3
mov dword [0x6ad0d8], eax
mov eax, dword [0x6c7814]
mov dword [esp], eax
call fcn.0046698e
mov dword [0x6c7818], eax
mov eax, dword [0x6c7818]
mov dword [0x6c781c], eax
mov edx, dword [0x6c781c]
mov eax, dword [0x6c7814]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00466e3c
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [eax + 4], 0xffff
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
lea edx, [eax + 1]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 2
mov dword [esp + 4], eax
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov edx, eax
mov eax, dword [ebp - 0x20]
mov dword [eax], edx
mov eax, dword [0x6a7b4c]
test eax, eax
jne 0x4bff3f
call fcn.00494fff
mov eax, dword [0x6a7c7c]
test eax, eax
je 0x4bff52
mov dword [0x6ad184], 1
mov eax, dword [0x6a7c78]
test eax, eax
je 0x4bffa0
mov dword [esp], 0x3e8
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x24], eax
mov dword [esp + 4], 0x100
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetConsoleProcessList]
mov dword [ebp - 0x178], 1
call eax
sub esp, 8
cmp eax, 1
sete al
test al, al
je 0x4bffa0
mov dword [0x6ad180], 1
mov eax, dword [0x6a7ca0]
add eax, 0x28
mov dword [eax + 0x14], 0x3b00
mov eax, dword [0x6a7ca0]
add eax, 0x50
mov dword [eax + 0x14], 0x3c00
mov eax, dword [0x6a7ca0]
add eax, 0x78
mov dword [eax + 0x14], 0x3d00
mov eax, dword [0x6a7ca0]
add eax, 0xa0
mov dword [eax + 0x14], 0x3e00
mov eax, dword [0x6a7ca0]
add eax, 0xc8
mov dword [eax + 0x14], 0x3f00
mov eax, dword [0x6a7ca0]
add eax, 0xf0
mov dword [eax + 0x14], 0x4000
mov eax, dword [0x6a7ca0]
add eax, 0x118
mov dword [eax + 0x14], 0x4100
mov eax, dword [0x6a7ca0]
add eax, 0x140
mov dword [eax + 0x14], 0x4200
mov eax, dword [0x6a7ca0]
add eax, 0x168
mov dword [eax + 0x14], 0x4300
mov eax, dword [0x6a7ca0]
add eax, 0x190
mov dword [eax + 0x14], 0x4400
mov eax, dword [0x6a7ca0]
add eax, 0x1b8
mov dword [eax + 0x14], 0x4800
mov eax, dword [0x6a7ca0]
add eax, 0x1b8
mov dword [eax + 0x18], 0x187a8
mov eax, dword [0x6a7ca0]
add eax, 0x1e0
mov dword [eax + 0x14], 0x4b00
mov eax, dword [0x6a7ca0]
add eax, 0x1e0
mov dword [eax + 0x18], 0x187a4
mov eax, dword [0x6a7ca0]
add eax, 0x208
mov dword [eax + 0x14], 0x4d00
mov eax, dword [0x6a7ca0]
add eax, 0x208
mov dword [eax + 0x18], 0x187a6
mov eax, dword [0x6a7ca0]
add eax, 0x230
mov dword [eax + 0x14], 0x5000
mov eax, dword [0x6a7ca0]
add eax, 0x230
mov dword [eax + 0x18], 0x187a2
mov eax, dword [0x6a7ca0]
add eax, 0x4b0
mov dword [eax + 0x14], 0x8500
mov eax, dword [0x6a7ca0]
add eax, 0x4d8
mov dword [eax + 0x14], 0x8600
mov eax, dword [0x6a7cb0]
mov byte [eax], 1
mov eax, dword [0x6a7cb0]
mov dword [eax + 4], 0
mov eax, dword [0x6a7cb0]
mov byte [eax + 0x11], 0
mov eax, dword [0x6a7cb0]
mov byte [eax + 0x10], 0
mov eax, dword [sym.imp.msvcrt.dll__environ]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
test eax, eax
setne al
add dword [ebp - 0x1c], 4
test al, al
jne 0x4c011e
mov edx, dword [ebp - 0x1c]
mov eax, dword [sym.imp.msvcrt.dll__environ]
mov eax, dword [eax]
mov ecx, edx
sub ecx, eax
mov eax, ecx
sar eax, 2
mov dword [0xa43494], eax
mov eax, dword [0x6ad194]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x6ad194]
add eax, 0x38
mov dword [eax], 8
mov eax, dword [0x6ad194]
add eax, 0x40
mov dword [eax], 8
mov eax, dword [0x6ad190]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x6ad190]
add eax, 0x38
mov dword [eax], 0xe
mov eax, dword [0x6ad190]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x6ad198]
add eax, 0x20
mov dword [eax], 0x10
mov eax, dword [0x6ad198]
add eax, 0x38
mov dword [eax], 0x10
mov eax, dword [0x6ad198]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x6ad194]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x6ad194]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x6ad194]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x6ad190]
add eax, 0x24
mov dword [eax], 8
mov eax, dword [0x6ad190]
add eax, 0x3c
mov dword [eax], 0xe
mov eax, dword [0x6ad190]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x6ad198]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x6ad198]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x6ad198]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x6bdb44]
mov dword [esp + 8], 0xb0000
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov dword [ebp - 0x178], 1
call fcn.00468ec4
mov dword [0xa4429c], eax
mov edx, dword [0x6bdb44]
mov eax, dword [0xa4429c]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x10], 0
call fcn.00468ec4
mov dword [0xa4429c], eax
mov edx, dword [0x6bdb44]
mov eax, dword [0xa4429c]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x10], 0
mov dword [esp + 8], 0x3c
mov dword [esp + 4], 0
mov dword [esp], 0x6c7820
call sub.msvcrt.dll_memset
mov dword [0x6c7880], 0x6c7820
mov dword [0x6c7884], 0x6c7828
mov dword [0x6c7888], 0x6c782c
mov dword [0x6c788c], 0x6c7824
mov dword [0x6c7890], 0x6c7821
mov dword [0x6c7894], 0x6c7829
mov dword [0x6c7898], 0x6c782d
mov dword [0x6c789c], 0x6c7825
mov dword [0x6c78a0], 0x6c7820
mov dword [0x6c78a4], 0x6c7828
mov dword [0x6c78a8], 0x6c782c
mov dword [0x6c78ac], 0x6c7824
mov dword [0x6c78b0], 0x6c783c
mov dword [0x6c78b4], 0x6c7838
mov dword [0x6c78b8], 0x6c7830
mov dword [0x6c78bc], 0x6c7834
mov dword [0x6c78c0], 0x6c7820
mov dword [0x6c78c4], 0x6c7828
mov dword [0x6c78c8], 0x6c782c
mov dword [0x6c78cc], 0x6c7824
mov dword [0x6c78d0], 0x6c783c
mov dword [0x6c78d4], 0x6c7838
mov dword [0x6c78d8], 0x6c7830
mov dword [0x6c78dc], 0x6c7834
mov dword [0x6c78e0], 0x6c7846
mov dword [0x6c78e4], 0x6c7840
mov dword [0x6c78e8], 0x6c7842
mov dword [0x6c78ec], 0x6c7844
mov dword [0x6c78f0], 0x6c7848
mov dword [0x6c78f4], 0x6c784a
mov dword [0xa44298], 0
jmp 0x4c041a
mov eax, dword [0xa44298]
mov byte [eax + 0xa429c0], 0x20
mov eax, dword [0xa44298]
add eax, 1
mov dword [0xa44298], eax
mov eax, dword [0xa44298]
cmp eax, 0x1f
setle al
test al, al
jne 0x4c0401
mov byte [0xa42b40], 0x81
mov dword [0x6c7960], 0x100000
mov eax, dword [0x6c7960]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6a7294], eax
mov eax, dword [0x6a7294]
mov dword [0x6a7298], eax
mov edx, dword [0x6a7294]
mov eax, dword [0x6c7960]
add eax, edx
mov dword [0x6a729c], eax
mov dword [esp + 8], 0x10fff3
mov dword [esp + 4], 0
mov dword [esp], 0x5972a0
call sub.msvcrt.dll_memset
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0
mov dword [esp], 0xa25ba0
call sub.msvcrt.dll_memset
mov eax, 0x5972a0
add eax, 0x500
mov dword [0x597264], eax
mov eax, dword [0x54a00c]
sub eax, 8
mov dword [0x54a00c], eax
mov eax, dword [0x597264]
mov edx, eax
mov eax, dword [0x54a00c]
add eax, edx
mov dword [0x597274], eax
mov eax, dword [0x597274]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x178], 1
call fcn.004734c0
mov dword [0x597290], eax
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004734c0
mov dword [0xa35ba0], eax
mov eax, dword [0xa35ba0]
mov eax, dword [eax]
mov byte [eax], 0x20
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0047386a
mov dword [0xa43674], eax
call fcn.004bed37
mov edx, eax
mov eax, dword [0xa43674]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004739d1
mov eax, 0xa44008
movzx eax, byte [eax]
test al, al
jne 0x4c0596
mov dword [esp], 0xa44008
call fcn.005473f0
test eax, eax
setne al
test al, al
je 0x4c0596
mov dword [esp], 0x10000
call sub.msvcrt.dll_malloc
mov dword [0xa442a0], eax
mov dword [esp], 0xa44008
call fcn.00547590
mov eax, dword [0xa442a0]
mov dword [esp + 8], 0x10000
mov dword [esp + 4], eax
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 0x178], 1
call eax
sub esp, 0xc
mov eax, dword [0xa442a0]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [0xa44298], eax
mov eax, dword [0xa44298]
sub eax, 1
mov dword [0xa442a4], eax
jmp 0x4c0657
mov edx, dword [0xa442a0]
mov eax, dword [0xa442a4]
add eax, edx
movzx eax, byte [eax]
movsx eax, al
mov dword [0xa4429c], eax
mov eax, dword [0xa4429c]
cmp eax, 0x5c
je 0x4c0619
mov eax, dword [0xa4429c]
cmp eax, 0x2f
je 0x4c0619
mov eax, dword [0xa4429c]
cmp eax, 0x3a
jne 0x4c064a
mov eax, dword [0xa4429c]
cmp eax, 0x3a
jne 0x4c0638
mov eax, dword [0xa442a0]
mov edx, dword [0xa442a4]
add edx, 1
add eax, edx
mov byte [eax], 0
jmp 0x4c0669
mov edx, dword [0xa442a0]
mov eax, dword [0xa442a4]
add eax, edx
mov byte [eax], 0
jmp 0x4c0669
mov eax, dword [0xa442a4]
sub eax, 1
mov dword [0xa442a4], eax
mov eax, dword [0xa442a4]
not eax
shr eax, 0x1f
test al, al
jne 0x4c05e3
mov eax, dword [0xa442a0]
mov dword [esp], eax
mov dword [ebp - 0x178], 1
call sub.msvcrt.dll__chdir
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0047386a
mov dword [0xa43678], eax
call fcn.004bed37
mov edx, eax
mov eax, dword [0xa43678]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004739d1
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0047386a
mov dword [0x6bd1fc], eax
mov dword [esp + 4], 0x14
mov dword [esp], str.Unknown_Opcode_____
call fcn.004736e7
mov edx, eax
mov eax, dword [0x6bd1fc]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004739d1
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
mov dword [0xa44298], eax
mov eax, dword [0xa44298]
cmp eax, 1
jle 0x4c08a3
mov dword [0xa442a4], 0
mov dword [0xa44298], 1
jmp 0x4c0774
mov eax, dword [0xa44298]
lea edx, [eax*4]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, dword [0xa442a4]
add eax, edx
mov dword [0xa442a4], eax
mov eax, dword [0xa44298]
cmp eax, 1
je 0x4c0767
mov eax, dword [0xa442a4]
add eax, 1
mov dword [0xa442a4], eax
mov eax, dword [0xa44298]
add eax, 1
mov dword [0xa44298], eax
mov edx, dword [0xa44298]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x4c0722
mov eax, dword [0xa442a4]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x178], 1
call fcn.0047386a
mov dword [0xa42c44], eax
mov dword [0xa442a8], 0
mov dword [0xa44298], 1
jmp 0x4c0886
mov eax, dword [0xa44298]
cmp eax, 1
je 0x4c07f0
mov eax, dword [0xa42c44]
mov edx, dword [eax]
mov eax, dword [0xa442a8]
add eax, edx
mov byte [eax], 0x20
mov eax, dword [0xa442a8]
add eax, 1
mov dword [0xa442a8], eax
mov eax, dword [0xa44298]
lea edx, [eax*4]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, dword [0xa44298]
lea ecx, [edx*4]
mov ebx, dword [ebp - 0x188]
mov edx, dword [ebx + 4]
add edx, ecx
mov edx, dword [edx]
mov ecx, dword [0xa42c44]
mov ebx, dword [ecx]
mov ecx, dword [0xa442a8]
add ecx, ebx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa44298]
lea edx, [eax*4]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, dword [0xa442a8]
add eax, edx
mov dword [0xa442a8], eax
mov eax, dword [0xa44298]
add eax, 1
mov dword [0xa44298], eax
mov edx, dword [0xa44298]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x4c07c8
jmp 0x4c08c6
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x178], 1
call fcn.0047386a
mov dword [0xa42c44], eax
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
mov dword [0xa42c4c], eax
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx + 4]
mov dword [0xa42c48], eax
lea eax, [ebp - 0x40]
mov dword [esp], eax
call fcn.004dba60
mov eax, dword [ebp - 0x40]
cmp eax, 0xffffffff
je 0x4c0910
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004dba60
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp edx, eax
sete al
test al, al
jne 0x4c08f4
jmp 0x4c0917
mov dword [ebp - 0x3c], 0
call fcn.00467a9f
mov dword [0x6c7944], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004dba70
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x4c0975
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
imul edx, eax, 0xe10
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
shl eax, 2
mov ecx, eax
shl ecx, 4
mov ebx, ecx
sub ebx, eax
mov eax, ebx
add edx, eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
add eax, edx
mov dword [0x6c7940], eax
mov eax, dword [0x6c7940]
imul eax, eax, 0x3e8
mov dword [0x6c7940], eax
jmp 0x4c097f
mov dword [0x6c7940], 0
mov dword [esp], 0x91
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x178], 1
call eax
sub esp, 4
cwde
and eax, 1
test eax, eax
setne al
test al, al
je 0x4c09b3
mov dword [esp], 0x30d4b
call fcn.0046803b
mov dword [esp], 0x91
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x178], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x4c09ec
mov dword [0x6bd1a8], 0x12e
mov dword [esp], 0x187ce
call fcn.0046834a
mov dword [esp], 0xa0
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x178], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x4c0a25
mov dword [0x6bd1a8], 0x130
mov dword [esp], 0x187d0
call fcn.0046834a
mov dword [esp], 0xa1
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x178], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x4c0a5e
mov dword [0x6bd1a8], 0x12f
mov dword [esp], 0x187cf
call fcn.0046834a
mov dword [esp], 0xa2
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x178], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x4c0a97
mov dword [0x6bd1a8], 0x132
mov dword [esp], 0x187d2
call fcn.0046834a
mov dword [esp], 0xa3
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x178], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x4c0ad0
mov dword [0x6bd1a8], 0x131
mov dword [esp], 0x187d1
call fcn.0046834a
mov dword [esp], 0xa4
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x178], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x4c0b09
mov dword [0x6bd1a8], 0x134
mov dword [esp], 0x187d4
call fcn.0046834a
mov dword [esp], 0xa5
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x178], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x4c0b42
mov dword [0x6bd1a8], 0x133
mov dword [esp], 0x187d3
call fcn.0046834a
mov dword [esp], 0x14
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x178], 1
call eax
sub esp, 4
cwde
and eax, 1
test eax, eax
setne al
test al, al
je 0x4c0b80
mov dword [0x6bd1a8], 0x12d
mov dword [esp], 0x187cd
call fcn.0046834a
mov dword [esp], 0x90
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x178], 1
call eax
sub esp, 4
cwde
and eax, 1
test eax, eax
setne al
test al, al
je 0x4c0bbe
mov dword [0x6bd1a8], 0x12c
mov dword [esp], 0x187cc
call fcn.0046834a
mov dword [ebp - 0x178], 1
call fcn.004c3ca7
mov eax, dword [0x6bd1a0]
mov dword [0x6bd1a4], eax
mov byte [0x5976ba], 0x1e
mov byte [0x5976bb], 0
mov byte [0x5976bc], 0x1e
mov byte [0x5976bd], 0
lea eax, [ebp - 0x13c]
mov ecx, eax
call fcn.0052dd00
mov eax, dword [0x54a520]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x579900
mov dword [esp], 0x6bd640
call sub.msvcrt.dll_memcpy
mov dword [0xa44298], 0
jmp 0x4c0c55
mov eax, dword [0xa44298]
mov edx, dword [0xa44298]
mov edx, dword [edx*4 + 0x6bd640]
or edx, 0xff000000
mov dword [eax*4 + 0x6bd640], edx
mov eax, dword [0xa44298]
add eax, 1
mov dword [0xa44298], eax
mov eax, dword [0xa44298]
cmp eax, 0xff
setle al
test al, al
jne 0x4c0c29
mov eax, dword [0x54a524]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x579d00
mov dword [esp], 0x6bda40
call sub.msvcrt.dll_memcpy
mov dword [0xa44298], 0
jmp 0x4c0cbb
mov eax, dword [0xa44298]
mov edx, dword [0xa44298]
mov edx, dword [edx*4 + 0x6bda40]
or edx, 0xff000000
mov dword [eax*4 + 0x6bda40], edx
mov eax, dword [0xa44298]
add eax, 1
mov dword [0xa44298], eax
mov eax, dword [0xa44298]
cmp eax, 0x3f
setle al
test al, al
jne 0x4c0c8f
mov dword [0xa360e0], 0
mov dword [0xa360e4], 0
mov dword [0xa360e8], 0
mov dword [0xa360ec], 0x808080
mov dword [0xa360f0], 0x808080
mov dword [0xa360f4], 0x808080
mov dword [0xa360f8], 0xffffff
mov dword [0xa360fc], 0xffffff
mov dword [0xa36100], 0xffffff
mov dword [0xa36104], 0
mov dword [0xa36108], 0x808080
mov dword [0xa3610c], 0xffffff
mov dword [0xa36110], 0
mov dword [0xa36114], 0x808080
mov dword [0xa36118], 0xffffff
mov dword [0xa3611c], 0
mov dword [0xa36120], 0x808080
mov dword [0xa36124], 0xffffff
mov eax, dword [0x54a518]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x56d900
mov dword [esp], 0xa36140
call sub.msvcrt.dll_memcpy
mov eax, dword [0x54a51c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x571900
mov dword [esp], 0xa3a140
call sub.msvcrt.dll_memcpy
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x178], 2
call fcn.00478153
mov dword [0x54a52c], 1
mov eax, dword [0x6a7c78]
test eax, eax
je 0x4c0e55
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x19
mov dword [esp], 0x50
call fcn.0049a7b9
mov dword [0x54a2e0], eax
mov eax, dword [0x54a2e0]
neg eax
mov dword [0xa44298], eax
mov edx, dword [0x6bdb44]
mov eax, dword [0xa44298]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x12], 1
mov edx, dword [0x54a07c]
mov eax, dword [0x54a078]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x20
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x178], 2
call fcn.0049a7b9
mov dword [0xa43eac], eax
mov edx, dword [0x54a078]
mov eax, dword [0x54a07c]
imul eax, edx
shl eax, 2
mov edx, eax
mov ecx, dword [0x6bdb44]
mov eax, dword [0xa43eac]
imul eax, eax, 0xffffff50
add eax, ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x567140
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [0x54a084]
mov eax, dword [0x54a080]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x20
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0049a7b9
mov dword [0xa43eb0], eax
mov edx, dword [0x54a080]
mov eax, dword [0x54a084]
imul eax, edx
shl eax, 2
mov edx, eax
mov ecx, dword [0x6bdb44]
mov eax, dword [0xa43eb0]
imul eax, eax, 0xffffff50
add eax, ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x567540
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov dword [0xa44298], 0
mov eax, dword [0xa44298]
add eax, 1
mov dword [0xa44298], eax
mov edx, dword [0x6a7c90]
mov eax, dword [0xa44298]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 4], 2
mov edx, dword [0x6a7c90]
mov eax, dword [0xa44298]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 8], str._KEYBOARD__BUTTON_
mov edx, dword [0x6a7c90]
mov eax, dword [0xa44298]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x10], 0x200
mov edx, dword [0x6a7c90]
mov eax, dword [0xa44298]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x138], str.Keyboard
mov edx, dword [0x6a7c90]
mov eax, dword [0xa44298]
imul eax, eax, 0x160
add eax, edx
mov dword [esp], eax
call fcn.00403493
mov eax, dword [0xa44298]
add eax, 1
mov dword [0xa44298], eax
mov edx, dword [0x6a7c90]
mov eax, dword [0xa44298]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 4], 3
mov edx, dword [0x6a7c90]
mov eax, dword [0xa44298]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 8], str._MOUSE__BUTTON__AXIS__WHEEL_
mov edx, dword [0x6a7c90]
mov eax, dword [0xa44298]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x10], 3
mov edx, dword [0x6a7c90]
mov eax, dword [0xa44298]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x14], 2
mov edx, dword [0x6a7c90]
mov eax, dword [0xa44298]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x18], 3
mov edx, dword [0x6a7c90]
mov eax, dword [0xa44298]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x138], str.Mouse
mov edx, dword [0x6a7c90]
mov eax, dword [0xa44298]
imul eax, eax, 0x160
add eax, edx
mov dword [esp], eax
call fcn.00403493
mov eax, dword [0xa44298]
mov dword [0x6a7c8c], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x40580a
mov eax, dword [sym.imp.msvcrt.dll__beginthread]
call eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetThreadPriority]
call eax
sub esp, 8
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x4046be
mov eax, dword [sym.imp.msvcrt.dll__beginthread]
call eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetThreadPriority]
call eax
sub esp, 8
mov dword [0x6c7938], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x4c13c7
mov eax, dword [sym.imp.msvcrt.dll__beginthread]
call eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetThreadPriority]
call eax
sub esp, 8
mov eax, dword [0x6ad184]
test eax, eax
jne 0x4c1186
mov dword [0x6acfd8], 1
jmp 0x4c1186
mov dword [esp], 0x64
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp - 0x178], 2
call eax
sub esp, 4
jmp 0x4c1187
nop
mov eax, dword [0x6acfd8]
test eax, eax
sete al
test al, al
jne 0x4c1169
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx + 4]
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x188]
mov dword [esp], ecx
mov dword [ebp - 0x178], 2
call fcn.00437eac
mov dword [esp], 0x12
call fcn.004c7420
mov dword [esp + 4], 0x190
mov dword [esp], 0x280
call fcn.004c73f0
mov dword [esp], 0x190
call fcn.004cbf10
test eax, eax
sete al
test al, al
je 0x4c11fb
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov eax, dword [0x6acfe0]
test eax, eax
jne 0x4c121c
mov dword [esp], str.Untitled
mov dword [ebp - 0x178], 2
call fcn.00437ece
jmp 0x4c1233
mov eax, dword [0x6acfe0]
mov dword [esp], eax
mov dword [ebp - 0x178], 2
call fcn.00437ece
mov dword [0x6acfd4], 1
mov dword [ebp - 0x178], 2
call fcn.0045d865
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x4c126b
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call fcn.0045d815
sub esp, 4
mov dword [esp], eax
call fcn.00468523
mov dword [esp], str.GL_EXT_framebuffer_object
call fcn.0045d885
sub esp, 4
test al, al
setne al
test al, al
je 0x4c128d
mov dword [0x6acfa8], 1
mov dword [esp], 0x4bc8a3
mov dword [ebp - 0x178], 2
call fcn.004caf50
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4b9b27
mov dword [esp], 8
call fcn.004cb0a0
mov dword [esp], 0x4b98bf
call fcn.004caff0
mov dword [esp], 0x4b98e1
call fcn.004cb170
mov dword [esp], 0x4b9af1
call fcn.004cb030
mov dword [esp], 0x4b9b0c
call fcn.004cb1b0
mov dword [esp], 0x4be527
call fcn.004cb2b0
mov dword [esp], fcn.004be573
call fcn.004cb330
mov dword [esp], 0x4beb0b
call fcn.004cb370
mov dword [esp], 0x4b9dce
call fcn.004cafb0
mov dword [esp], 0x4beb25
call fcn.004cb2f0
call fcn.004ccd20
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x178], 1
mov ecx, eax
call fcn.0052e400
mov eax, 0
mov dword [ebp - 0x180], eax
jmp 0x4c13a7
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.004da020
mov eax, dword [ebp - 0x180]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret