Function at 0x490435
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], 0x517fa0
mov dword [ebp - 0x160], 0x518b8a
lea eax, [ebp - 0x15c]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x491ae1
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.004aa6d0
call fcn.004aa120
mov dword [0x67c640], 0
mov dword [0x67c644], 0
mov dword [0x67c648], 0xffffffff
mov dword [0x67c64c], 0xffffffff
mov dword [0x67c650], 0
mov dword [0x67c654], 0xffffffff
mov dword [0x67c658], 0xffffffff
mov dword [0x67c65c], 0xffffffff
mov dword [0xa13838], 0
jmp 0x490578
mov eax, dword [0xa13838]
shl eax, 5
add eax, 0x67c5c0
mov dword [eax], 1
mov eax, dword [0xa13838]
shl eax, 5
add eax, 0x67c5c0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [0xa13838]
shl eax, 5
add eax, 0x67c5d0
mov dword [eax], 0
mov eax, dword [0xa13838]
shl eax, 5
add eax, 0x67c5d0
mov dword [eax + 4], 0
mov eax, dword [0xa13838]
shl eax, 5
add eax, 0x67c5d0
mov dword [eax + 8], 0
mov eax, dword [0xa13838]
shl eax, 5
add eax, 0x67c5d0
mov dword [eax + 0xc], 0
mov eax, dword [0xa13838]
add eax, 1
mov dword [0xa13838], eax
mov eax, dword [0xa13838]
cmp eax, 2
setle al
test al, al
jne 0x4904ee
mov dword [ebp - 0x178], 1
call fcn.00401713
mov eax, dword [0x67c5b0]
test eax, eax
je 0x4905ad
mov dword [0x51b06c], 0
mov eax, dword [0x67c5ac]
test eax, eax
je 0x4905c0
mov eax, dword [0x67c5ac]
mov dword [0x67c58c], eax
mov dword [esp], 0x1c
call fcn.0043702b
mov dword [0x696db4], eax
mov dword [esp], 8
call fcn.0043702b
mov dword [0x67c630], eax
mov dword [esp], 0x14
call fcn.0043702b
mov dword [0x67c634], eax
mov dword [esp], 0x14
call fcn.0043702b
mov dword [0xa12bd4], eax
mov dword [esp], 0x48
mov dword [ebp - 0x178], 1
call fcn.004370bd
mov dword [0x67c664], eax
mov dword [esp], 0x70
call fcn.0043702b
mov dword [0x67c678], eax
mov eax, dword [0x696db4]
mov dword [esp], eax
call fcn.004370f6
mov dword [0x696db8], eax
mov eax, dword [0x696db8]
mov dword [0x696dbc], eax
mov edx, dword [0x696dbc]
mov eax, dword [0x696db4]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004375a4
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 [0x677b4c]
test eax, eax
jne 0x4906a7
call fcn.00465767
mov eax, dword [0x677bac]
test eax, eax
je 0x4906ba
mov dword [0x67c724], 1
mov eax, dword [0x677ba8]
test eax, eax
je 0x490708
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 0x490708
mov dword [0x67c720], 1
mov eax, dword [0x677bd0]
add eax, 0x28
mov dword [eax + 0x14], 0x3b00
mov eax, dword [0x677bd0]
add eax, 0x50
mov dword [eax + 0x14], 0x3c00
mov eax, dword [0x677bd0]
add eax, 0x78
mov dword [eax + 0x14], 0x3d00
mov eax, dword [0x677bd0]
add eax, 0xa0
mov dword [eax + 0x14], 0x3e00
mov eax, dword [0x677bd0]
add eax, 0xc8
mov dword [eax + 0x14], 0x3f00
mov eax, dword [0x677bd0]
add eax, 0xf0
mov dword [eax + 0x14], 0x4000
mov eax, dword [0x677bd0]
add eax, 0x118
mov dword [eax + 0x14], 0x4100
mov eax, dword [0x677bd0]
add eax, 0x140
mov dword [eax + 0x14], 0x4200
mov eax, dword [0x677bd0]
add eax, 0x168
mov dword [eax + 0x14], 0x4300
mov eax, dword [0x677bd0]
add eax, 0x190
mov dword [eax + 0x14], 0x4400
mov eax, dword [0x677bd0]
add eax, 0x1b8
mov dword [eax + 0x14], 0x4800
mov eax, dword [0x677bd0]
add eax, 0x1b8
mov dword [eax + 0x18], 0x187a8
mov eax, dword [0x677bd0]
add eax, 0x1e0
mov dword [eax + 0x14], 0x4b00
mov eax, dword [0x677bd0]
add eax, 0x1e0
mov dword [eax + 0x18], 0x187a4
mov eax, dword [0x677bd0]
add eax, 0x208
mov dword [eax + 0x14], 0x4d00
mov eax, dword [0x677bd0]
add eax, 0x208
mov dword [eax + 0x18], 0x187a6
mov eax, dword [0x677bd0]
add eax, 0x230
mov dword [eax + 0x14], 0x5000
mov eax, dword [0x677bd0]
add eax, 0x230
mov dword [eax + 0x18], 0x187a2
mov eax, dword [0x677bd0]
add eax, 0x4b0
mov dword [eax + 0x14], 0x8500
mov eax, dword [0x677bd0]
add eax, 0x4d8
mov dword [eax + 0x14], 0x8600
mov eax, dword [0x677be0]
mov byte [eax], 1
mov eax, dword [0x677be0]
mov dword [eax + 4], 0
mov eax, dword [0x677be0]
mov byte [eax + 0x11], 0
mov eax, dword [0x677be0]
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 0x490886
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 [0xa12a34], eax
mov eax, dword [0x67c734]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x67c734]
add eax, 0x38
mov dword [eax], 8
mov eax, dword [0x67c734]
add eax, 0x40
mov dword [eax], 8
mov eax, dword [0x67c730]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x67c730]
add eax, 0x38
mov dword [eax], 0xe
mov eax, dword [0x67c730]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x67c738]
add eax, 0x20
mov dword [eax], 0x10
mov eax, dword [0x67c738]
add eax, 0x38
mov dword [eax], 0x10
mov eax, dword [0x67c738]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x67c734]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x67c734]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x67c734]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x67c730]
add eax, 0x24
mov dword [eax], 8
mov eax, dword [0x67c730]
add eax, 0x3c
mov dword [eax], 0xe
mov eax, dword [0x67c730]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x67c738]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x67c738]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x67c738]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x68d0e4]
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.0043962c
mov dword [0xa1383c], eax
mov edx, dword [0x68d0e4]
mov eax, dword [0xa1383c]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x10], 0
call fcn.0043962c
mov dword [0xa1383c], eax
mov edx, dword [0x68d0e4]
mov eax, dword [0xa1383c]
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], 0x696dc0
call sub.msvcrt.dll_memset
mov dword [0x696e20], 0x696dc0
mov dword [0x696e24], 0x696dc8
mov dword [0x696e28], 0x696dcc
mov dword [0x696e2c], 0x696dc4
mov dword [0x696e30], 0x696dc1
mov dword [0x696e34], 0x696dc9
mov dword [0x696e38], 0x696dcd
mov dword [0x696e3c], 0x696dc5
mov dword [0x696e40], 0x696dc0
mov dword [0x696e44], 0x696dc8
mov dword [0x696e48], 0x696dcc
mov dword [0x696e4c], 0x696dc4
mov dword [0x696e50], 0x696ddc
mov dword [0x696e54], 0x696dd8
mov dword [0x696e58], 0x696dd0
mov dword [0x696e5c], 0x696dd4
mov dword [0x696e60], 0x696dc0
mov dword [0x696e64], 0x696dc8
mov dword [0x696e68], 0x696dcc
mov dword [0x696e6c], 0x696dc4
mov dword [0x696e70], 0x696ddc
mov dword [0x696e74], 0x696dd8
mov dword [0x696e78], 0x696dd0
mov dword [0x696e7c], 0x696dd4
mov dword [0x696e80], 0x696de6
mov dword [0x696e84], 0x696de0
mov dword [0x696e88], 0x696de2
mov dword [0x696e8c], 0x696de4
mov dword [0x696e90], 0x696de8
mov dword [0x696e94], 0x696dea
mov dword [0xa13838], 0
jmp 0x490b82
mov eax, dword [0xa13838]
mov byte [eax + 0xa11f60], 0x20
mov eax, dword [0xa13838]
add eax, 1
mov dword [0xa13838], eax
mov eax, dword [0xa13838]
cmp eax, 0x1f
setle al
test al, al
jne 0x490b69
mov byte [0xa120e0], 0x81
mov dword [0x696f00], 0x100000
mov eax, dword [0x696f00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x677294], eax
mov eax, dword [0x677294]
mov dword [0x677298], eax
mov edx, dword [0x677294]
mov eax, dword [0x696f00]
add eax, edx
mov dword [0x67729c], eax
mov dword [esp + 8], 0x10fff3
mov dword [esp + 4], 0
mov dword [esp], 0x5672a0
call sub.msvcrt.dll_memset
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0
mov dword [esp], 0x9f5140
call sub.msvcrt.dll_memset
mov eax, 0x5672a0
add eax, 0x500
mov dword [0x567264], eax
mov eax, dword [0x51b00c]
sub eax, 8
mov dword [0x51b00c], eax
mov eax, dword [0x567264]
mov edx, eax
mov eax, dword [0x51b00c]
add eax, edx
mov dword [0x567274], eax
mov eax, dword [0x567274]
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.00443c28
mov dword [0x567290], eax
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.00443c28
mov dword [0xa05140], eax
mov eax, dword [0xa05140]
mov eax, dword [eax]
mov byte [eax], 0x20
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00443fd2
mov dword [0xa12c14], eax
call fcn.0048f49f
mov edx, eax
mov eax, dword [0xa12c14]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00444139
mov eax, 0xa135a8
movzx eax, byte [eax]
test al, al
jne 0x490cfe
mov dword [esp], 0xa135a8
call fcn.00517b60
test eax, eax
setne al
test al, al
je 0x490cfe
mov dword [esp], 0x10000
call sub.msvcrt.dll_malloc
mov dword [0xa13840], eax
mov dword [esp], 0xa135a8
call fcn.00517d00
mov eax, dword [0xa13840]
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 [0xa13840]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [0xa13838], eax
mov eax, dword [0xa13838]
sub eax, 1
mov dword [0xa13844], eax
jmp 0x490dbf
mov edx, dword [0xa13840]
mov eax, dword [0xa13844]
add eax, edx
movzx eax, byte [eax]
movsx eax, al
mov dword [0xa1383c], eax
mov eax, dword [0xa1383c]
cmp eax, 0x5c
je 0x490d81
mov eax, dword [0xa1383c]
cmp eax, 0x2f
je 0x490d81
mov eax, dword [0xa1383c]
cmp eax, 0x3a
jne 0x490db2
mov eax, dword [0xa1383c]
cmp eax, 0x3a
jne 0x490da0
mov eax, dword [0xa13840]
mov edx, dword [0xa13844]
add edx, 1
add eax, edx
mov byte [eax], 0
jmp 0x490dd1
mov edx, dword [0xa13840]
mov eax, dword [0xa13844]
add eax, edx
mov byte [eax], 0
jmp 0x490dd1
mov eax, dword [0xa13844]
sub eax, 1
mov dword [0xa13844], eax
mov eax, dword [0xa13844]
not eax
shr eax, 0x1f
test al, al
jne 0x490d4b
mov eax, dword [0xa13840]
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.00443fd2
mov dword [0xa12c18], eax
call fcn.0048f49f
mov edx, eax
mov eax, dword [0xa12c18]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00444139
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00443fd2
mov dword [0x68c79c], eax
mov dword [esp + 4], 0x14
mov dword [esp], str.Unknown_Opcode_____
call fcn.00443e4f
mov edx, eax
mov eax, dword [0x68c79c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00444139
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
mov dword [0xa13838], eax
mov eax, dword [0xa13838]
cmp eax, 1
jle 0x49100b
mov dword [0xa13844], 0
mov dword [0xa13838], 1
jmp 0x490edc
mov eax, dword [0xa13838]
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 [0xa13844]
add eax, edx
mov dword [0xa13844], eax
mov eax, dword [0xa13838]
cmp eax, 1
je 0x490ecf
mov eax, dword [0xa13844]
add eax, 1
mov dword [0xa13844], eax
mov eax, dword [0xa13838]
add eax, 1
mov dword [0xa13838], eax
mov edx, dword [0xa13838]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x490e8a
mov eax, dword [0xa13844]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x178], 1
call fcn.00443fd2
mov dword [0xa121e4], eax
mov dword [0xa13848], 0
mov dword [0xa13838], 1
jmp 0x490fee
mov eax, dword [0xa13838]
cmp eax, 1
je 0x490f58
mov eax, dword [0xa121e4]
mov edx, dword [eax]
mov eax, dword [0xa13848]
add eax, edx
mov byte [eax], 0x20
mov eax, dword [0xa13848]
add eax, 1
mov dword [0xa13848], eax
mov eax, dword [0xa13838]
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 [0xa13838]
lea ecx, [edx*4]
mov ebx, dword [ebp - 0x188]
mov edx, dword [ebx + 4]
add edx, ecx
mov edx, dword [edx]
mov ecx, dword [0xa121e4]
mov ebx, dword [ecx]
mov ecx, dword [0xa13848]
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 [0xa13838]
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 [0xa13848]
add eax, edx
mov dword [0xa13848], eax
mov eax, dword [0xa13838]
add eax, 1
mov dword [0xa13838], eax
mov edx, dword [0xa13838]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x490f30
jmp 0x49102e
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x178], 1
call fcn.00443fd2
mov dword [0xa121e4], eax
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
mov dword [0xa121ec], eax
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx + 4]
mov dword [0xa121e8], eax
lea eax, [ebp - 0x40]
mov dword [esp], eax
call fcn.004ac1d0
mov eax, dword [ebp - 0x40]
cmp eax, 0xffffffff
je 0x491078
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004ac1d0
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp edx, eax
sete al
test al, al
jne 0x49105c
jmp 0x49107f
mov dword [ebp - 0x3c], 0
call fcn.00438207
mov dword [0x696ee4], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004ac1e0
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x4910dd
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 [0x696ee0], eax
mov eax, dword [0x696ee0]
imul eax, eax, 0x3e8
mov dword [0x696ee0], eax
jmp 0x4910e7
mov dword [0x696ee0], 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 0x49111b
mov dword [esp], 0x30d4b
call fcn.004387a3
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 0x491154
mov dword [0x68c748], 0x12e
mov dword [esp], 0x187ce
call fcn.00438ab2
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 0x49118d
mov dword [0x68c748], 0x130
mov dword [esp], 0x187d0
call fcn.00438ab2
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 0x4911c6
mov dword [0x68c748], 0x12f
mov dword [esp], 0x187cf
call fcn.00438ab2
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 0x4911ff
mov dword [0x68c748], 0x132
mov dword [esp], 0x187d2
call fcn.00438ab2
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 0x491238
mov dword [0x68c748], 0x131
mov dword [esp], 0x187d1
call fcn.00438ab2
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 0x491271
mov dword [0x68c748], 0x134
mov dword [esp], 0x187d4
call fcn.00438ab2
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 0x4912aa
mov dword [0x68c748], 0x133
mov dword [esp], 0x187d3
call fcn.00438ab2
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 0x4912e8
mov dword [0x68c748], 0x12d
mov dword [esp], 0x187cd
call fcn.00438ab2
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 0x491326
mov dword [0x68c748], 0x12c
mov dword [esp], 0x187cc
call fcn.00438ab2
mov dword [ebp - 0x178], 1
call fcn.0049440f
mov eax, dword [0x68c740]
mov dword [0x68c744], eax
mov byte [0x5676ba], 0x1e
mov byte [0x5676bb], 0
mov byte [0x5676bc], 0x1e
mov byte [0x5676bd], 0
lea eax, [ebp - 0x13c]
mov ecx, eax
call fcn.004fe470
mov eax, dword [0x51b520]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x54a020
mov dword [esp], 0x68cbe0
call sub.msvcrt.dll_memcpy
mov dword [0xa13838], 0
jmp 0x4913bd
mov eax, dword [0xa13838]
mov edx, dword [0xa13838]
mov edx, dword [edx*4 + 0x68cbe0]
or edx, 0xff000000
mov dword [eax*4 + 0x68cbe0], edx
mov eax, dword [0xa13838]
add eax, 1
mov dword [0xa13838], eax
mov eax, dword [0xa13838]
cmp eax, 0xff
setle al
test al, al
jne 0x491391
mov eax, dword [0x51b524]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x54a420
mov dword [esp], 0x68cfe0
call sub.msvcrt.dll_memcpy
mov dword [0xa13838], 0
jmp 0x491423
mov eax, dword [0xa13838]
mov edx, dword [0xa13838]
mov edx, dword [edx*4 + 0x68cfe0]
or edx, 0xff000000
mov dword [eax*4 + 0x68cfe0], edx
mov eax, dword [0xa13838]
add eax, 1
mov dword [0xa13838], eax
mov eax, dword [0xa13838]
cmp eax, 0x3f
setle al
test al, al
jne 0x4913f7
mov dword [0xa05680], 0
mov dword [0xa05684], 0
mov dword [0xa05688], 0
mov dword [0xa0568c], 0x808080
mov dword [0xa05690], 0x808080
mov dword [0xa05694], 0x808080
mov dword [0xa05698], 0xffffff
mov dword [0xa0569c], 0xffffff
mov dword [0xa056a0], 0xffffff
mov dword [0xa056a4], 0
mov dword [0xa056a8], 0x808080
mov dword [0xa056ac], 0xffffff
mov dword [0xa056b0], 0
mov dword [0xa056b4], 0x808080
mov dword [0xa056b8], 0xffffff
mov dword [0xa056bc], 0
mov dword [0xa056c0], 0x808080
mov dword [0xa056c4], 0xffffff
mov eax, dword [0x51b518]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x53e020
mov dword [esp], 0xa056e0
call sub.msvcrt.dll_memcpy
mov eax, dword [0x51b51c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x542020
mov dword [esp], 0xa096e0
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.004488bb
mov dword [0x51b52c], 1
mov eax, dword [0x677ba8]
test eax, eax
je 0x4915bd
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x19
mov dword [esp], 0x50
call fcn.0046af21
mov dword [0x51b2e0], eax
mov eax, dword [0x51b2e0]
neg eax
mov dword [0xa13838], eax
mov edx, dword [0x68d0e4]
mov eax, dword [0xa13838]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x12], 1
mov edx, dword [0x51b07c]
mov eax, dword [0x51b078]
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.0046af21
mov dword [0xa1344c], eax
mov edx, dword [0x51b078]
mov eax, dword [0x51b07c]
imul eax, edx
shl eax, 2
mov edx, eax
mov ecx, dword [0x68d0e4]
mov eax, dword [0xa1344c]
imul eax, eax, 0xffffff50
add eax, ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x537860
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [0x51b084]
mov eax, dword [0x51b080]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x20
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0046af21
mov dword [0xa13450], eax
mov edx, dword [0x51b080]
mov eax, dword [0x51b084]
imul eax, edx
shl eax, 2
mov edx, eax
mov ecx, dword [0x68d0e4]
mov eax, dword [0xa13450]
imul eax, eax, 0xffffff50
add eax, ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x537c60
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov dword [0xa13838], 0
mov eax, dword [0xa13838]
add eax, 1
mov dword [0xa13838], eax
mov edx, dword [0x677bc0]
mov eax, dword [0xa13838]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 4], 2
mov edx, dword [0x677bc0]
mov eax, dword [0xa13838]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 8], str._KEYBOARD__BUTTON_
mov edx, dword [0x677bc0]
mov eax, dword [0xa13838]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x10], 0x200
mov edx, dword [0x677bc0]
mov eax, dword [0xa13838]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x138], str.Keyboard
mov edx, dword [0x677bc0]
mov eax, dword [0xa13838]
imul eax, eax, 0x160
add eax, edx
mov dword [esp], eax
call fcn.004032cf
mov eax, dword [0xa13838]
add eax, 1
mov dword [0xa13838], eax
mov edx, dword [0x677bc0]
mov eax, dword [0xa13838]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 4], 3
mov edx, dword [0x677bc0]
mov eax, dword [0xa13838]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 8], str._MOUSE__BUTTON__AXIS__WHEEL_
mov edx, dword [0x677bc0]
mov eax, dword [0xa13838]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x10], 3
mov edx, dword [0x677bc0]
mov eax, dword [0xa13838]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x14], 2
mov edx, dword [0x677bc0]
mov eax, dword [0xa13838]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x18], 3
mov edx, dword [0x677bc0]
mov eax, dword [0xa13838]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x138], str.Mouse
mov edx, dword [0x677bc0]
mov eax, dword [0xa13838]
imul eax, eax, 0x160
add eax, edx
mov dword [esp], eax
call fcn.004032cf
mov eax, dword [0xa13838]
mov dword [0x677bbc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x405646
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], 0x4044fa
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 [0x696ed8], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x491b2f
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 [0x67c724]
test eax, eax
jne 0x4918ee
mov dword [0x67c578], 1
jmp 0x4918ee
mov dword [esp], 0x64
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp - 0x178], 2
call eax
sub esp, 4
jmp 0x4918ef
nop
mov eax, dword [0x67c578]
test eax, eax
sete al
test al, al
jne 0x4918d1
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.00408614
mov dword [esp], 0x12
call fcn.00497b90
mov dword [esp + 4], 0x190
mov dword [esp], 0x280
call fcn.00497b60
mov dword [esp], 0x190
call fcn.0049c680
test eax, eax
sete al
test al, al
je 0x491963
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov eax, dword [0x67c580]
test eax, eax
jne 0x491984
mov dword [esp], str.Untitled
mov dword [ebp - 0x178], 2
call fcn.00408636
jmp 0x49199b
mov eax, dword [0x67c580]
mov dword [esp], eax
mov dword [ebp - 0x178], 2
call fcn.00408636
mov dword [0x67c574], 1
mov dword [ebp - 0x178], 2
call fcn.0042dfcd
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x4919d3
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call fcn.0042df7d
sub esp, 4
mov dword [esp], eax
call fcn.00438c8b
mov dword [esp], str.GL_EXT_framebuffer_object
call fcn.0042dfed
sub esp, 4
test al, al
setne al
test al, al
je 0x4919f5
mov dword [0x67c548], 1
mov dword [esp], 0x48d00b
mov dword [ebp - 0x178], 2
call fcn.0049b6c0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x48a28f
mov dword [esp], 8
call fcn.0049b810
mov dword [esp], 0x48a027
call fcn.0049b760
mov dword [esp], 0x48a049
call fcn.0049b8e0
mov dword [esp], 0x48a259
call fcn.0049b7a0
mov dword [esp], 0x48a274
call fcn.0049b920
mov dword [esp], 0x48ec8f
call fcn.0049ba20
mov dword [esp], fcn.0048ecdb
call fcn.0049baa0
mov dword [esp], 0x48f273
call fcn.0049bae0
mov dword [esp], 0x48a536
call fcn.0049b720
mov dword [esp], 0x48f28d
call fcn.0049ba60
call fcn.0049d490
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x178], 1
mov ecx, eax
call fcn.004feb70
mov eax, 0
mov dword [ebp - 0x180], eax
jmp 0x491b0f
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.004aa790
mov eax, dword [ebp - 0x180]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret