Function at 0x493721
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], 0x51b2a0
mov dword [ebp - 0x160], 0x51be8a
lea eax, [ebp - 0x15c]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x494dcd
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.004ad9b0
call fcn.004ad400
mov dword [0x67f660], 0
mov dword [0x67f664], 0
mov dword [0x67f668], 0xffffffff
mov dword [0x67f66c], 0xffffffff
mov dword [0x67f670], 0
mov dword [0x67f674], 0xffffffff
mov dword [0x67f678], 0xffffffff
mov dword [0x67f67c], 0xffffffff
mov dword [0xa16858], 0
jmp 0x493864
mov eax, dword [0xa16858]
shl eax, 5
add eax, 0x67f5e0
mov dword [eax], 1
mov eax, dword [0xa16858]
shl eax, 5
add eax, 0x67f5e0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [0xa16858]
shl eax, 5
add eax, 0x67f5f0
mov dword [eax], 0
mov eax, dword [0xa16858]
shl eax, 5
add eax, 0x67f5f0
mov dword [eax + 4], 0
mov eax, dword [0xa16858]
shl eax, 5
add eax, 0x67f5f0
mov dword [eax + 8], 0
mov eax, dword [0xa16858]
shl eax, 5
add eax, 0x67f5f0
mov dword [eax + 0xc], 0
mov eax, dword [0xa16858]
add eax, 1
mov dword [0xa16858], eax
mov eax, dword [0xa16858]
cmp eax, 2
setle al
test al, al
jne 0x4937da
mov dword [ebp - 0x178], 1
call fcn.00401713
mov eax, dword [0x67f5d0]
test eax, eax
je 0x493899
mov dword [0x51e06c], 0
mov eax, dword [0x67f5cc]
test eax, eax
je 0x4938ac
mov eax, dword [0x67f5cc]
mov dword [0x67f5ac], eax
mov dword [esp], 0x1c
call fcn.0043a317
mov dword [0x699dd4], eax
mov dword [esp], 8
call fcn.0043a317
mov dword [0x67f650], eax
mov dword [esp], 0x14
call fcn.0043a317
mov dword [0x67f654], eax
mov dword [esp], 0x14
call fcn.0043a317
mov dword [0xa15bf4], eax
mov dword [esp], 0x48
mov dword [ebp - 0x178], 1
call fcn.0043a3a9
mov dword [0x67f684], eax
mov dword [esp], 0x70
call fcn.0043a317
mov dword [0x67f698], eax
mov eax, dword [0x699dd4]
mov dword [esp], eax
call fcn.0043a3e2
mov dword [0x699dd8], eax
mov eax, dword [0x699dd8]
mov dword [0x699ddc], eax
mov edx, dword [0x699ddc]
mov eax, dword [0x699dd4]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0043a890
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 [0x67ab4c]
test eax, eax
jne 0x493993
call fcn.00468a53
mov eax, dword [0x67abc4]
test eax, eax
je 0x4939a6
mov dword [0x67f744], 1
mov eax, dword [0x67abc0]
test eax, eax
je 0x4939f4
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 0x4939f4
mov dword [0x67f740], 1
mov eax, dword [0x67abe8]
add eax, 0x28
mov dword [eax + 0x14], 0x3b00
mov eax, dword [0x67abe8]
add eax, 0x50
mov dword [eax + 0x14], 0x3c00
mov eax, dword [0x67abe8]
add eax, 0x78
mov dword [eax + 0x14], 0x3d00
mov eax, dword [0x67abe8]
add eax, 0xa0
mov dword [eax + 0x14], 0x3e00
mov eax, dword [0x67abe8]
add eax, 0xc8
mov dword [eax + 0x14], 0x3f00
mov eax, dword [0x67abe8]
add eax, 0xf0
mov dword [eax + 0x14], 0x4000
mov eax, dword [0x67abe8]
add eax, 0x118
mov dword [eax + 0x14], 0x4100
mov eax, dword [0x67abe8]
add eax, 0x140
mov dword [eax + 0x14], 0x4200
mov eax, dword [0x67abe8]
add eax, 0x168
mov dword [eax + 0x14], 0x4300
mov eax, dword [0x67abe8]
add eax, 0x190
mov dword [eax + 0x14], 0x4400
mov eax, dword [0x67abe8]
add eax, 0x1b8
mov dword [eax + 0x14], 0x4800
mov eax, dword [0x67abe8]
add eax, 0x1b8
mov dword [eax + 0x18], 0x187a8
mov eax, dword [0x67abe8]
add eax, 0x1e0
mov dword [eax + 0x14], 0x4b00
mov eax, dword [0x67abe8]
add eax, 0x1e0
mov dword [eax + 0x18], 0x187a4
mov eax, dword [0x67abe8]
add eax, 0x208
mov dword [eax + 0x14], 0x4d00
mov eax, dword [0x67abe8]
add eax, 0x208
mov dword [eax + 0x18], 0x187a6
mov eax, dword [0x67abe8]
add eax, 0x230
mov dword [eax + 0x14], 0x5000
mov eax, dword [0x67abe8]
add eax, 0x230
mov dword [eax + 0x18], 0x187a2
mov eax, dword [0x67abe8]
add eax, 0x4b0
mov dword [eax + 0x14], 0x8500
mov eax, dword [0x67abe8]
add eax, 0x4d8
mov dword [eax + 0x14], 0x8600
mov eax, dword [0x67abf8]
mov byte [eax], 1
mov eax, dword [0x67abf8]
mov dword [eax + 4], 0
mov eax, dword [0x67abf8]
mov byte [eax + 0x11], 0
mov eax, dword [0x67abf8]
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 0x493b72
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 [0xa15a54], eax
mov eax, dword [0x67f754]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x67f754]
add eax, 0x38
mov dword [eax], 8
mov eax, dword [0x67f754]
add eax, 0x40
mov dword [eax], 8
mov eax, dword [0x67f750]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x67f750]
add eax, 0x38
mov dword [eax], 0xe
mov eax, dword [0x67f750]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x67f758]
add eax, 0x20
mov dword [eax], 0x10
mov eax, dword [0x67f758]
add eax, 0x38
mov dword [eax], 0x10
mov eax, dword [0x67f758]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x67f754]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x67f754]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x67f754]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x67f750]
add eax, 0x24
mov dword [eax], 8
mov eax, dword [0x67f750]
add eax, 0x3c
mov dword [eax], 0xe
mov eax, dword [0x67f750]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x67f758]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x67f758]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x67f758]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x690104]
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.0043c918
mov dword [0xa1685c], eax
mov edx, dword [0x690104]
mov eax, dword [0xa1685c]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x10], 0
call fcn.0043c918
mov dword [0xa1685c], eax
mov edx, dword [0x690104]
mov eax, dword [0xa1685c]
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], 0x699de0
call sub.msvcrt.dll_memset
mov dword [0x699e40], 0x699de0
mov dword [0x699e44], 0x699de8
mov dword [0x699e48], 0x699dec
mov dword [0x699e4c], 0x699de4
mov dword [0x699e50], 0x699de1
mov dword [0x699e54], 0x699de9
mov dword [0x699e58], 0x699ded
mov dword [0x699e5c], 0x699de5
mov dword [0x699e60], 0x699de0
mov dword [0x699e64], 0x699de8
mov dword [0x699e68], 0x699dec
mov dword [0x699e6c], 0x699de4
mov dword [0x699e70], 0x699dfc
mov dword [0x699e74], 0x699df8
mov dword [0x699e78], 0x699df0
mov dword [0x699e7c], 0x699df4
mov dword [0x699e80], 0x699de0
mov dword [0x699e84], 0x699de8
mov dword [0x699e88], 0x699dec
mov dword [0x699e8c], 0x699de4
mov dword [0x699e90], 0x699dfc
mov dword [0x699e94], 0x699df8
mov dword [0x699e98], 0x699df0
mov dword [0x699e9c], 0x699df4
mov dword [0x699ea0], 0x699e06
mov dword [0x699ea4], 0x699e00
mov dword [0x699ea8], 0x699e02
mov dword [0x699eac], 0x699e04
mov dword [0x699eb0], 0x699e08
mov dword [0x699eb4], 0x699e0a
mov dword [0xa16858], 0
jmp 0x493e6e
mov eax, dword [0xa16858]
mov byte [eax + 0xa14f80], 0x20
mov eax, dword [0xa16858]
add eax, 1
mov dword [0xa16858], eax
mov eax, dword [0xa16858]
cmp eax, 0x1f
setle al
test al, al
jne 0x493e55
mov byte [0xa15100], 0x81
mov dword [0x699f20], 0x100000
mov eax, dword [0x699f20]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x67a294], eax
mov eax, dword [0x67a294]
mov dword [0x67a298], eax
mov edx, dword [0x67a294]
mov eax, dword [0x699f20]
add eax, edx
mov dword [0x67a29c], eax
mov dword [esp + 8], 0x10fff3
mov dword [esp + 4], 0
mov dword [esp], 0x56a2a0
call sub.msvcrt.dll_memset
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0
mov dword [esp], 0x9f8160
call sub.msvcrt.dll_memset
mov eax, 0x56a2a0
add eax, 0x500
mov dword [0x56a264], eax
mov eax, dword [0x51e00c]
sub eax, 8
mov dword [0x51e00c], eax
mov eax, dword [0x56a264]
mov edx, eax
mov eax, dword [0x51e00c]
add eax, edx
mov dword [0x56a274], eax
mov eax, dword [0x56a274]
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.00446f14
mov dword [0x56a290], eax
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.00446f14
mov dword [0xa08160], eax
mov eax, dword [0xa08160]
mov eax, dword [eax]
mov byte [eax], 0x20
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004472be
mov dword [0xa15c34], eax
call fcn.0049278b
mov edx, eax
mov eax, dword [0xa15c34]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00447425
mov eax, 0xa165c8
movzx eax, byte [eax]
test al, al
jne 0x493fea
mov dword [esp], 0xa165c8
call fcn.0051ae60
test eax, eax
setne al
test al, al
je 0x493fea
mov dword [esp], 0x10000
call sub.msvcrt.dll_malloc
mov dword [0xa16860], eax
mov dword [esp], 0xa165c8
call fcn.0051b000
mov eax, dword [0xa16860]
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 [0xa16860]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [0xa16858], eax
mov eax, dword [0xa16858]
sub eax, 1
mov dword [0xa16864], eax
jmp 0x4940ab
mov edx, dword [0xa16860]
mov eax, dword [0xa16864]
add eax, edx
movzx eax, byte [eax]
movsx eax, al
mov dword [0xa1685c], eax
mov eax, dword [0xa1685c]
cmp eax, 0x5c
je 0x49406d
mov eax, dword [0xa1685c]
cmp eax, 0x2f
je 0x49406d
mov eax, dword [0xa1685c]
cmp eax, 0x3a
jne 0x49409e
mov eax, dword [0xa1685c]
cmp eax, 0x3a
jne 0x49408c
mov eax, dword [0xa16860]
mov edx, dword [0xa16864]
add edx, 1
add eax, edx
mov byte [eax], 0
jmp 0x4940bd
mov edx, dword [0xa16860]
mov eax, dword [0xa16864]
add eax, edx
mov byte [eax], 0
jmp 0x4940bd
mov eax, dword [0xa16864]
sub eax, 1
mov dword [0xa16864], eax
mov eax, dword [0xa16864]
not eax
shr eax, 0x1f
test al, al
jne 0x494037
mov eax, dword [0xa16860]
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.004472be
mov dword [0xa15c38], eax
call fcn.0049278b
mov edx, eax
mov eax, dword [0xa15c38]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00447425
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004472be
mov dword [0x68f7bc], eax
mov dword [esp + 4], 0x14
mov dword [esp], str.Unknown_Opcode_____
call fcn.0044713b
mov edx, eax
mov eax, dword [0x68f7bc]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00447425
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
mov dword [0xa16858], eax
mov eax, dword [0xa16858]
cmp eax, 1
jle 0x4942f7
mov dword [0xa16864], 0
mov dword [0xa16858], 1
jmp 0x4941c8
mov eax, dword [0xa16858]
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 [0xa16864]
add eax, edx
mov dword [0xa16864], eax
mov eax, dword [0xa16858]
cmp eax, 1
je 0x4941bb
mov eax, dword [0xa16864]
add eax, 1
mov dword [0xa16864], eax
mov eax, dword [0xa16858]
add eax, 1
mov dword [0xa16858], eax
mov edx, dword [0xa16858]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x494176
mov eax, dword [0xa16864]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x178], 1
call fcn.004472be
mov dword [0xa15204], eax
mov dword [0xa16868], 0
mov dword [0xa16858], 1
jmp 0x4942da
mov eax, dword [0xa16858]
cmp eax, 1
je 0x494244
mov eax, dword [0xa15204]
mov edx, dword [eax]
mov eax, dword [0xa16868]
add eax, edx
mov byte [eax], 0x20
mov eax, dword [0xa16868]
add eax, 1
mov dword [0xa16868], eax
mov eax, dword [0xa16858]
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 [0xa16858]
lea ecx, [edx*4]
mov ebx, dword [ebp - 0x188]
mov edx, dword [ebx + 4]
add edx, ecx
mov edx, dword [edx]
mov ecx, dword [0xa15204]
mov ebx, dword [ecx]
mov ecx, dword [0xa16868]
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 [0xa16858]
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 [0xa16868]
add eax, edx
mov dword [0xa16868], eax
mov eax, dword [0xa16858]
add eax, 1
mov dword [0xa16858], eax
mov edx, dword [0xa16858]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x49421c
jmp 0x49431a
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x178], 1
call fcn.004472be
mov dword [0xa15204], eax
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
mov dword [0xa1520c], eax
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx + 4]
mov dword [0xa15208], eax
lea eax, [ebp - 0x40]
mov dword [esp], eax
call fcn.004af4b0
mov eax, dword [ebp - 0x40]
cmp eax, 0xffffffff
je 0x494364
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004af4b0
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp edx, eax
sete al
test al, al
jne 0x494348
jmp 0x49436b
mov dword [ebp - 0x3c], 0
call fcn.0043b4f3
mov dword [0x699f04], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004af4c0
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x4943c9
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 [0x699f00], eax
mov eax, dword [0x699f00]
imul eax, eax, 0x3e8
mov dword [0x699f00], eax
jmp 0x4943d3
mov dword [0x699f00], 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 0x494407
mov dword [esp], 0x30d4b
call fcn.0043ba8f
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 0x494440
mov dword [0x68f768], 0x12e
mov dword [esp], 0x187ce
call fcn.0043bd9e
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 0x494479
mov dword [0x68f768], 0x130
mov dword [esp], 0x187d0
call fcn.0043bd9e
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 0x4944b2
mov dword [0x68f768], 0x12f
mov dword [esp], 0x187cf
call fcn.0043bd9e
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 0x4944eb
mov dword [0x68f768], 0x132
mov dword [esp], 0x187d2
call fcn.0043bd9e
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 0x494524
mov dword [0x68f768], 0x131
mov dword [esp], 0x187d1
call fcn.0043bd9e
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 0x49455d
mov dword [0x68f768], 0x134
mov dword [esp], 0x187d4
call fcn.0043bd9e
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 0x494596
mov dword [0x68f768], 0x133
mov dword [esp], 0x187d3
call fcn.0043bd9e
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 0x4945d4
mov dword [0x68f768], 0x12d
mov dword [esp], 0x187cd
call fcn.0043bd9e
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 0x494612
mov dword [0x68f768], 0x12c
mov dword [esp], 0x187cc
call fcn.0043bd9e
mov dword [ebp - 0x178], 1
call fcn.004976fb
mov eax, dword [0x68f760]
mov dword [0x68f764], eax
mov byte [0x56a6ba], 0x1e
mov byte [0x56a6bb], 0
mov byte [0x56a6bc], 0x1e
mov byte [0x56a6bd], 0
lea eax, [ebp - 0x13c]
mov ecx, eax
call fcn.00501760
mov eax, dword [0x51e520]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x54d100
mov dword [esp], 0x68fc00
call sub.msvcrt.dll_memcpy
mov dword [0xa16858], 0
jmp 0x4946a9
mov eax, dword [0xa16858]
mov edx, dword [0xa16858]
mov edx, dword [edx*4 + 0x68fc00]
or edx, 0xff000000
mov dword [eax*4 + 0x68fc00], edx
mov eax, dword [0xa16858]
add eax, 1
mov dword [0xa16858], eax
mov eax, dword [0xa16858]
cmp eax, 0xff
setle al
test al, al
jne 0x49467d
mov eax, dword [0x51e524]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x54d500
mov dword [esp], 0x690000
call sub.msvcrt.dll_memcpy
mov dword [0xa16858], 0
jmp 0x49470f
mov eax, dword [0xa16858]
mov edx, dword [0xa16858]
mov edx, dword [edx*4 + 0x690000]
or edx, 0xff000000
mov dword [eax*4 + 0x690000], edx
mov eax, dword [0xa16858]
add eax, 1
mov dword [0xa16858], eax
mov eax, dword [0xa16858]
cmp eax, 0x3f
setle al
test al, al
jne 0x4946e3
mov dword [0xa086a0], 0
mov dword [0xa086a4], 0
mov dword [0xa086a8], 0
mov dword [0xa086ac], 0x808080
mov dword [0xa086b0], 0x808080
mov dword [0xa086b4], 0x808080
mov dword [0xa086b8], 0xffffff
mov dword [0xa086bc], 0xffffff
mov dword [0xa086c0], 0xffffff
mov dword [0xa086c4], 0
mov dword [0xa086c8], 0x808080
mov dword [0xa086cc], 0xffffff
mov dword [0xa086d0], 0
mov dword [0xa086d4], 0x808080
mov dword [0xa086d8], 0xffffff
mov dword [0xa086dc], 0
mov dword [0xa086e0], 0x808080
mov dword [0xa086e4], 0xffffff
mov eax, dword [0x51e518]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x541100
mov dword [esp], 0xa08700
call sub.msvcrt.dll_memcpy
mov eax, dword [0x51e51c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x545100
mov dword [esp], 0xa0c700
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.0044bba7
mov dword [0x51e52c], 1
mov eax, dword [0x67abc0]
test eax, eax
je 0x4948a9
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x19
mov dword [esp], 0x50
call fcn.0046e20d
mov dword [0x51e2e0], eax
mov eax, dword [0x51e2e0]
neg eax
mov dword [0xa16858], eax
mov edx, dword [0x690104]
mov eax, dword [0xa16858]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x12], 1
mov edx, dword [0x51e07c]
mov eax, dword [0x51e078]
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.0046e20d
mov dword [0xa1646c], eax
mov edx, dword [0x51e078]
mov eax, dword [0x51e07c]
imul eax, edx
shl eax, 2
mov edx, eax
mov ecx, dword [0x690104]
mov eax, dword [0xa1646c]
imul eax, eax, 0xffffff50
add eax, ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x53a940
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [0x51e084]
mov eax, dword [0x51e080]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x20
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0046e20d
mov dword [0xa16470], eax
mov edx, dword [0x51e080]
mov eax, dword [0x51e084]
imul eax, edx
shl eax, 2
mov edx, eax
mov ecx, dword [0x690104]
mov eax, dword [0xa16470]
imul eax, eax, 0xffffff50
add eax, ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x53ad40
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov dword [0xa16858], 0
mov eax, dword [0xa16858]
add eax, 1
mov dword [0xa16858], eax
mov edx, dword [0x67abd8]
mov eax, dword [0xa16858]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 4], 2
mov edx, dword [0x67abd8]
mov eax, dword [0xa16858]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 8], str._KEYBOARD__BUTTON_
mov edx, dword [0x67abd8]
mov eax, dword [0xa16858]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x10], 0x200
mov edx, dword [0x67abd8]
mov eax, dword [0xa16858]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x138], str.Keyboard
mov edx, dword [0x67abd8]
mov eax, dword [0xa16858]
imul eax, eax, 0x160
add eax, edx
mov dword [esp], eax
call fcn.00403149
mov eax, dword [0xa16858]
add eax, 1
mov dword [0xa16858], eax
mov edx, dword [0x67abd8]
mov eax, dword [0xa16858]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 4], 3
mov edx, dword [0x67abd8]
mov eax, dword [0xa16858]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 8], str._MOUSE__BUTTON__AXIS__WHEEL_
mov edx, dword [0x67abd8]
mov eax, dword [0xa16858]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x10], 3
mov edx, dword [0x67abd8]
mov eax, dword [0xa16858]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x14], 2
mov edx, dword [0x67abd8]
mov eax, dword [0xa16858]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x18], 3
mov edx, dword [0x67abd8]
mov eax, dword [0xa16858]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x138], str.Mouse
mov edx, dword [0x67abd8]
mov eax, dword [0xa16858]
imul eax, eax, 0x160
add eax, edx
mov dword [esp], eax
call fcn.00403149
mov eax, dword [0xa16858]
mov dword [0x67abd4], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x4054c0
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], 0x404374
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 [0x699ef8], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x494e1b
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 [0x67f744]
test eax, eax
jne 0x494bda
mov dword [0x67f598], 1
jmp 0x494bda
mov dword [esp], 0x64
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp - 0x178], 2
call eax
sub esp, 4
jmp 0x494bdb
nop
mov eax, dword [0x67f598]
test eax, eax
sete al
test al, al
jne 0x494bbd
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.0040b900
mov dword [esp], 0x12
call fcn.0049ae70
mov dword [esp + 4], 0x190
mov dword [esp], 0x280
call fcn.0049ae40
mov dword [esp], 0x190
call fcn.0049f960
test eax, eax
sete al
test al, al
je 0x494c4f
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov eax, dword [0x67f5a0]
test eax, eax
jne 0x494c70
mov dword [esp], str.Untitled
mov dword [ebp - 0x178], 2
call fcn.0040b922
jmp 0x494c87
mov eax, dword [0x67f5a0]
mov dword [esp], eax
mov dword [ebp - 0x178], 2
call fcn.0040b922
mov dword [0x67f594], 1
mov dword [ebp - 0x178], 2
call fcn.004312b9
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x494cbf
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call fcn.00431269
sub esp, 4
mov dword [esp], eax
call fcn.0043bf77
mov dword [esp], str.GL_EXT_framebuffer_object
call fcn.004312d9
sub esp, 4
test al, al
setne al
test al, al
je 0x494ce1
mov dword [0x67f568], 1
mov dword [esp], 0x4902f7
mov dword [ebp - 0x178], 2
call fcn.0049e9a0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x48d57b
mov dword [esp], 8
call fcn.0049eaf0
mov dword [esp], 0x48d313
call fcn.0049ea40
mov dword [esp], 0x48d335
call fcn.0049ebc0
mov dword [esp], 0x48d545
call fcn.0049ea80
mov dword [esp], 0x48d560
call fcn.0049ec00
mov dword [esp], 0x491f7b
call fcn.0049ed00
mov dword [esp], fcn.00491fc7
call fcn.0049ed80
mov dword [esp], 0x49255f
call fcn.0049edc0
mov dword [esp], 0x48d822
call fcn.0049ea00
mov dword [esp], 0x492579
call fcn.0049ed40
call fcn.004a0770
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x178], 1
mov ecx, eax
call fcn.00501e60
mov eax, 0
mov dword [ebp - 0x180], eax
jmp 0x494dfb
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.004ada70
mov eax, dword [ebp - 0x180]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret