Function at 0x496ef1
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], 0x51ea60
mov dword [ebp - 0x160], 0x51f64a
lea eax, [ebp - 0x15c]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x49859d
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.004b1180
call fcn.004b0bd0
mov dword [0x682600], 0
mov dword [0x682604], 0
mov dword [0x682608], 0xffffffff
mov dword [0x68260c], 0xffffffff
mov dword [0x682610], 0
mov dword [0x682614], 0xffffffff
mov dword [0x682618], 0xffffffff
mov dword [0x68261c], 0xffffffff
mov dword [0xa197f8], 0
jmp 0x497034
mov eax, dword [0xa197f8]
shl eax, 5
add eax, 0x682580
mov dword [eax], 1
mov eax, dword [0xa197f8]
shl eax, 5
add eax, 0x682580
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [0xa197f8]
shl eax, 5
add eax, 0x682590
mov dword [eax], 0
mov eax, dword [0xa197f8]
shl eax, 5
add eax, 0x682590
mov dword [eax + 4], 0
mov eax, dword [0xa197f8]
shl eax, 5
add eax, 0x682590
mov dword [eax + 8], 0
mov eax, dword [0xa197f8]
shl eax, 5
add eax, 0x682590
mov dword [eax + 0xc], 0
mov eax, dword [0xa197f8]
add eax, 1
mov dword [0xa197f8], eax
mov eax, dword [0xa197f8]
cmp eax, 2
setle al
test al, al
jne 0x496faa
mov dword [ebp - 0x178], 1
call fcn.00401713
mov eax, dword [0x682570]
test eax, eax
je 0x497069
mov dword [0x52106c], 0
mov eax, dword [0x68256c]
test eax, eax
je 0x49707c
mov eax, dword [0x68256c]
mov dword [0x68254c], eax
mov dword [esp], 0x1c
call fcn.0043dae7
mov dword [0x69cd74], eax
mov dword [esp], 8
call fcn.0043dae7
mov dword [0x6825f0], eax
mov dword [esp], 0x14
call fcn.0043dae7
mov dword [0x6825f4], eax
mov dword [esp], 0x14
call fcn.0043dae7
mov dword [0xa18b94], eax
mov dword [esp], 0x48
mov dword [ebp - 0x178], 1
call fcn.0043db79
mov dword [0x682624], eax
mov dword [esp], 0x70
call fcn.0043dae7
mov dword [0x682638], eax
mov eax, dword [0x69cd74]
mov dword [esp], eax
call fcn.0043dbb2
mov dword [0x69cd78], eax
mov eax, dword [0x69cd78]
mov dword [0x69cd7c], eax
mov edx, dword [0x69cd7c]
mov eax, dword [0x69cd74]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0043e060
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 [0x67db4c]
test eax, eax
jne 0x497163
call fcn.0046c223
mov eax, dword [0x67dbe0]
test eax, eax
je 0x497176
mov dword [0x6826e4], 1
mov eax, dword [0x67dbdc]
test eax, eax
je 0x4971c4
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 0x4971c4
mov dword [0x6826e0], 1
mov eax, dword [0x67dc04]
add eax, 0x28
mov dword [eax + 0x14], 0x3b00
mov eax, dword [0x67dc04]
add eax, 0x50
mov dword [eax + 0x14], 0x3c00
mov eax, dword [0x67dc04]
add eax, 0x78
mov dword [eax + 0x14], 0x3d00
mov eax, dword [0x67dc04]
add eax, 0xa0
mov dword [eax + 0x14], 0x3e00
mov eax, dword [0x67dc04]
add eax, 0xc8
mov dword [eax + 0x14], 0x3f00
mov eax, dword [0x67dc04]
add eax, 0xf0
mov dword [eax + 0x14], 0x4000
mov eax, dword [0x67dc04]
add eax, 0x118
mov dword [eax + 0x14], 0x4100
mov eax, dword [0x67dc04]
add eax, 0x140
mov dword [eax + 0x14], 0x4200
mov eax, dword [0x67dc04]
add eax, 0x168
mov dword [eax + 0x14], 0x4300
mov eax, dword [0x67dc04]
add eax, 0x190
mov dword [eax + 0x14], 0x4400
mov eax, dword [0x67dc04]
add eax, 0x1b8
mov dword [eax + 0x14], 0x4800
mov eax, dword [0x67dc04]
add eax, 0x1b8
mov dword [eax + 0x18], 0x187a8
mov eax, dword [0x67dc04]
add eax, 0x1e0
mov dword [eax + 0x14], 0x4b00
mov eax, dword [0x67dc04]
add eax, 0x1e0
mov dword [eax + 0x18], 0x187a4
mov eax, dword [0x67dc04]
add eax, 0x208
mov dword [eax + 0x14], 0x4d00
mov eax, dword [0x67dc04]
add eax, 0x208
mov dword [eax + 0x18], 0x187a6
mov eax, dword [0x67dc04]
add eax, 0x230
mov dword [eax + 0x14], 0x5000
mov eax, dword [0x67dc04]
add eax, 0x230
mov dword [eax + 0x18], 0x187a2
mov eax, dword [0x67dc04]
add eax, 0x4b0
mov dword [eax + 0x14], 0x8500
mov eax, dword [0x67dc04]
add eax, 0x4d8
mov dword [eax + 0x14], 0x8600
mov eax, dword [0x67dc14]
mov byte [eax], 1
mov eax, dword [0x67dc14]
mov dword [eax + 4], 0
mov eax, dword [0x67dc14]
mov byte [eax + 0x11], 0
mov eax, dword [0x67dc14]
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 0x497342
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 [0xa189f4], eax
mov eax, dword [0x6826f4]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x6826f4]
add eax, 0x38
mov dword [eax], 8
mov eax, dword [0x6826f4]
add eax, 0x40
mov dword [eax], 8
mov eax, dword [0x6826f0]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x6826f0]
add eax, 0x38
mov dword [eax], 0xe
mov eax, dword [0x6826f0]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x6826f8]
add eax, 0x20
mov dword [eax], 0x10
mov eax, dword [0x6826f8]
add eax, 0x38
mov dword [eax], 0x10
mov eax, dword [0x6826f8]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x6826f4]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x6826f4]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x6826f4]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x6826f0]
add eax, 0x24
mov dword [eax], 8
mov eax, dword [0x6826f0]
add eax, 0x3c
mov dword [eax], 0xe
mov eax, dword [0x6826f0]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x6826f8]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x6826f8]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x6826f8]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x6930a4]
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.004400e8
mov dword [0xa197fc], eax
mov edx, dword [0x6930a4]
mov eax, dword [0xa197fc]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x10], 0
call fcn.004400e8
mov dword [0xa197fc], eax
mov edx, dword [0x6930a4]
mov eax, dword [0xa197fc]
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], 0x69cd80
call sub.msvcrt.dll_memset
mov dword [0x69cde0], 0x69cd80
mov dword [0x69cde4], 0x69cd88
mov dword [0x69cde8], 0x69cd8c
mov dword [0x69cdec], 0x69cd84
mov dword [0x69cdf0], 0x69cd81
mov dword [0x69cdf4], 0x69cd89
mov dword [0x69cdf8], 0x69cd8d
mov dword [0x69cdfc], 0x69cd85
mov dword [0x69ce00], 0x69cd80
mov dword [0x69ce04], 0x69cd88
mov dword [0x69ce08], 0x69cd8c
mov dword [0x69ce0c], 0x69cd84
mov dword [0x69ce10], 0x69cd9c
mov dword [0x69ce14], 0x69cd98
mov dword [0x69ce18], 0x69cd90
mov dword [0x69ce1c], 0x69cd94
mov dword [0x69ce20], 0x69cd80
mov dword [0x69ce24], 0x69cd88
mov dword [0x69ce28], 0x69cd8c
mov dword [0x69ce2c], 0x69cd84
mov dword [0x69ce30], 0x69cd9c
mov dword [0x69ce34], 0x69cd98
mov dword [0x69ce38], 0x69cd90
mov dword [0x69ce3c], 0x69cd94
mov dword [0x69ce40], 0x69cda6
mov dword [0x69ce44], 0x69cda0
mov dword [0x69ce48], 0x69cda2
mov dword [0x69ce4c], 0x69cda4
mov dword [0x69ce50], 0x69cda8
mov dword [0x69ce54], 0x69cdaa
mov dword [0xa197f8], 0
jmp 0x49763e
mov eax, dword [0xa197f8]
mov byte [eax + 0xa17f20], 0x20
mov eax, dword [0xa197f8]
add eax, 1
mov dword [0xa197f8], eax
mov eax, dword [0xa197f8]
cmp eax, 0x1f
setle al
test al, al
jne 0x497625
mov byte [0xa180a0], 0x81
mov dword [0x69cec0], 0x100000
mov eax, dword [0x69cec0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x67d294], eax
mov eax, dword [0x67d294]
mov dword [0x67d298], eax
mov edx, dword [0x67d294]
mov eax, dword [0x69cec0]
add eax, edx
mov dword [0x67d29c], eax
mov dword [esp + 8], 0x10fff3
mov dword [esp + 4], 0
mov dword [esp], 0x56d2a0
call sub.msvcrt.dll_memset
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0
mov dword [esp], 0x9fb100
call sub.msvcrt.dll_memset
mov eax, 0x56d2a0
add eax, 0x500
mov dword [0x56d264], eax
mov eax, dword [0x52100c]
sub eax, 8
mov dword [0x52100c], eax
mov eax, dword [0x56d264]
mov edx, eax
mov eax, dword [0x52100c]
add eax, edx
mov dword [0x56d274], eax
mov eax, dword [0x56d274]
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.0044a6e4
mov dword [0x56d290], eax
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.0044a6e4
mov dword [0xa0b100], eax
mov eax, dword [0xa0b100]
mov eax, dword [eax]
mov byte [eax], 0x20
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0044aa8e
mov dword [0xa18bd4], eax
call fcn.00495f5b
mov edx, eax
mov eax, dword [0xa18bd4]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0044abf5
mov eax, 0xa19568
movzx eax, byte [eax]
test al, al
jne 0x4977ba
mov dword [esp], 0xa19568
call fcn.0051e620
test eax, eax
setne al
test al, al
je 0x4977ba
mov dword [esp], 0x10000
call sub.msvcrt.dll_malloc
mov dword [0xa19800], eax
mov dword [esp], 0xa19568
call fcn.0051e7c0
mov eax, dword [0xa19800]
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 [0xa19800]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [0xa197f8], eax
mov eax, dword [0xa197f8]
sub eax, 1
mov dword [0xa19804], eax
jmp 0x49787b
mov edx, dword [0xa19800]
mov eax, dword [0xa19804]
add eax, edx
movzx eax, byte [eax]
movsx eax, al
mov dword [0xa197fc], eax
mov eax, dword [0xa197fc]
cmp eax, 0x5c
je 0x49783d
mov eax, dword [0xa197fc]
cmp eax, 0x2f
je 0x49783d
mov eax, dword [0xa197fc]
cmp eax, 0x3a
jne 0x49786e
mov eax, dword [0xa197fc]
cmp eax, 0x3a
jne 0x49785c
mov eax, dword [0xa19800]
mov edx, dword [0xa19804]
add edx, 1
add eax, edx
mov byte [eax], 0
jmp 0x49788d
mov edx, dword [0xa19800]
mov eax, dword [0xa19804]
add eax, edx
mov byte [eax], 0
jmp 0x49788d
mov eax, dword [0xa19804]
sub eax, 1
mov dword [0xa19804], eax
mov eax, dword [0xa19804]
not eax
shr eax, 0x1f
test al, al
jne 0x497807
mov eax, dword [0xa19800]
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.0044aa8e
mov dword [0xa18bd8], eax
call fcn.00495f5b
mov edx, eax
mov eax, dword [0xa18bd8]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0044abf5
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0044aa8e
mov dword [0x69275c], eax
mov dword [esp + 4], 0x14
mov dword [esp], str.Unknown_Opcode_____
call fcn.0044a90b
mov edx, eax
mov eax, dword [0x69275c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0044abf5
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
mov dword [0xa197f8], eax
mov eax, dword [0xa197f8]
cmp eax, 1
jle 0x497ac7
mov dword [0xa19804], 0
mov dword [0xa197f8], 1
jmp 0x497998
mov eax, dword [0xa197f8]
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 [0xa19804]
add eax, edx
mov dword [0xa19804], eax
mov eax, dword [0xa197f8]
cmp eax, 1
je 0x49798b
mov eax, dword [0xa19804]
add eax, 1
mov dword [0xa19804], eax
mov eax, dword [0xa197f8]
add eax, 1
mov dword [0xa197f8], eax
mov edx, dword [0xa197f8]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x497946
mov eax, dword [0xa19804]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x178], 1
call fcn.0044aa8e
mov dword [0xa181a4], eax
mov dword [0xa19808], 0
mov dword [0xa197f8], 1
jmp 0x497aaa
mov eax, dword [0xa197f8]
cmp eax, 1
je 0x497a14
mov eax, dword [0xa181a4]
mov edx, dword [eax]
mov eax, dword [0xa19808]
add eax, edx
mov byte [eax], 0x20
mov eax, dword [0xa19808]
add eax, 1
mov dword [0xa19808], eax
mov eax, dword [0xa197f8]
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 [0xa197f8]
lea ecx, [edx*4]
mov ebx, dword [ebp - 0x188]
mov edx, dword [ebx + 4]
add edx, ecx
mov edx, dword [edx]
mov ecx, dword [0xa181a4]
mov ebx, dword [ecx]
mov ecx, dword [0xa19808]
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 [0xa197f8]
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 [0xa19808]
add eax, edx
mov dword [0xa19808], eax
mov eax, dword [0xa197f8]
add eax, 1
mov dword [0xa197f8], eax
mov edx, dword [0xa197f8]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x4979ec
jmp 0x497aea
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x178], 1
call fcn.0044aa8e
mov dword [0xa181a4], eax
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
mov dword [0xa181ac], eax
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx + 4]
mov dword [0xa181a8], eax
lea eax, [ebp - 0x40]
mov dword [esp], eax
call fcn.004b2ca0
mov eax, dword [ebp - 0x40]
cmp eax, 0xffffffff
je 0x497b34
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004b2ca0
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp edx, eax
sete al
test al, al
jne 0x497b18
jmp 0x497b3b
mov dword [ebp - 0x3c], 0
call fcn.0043ecc3
mov dword [0x69cea4], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004b2cb0
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x497b99
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 [0x69cea0], eax
mov eax, dword [0x69cea0]
imul eax, eax, 0x3e8
mov dword [0x69cea0], eax
jmp 0x497ba3
mov dword [0x69cea0], 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 0x497bd7
mov dword [esp], 0x30d4b
call fcn.0043f25f
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 0x497c10
mov dword [0x692708], 0x12e
mov dword [esp], 0x187ce
call fcn.0043f56e
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 0x497c49
mov dword [0x692708], 0x130
mov dword [esp], 0x187d0
call fcn.0043f56e
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 0x497c82
mov dword [0x692708], 0x12f
mov dword [esp], 0x187cf
call fcn.0043f56e
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 0x497cbb
mov dword [0x692708], 0x132
mov dword [esp], 0x187d2
call fcn.0043f56e
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 0x497cf4
mov dword [0x692708], 0x131
mov dword [esp], 0x187d1
call fcn.0043f56e
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 0x497d2d
mov dword [0x692708], 0x134
mov dword [esp], 0x187d4
call fcn.0043f56e
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 0x497d66
mov dword [0x692708], 0x133
mov dword [esp], 0x187d3
call fcn.0043f56e
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 0x497da4
mov dword [0x692708], 0x12d
mov dword [esp], 0x187cd
call fcn.0043f56e
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 0x497de2
mov dword [0x692708], 0x12c
mov dword [esp], 0x187cc
call fcn.0043f56e
mov dword [ebp - 0x178], 1
call fcn.0049aecb
mov eax, dword [0x692700]
mov dword [0x692704], eax
mov byte [0x56d6ba], 0x1e
mov byte [0x56d6bb], 0
mov byte [0x56d6bc], 0x1e
mov byte [0x56d6bd], 0
lea eax, [ebp - 0x13c]
mov ecx, eax
call fcn.00504f10
mov eax, dword [0x521520]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x550840
mov dword [esp], 0x692ba0
call sub.msvcrt.dll_memcpy
mov dword [0xa197f8], 0
jmp 0x497e79
mov eax, dword [0xa197f8]
mov edx, dword [0xa197f8]
mov edx, dword [edx*4 + 0x692ba0]
or edx, 0xff000000
mov dword [eax*4 + 0x692ba0], edx
mov eax, dword [0xa197f8]
add eax, 1
mov dword [0xa197f8], eax
mov eax, dword [0xa197f8]
cmp eax, 0xff
setle al
test al, al
jne 0x497e4d
mov eax, dword [0x521524]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x550c40
mov dword [esp], 0x692fa0
call sub.msvcrt.dll_memcpy
mov dword [0xa197f8], 0
jmp 0x497edf
mov eax, dword [0xa197f8]
mov edx, dword [0xa197f8]
mov edx, dword [edx*4 + 0x692fa0]
or edx, 0xff000000
mov dword [eax*4 + 0x692fa0], edx
mov eax, dword [0xa197f8]
add eax, 1
mov dword [0xa197f8], eax
mov eax, dword [0xa197f8]
cmp eax, 0x3f
setle al
test al, al
jne 0x497eb3
mov dword [0xa0b640], 0
mov dword [0xa0b644], 0
mov dword [0xa0b648], 0
mov dword [0xa0b64c], 0x808080
mov dword [0xa0b650], 0x808080
mov dword [0xa0b654], 0x808080
mov dword [0xa0b658], 0xffffff
mov dword [0xa0b65c], 0xffffff
mov dword [0xa0b660], 0xffffff
mov dword [0xa0b664], 0
mov dword [0xa0b668], 0x808080
mov dword [0xa0b66c], 0xffffff
mov dword [0xa0b670], 0
mov dword [0xa0b674], 0x808080
mov dword [0xa0b678], 0xffffff
mov dword [0xa0b67c], 0
mov dword [0xa0b680], 0x808080
mov dword [0xa0b684], 0xffffff
mov eax, dword [0x521518]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x544840
mov dword [esp], 0xa0b6a0
call sub.msvcrt.dll_memcpy
mov eax, dword [0x52151c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x548840
mov dword [esp], 0xa0f6a0
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.0044f377
mov dword [0x52152c], 1
mov eax, dword [0x67dbdc]
test eax, eax
je 0x498079
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x19
mov dword [esp], 0x50
call fcn.004719dd
mov dword [0x5212e0], eax
mov eax, dword [0x5212e0]
neg eax
mov dword [0xa197f8], eax
mov edx, dword [0x6930a4]
mov eax, dword [0xa197f8]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x12], 1
mov edx, dword [0x52107c]
mov eax, dword [0x521078]
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.004719dd
mov dword [0xa1940c], eax
mov edx, dword [0x521078]
mov eax, dword [0x52107c]
imul eax, edx
shl eax, 2
mov edx, eax
mov ecx, dword [0x6930a4]
mov eax, dword [0xa1940c]
imul eax, eax, 0xffffff50
add eax, ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x53e080
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [0x521084]
mov eax, dword [0x521080]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x20
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004719dd
mov dword [0xa19410], eax
mov edx, dword [0x521080]
mov eax, dword [0x521084]
imul eax, edx
shl eax, 2
mov edx, eax
mov ecx, dword [0x6930a4]
mov eax, dword [0xa19410]
imul eax, eax, 0xffffff50
add eax, ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x53e480
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov dword [0xa197f8], 0
mov eax, dword [0xa197f8]
add eax, 1
mov dword [0xa197f8], eax
mov edx, dword [0x67dbf4]
mov eax, dword [0xa197f8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 4], 2
mov edx, dword [0x67dbf4]
mov eax, dword [0xa197f8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 8], str._KEYBOARD__BUTTON_
mov edx, dword [0x67dbf4]
mov eax, dword [0xa197f8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x10], 0x200
mov edx, dword [0x67dbf4]
mov eax, dword [0xa197f8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x138], str.Keyboard
mov edx, dword [0x67dbf4]
mov eax, dword [0xa197f8]
imul eax, eax, 0x160
add eax, edx
mov dword [esp], eax
call fcn.00403093
mov eax, dword [0xa197f8]
add eax, 1
mov dword [0xa197f8], eax
mov edx, dword [0x67dbf4]
mov eax, dword [0xa197f8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 4], 3
mov edx, dword [0x67dbf4]
mov eax, dword [0xa197f8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 8], str._MOUSE__BUTTON__AXIS__WHEEL_
mov edx, dword [0x67dbf4]
mov eax, dword [0xa197f8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x10], 3
mov edx, dword [0x67dbf4]
mov eax, dword [0xa197f8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x14], 2
mov edx, dword [0x67dbf4]
mov eax, dword [0xa197f8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x18], 3
mov edx, dword [0x67dbf4]
mov eax, dword [0xa197f8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x138], str.Mouse
mov edx, dword [0x67dbf4]
mov eax, dword [0xa197f8]
imul eax, eax, 0x160
add eax, edx
mov dword [esp], eax
call fcn.00403093
mov eax, dword [0xa197f8]
mov dword [0x67dbf0], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x40540a
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], 0x4042be
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 [0x69ce98], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x4985eb
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 [0x6826e4]
test eax, eax
jne 0x4983aa
mov dword [0x682538], 1
jmp 0x4983aa
mov dword [esp], 0x64
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp - 0x178], 2
call eax
sub esp, 4
jmp 0x4983ab
nop
mov eax, dword [0x682538]
test eax, eax
sete al
test al, al
jne 0x49838d
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.0040f0d0
mov dword [esp], 0x12
call fcn.0049e640
mov dword [esp + 4], 0x190
mov dword [esp], 0x280
call fcn.0049e610
mov dword [esp], 0x190
call fcn.004a3130
test eax, eax
sete al
test al, al
je 0x49841f
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov eax, dword [0x682540]
test eax, eax
jne 0x498440
mov dword [esp], str.Untitled
mov dword [ebp - 0x178], 2
call fcn.0040f0f2
jmp 0x498457
mov eax, dword [0x682540]
mov dword [esp], eax
mov dword [ebp - 0x178], 2
call fcn.0040f0f2
mov dword [0x682534], 1
mov dword [ebp - 0x178], 2
call fcn.00434a89
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x49848f
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call fcn.00434a39
sub esp, 4
mov dword [esp], eax
call fcn.0043f747
mov dword [esp], str.GL_EXT_framebuffer_object
call fcn.00434aa9
sub esp, 4
test al, al
setne al
test al, al
je 0x4984b1
mov dword [0x682508], 1
mov dword [esp], 0x493ac7
mov dword [ebp - 0x178], 2
call fcn.004a2170
mov dword [esp + 8], 0
mov dword [esp + 4], 0x490d4b
mov dword [esp], 8
call fcn.004a22c0
mov dword [esp], 0x490ae3
call fcn.004a2210
mov dword [esp], 0x490b05
call fcn.004a2390
mov dword [esp], 0x490d15
call fcn.004a2250
mov dword [esp], 0x490d30
call fcn.004a23d0
mov dword [esp], 0x49574b
call fcn.004a24d0
mov dword [esp], fcn.00495797
call fcn.004a2550
mov dword [esp], 0x495d2f
call fcn.004a2590
mov dword [esp], 0x490ff2
call fcn.004a21d0
mov dword [esp], 0x495d49
call fcn.004a2510
call fcn.004a3f40
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x178], 1
mov ecx, eax
call fcn.00505610
mov eax, 0
mov dword [ebp - 0x180], eax
jmp 0x4985cb
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.004b1240
mov eax, dword [ebp - 0x180]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret