Function at 0x48f899
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], 0x517400
mov dword [ebp - 0x160], 0x517fea
lea eax, [ebp - 0x15c]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x490f45
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.004a9b30
call fcn.004a9580
mov dword [0x67b5c0], 0
mov dword [0x67b5c4], 0
mov dword [0x67b5c8], 0xffffffff
mov dword [0x67b5cc], 0xffffffff
mov dword [0x67b5d0], 0
mov dword [0x67b5d4], 0xffffffff
mov dword [0x67b5d8], 0xffffffff
mov dword [0x67b5dc], 0xffffffff
mov dword [0xa127b8], 0
jmp 0x48f9dc
mov eax, dword [0xa127b8]
shl eax, 5
add eax, 0x67b540
mov dword [eax], 1
mov eax, dword [0xa127b8]
shl eax, 5
add eax, 0x67b540
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [0xa127b8]
shl eax, 5
add eax, 0x67b550
mov dword [eax], 0
mov eax, dword [0xa127b8]
shl eax, 5
add eax, 0x67b550
mov dword [eax + 4], 0
mov eax, dword [0xa127b8]
shl eax, 5
add eax, 0x67b550
mov dword [eax + 8], 0
mov eax, dword [0xa127b8]
shl eax, 5
add eax, 0x67b550
mov dword [eax + 0xc], 0
mov eax, dword [0xa127b8]
add eax, 1
mov dword [0xa127b8], eax
mov eax, dword [0xa127b8]
cmp eax, 2
setle al
test al, al
jne 0x48f952
mov dword [ebp - 0x178], 1
call fcn.00401713
mov eax, dword [0x67b530]
test eax, eax
je 0x48fa11
mov dword [0x51a06c], 0
mov eax, dword [0x67b52c]
test eax, eax
je 0x48fa24
mov eax, dword [0x67b52c]
mov dword [0x67b50c], eax
mov dword [esp], 0x1c
call fcn.0043648f
mov dword [0x695d34], eax
mov dword [esp], 8
call fcn.0043648f
mov dword [0x67b5b0], eax
mov dword [esp], 0x14
call fcn.0043648f
mov dword [0x67b5b4], eax
mov dword [esp], 0x14
call fcn.0043648f
mov dword [0xa11b54], eax
mov dword [esp], 0x48
mov dword [ebp - 0x178], 1
call fcn.00436521
mov dword [0x67b5e4], eax
mov dword [esp], 0x70
call fcn.0043648f
mov dword [0x67b5f8], eax
mov eax, dword [0x695d34]
mov dword [esp], eax
call fcn.0043655a
mov dword [0x695d38], eax
mov eax, dword [0x695d38]
mov dword [0x695d3c], eax
mov edx, dword [0x695d3c]
mov eax, dword [0x695d34]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00436a08
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 [0x676b4c]
test eax, eax
jne 0x48fb0b
call fcn.00464bcb
mov eax, dword [0x676b9c]
test eax, eax
je 0x48fb1e
mov dword [0x67b6a4], 1
mov eax, dword [0x676b98]
test eax, eax
je 0x48fb6c
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 0x48fb6c
mov dword [0x67b6a0], 1
mov eax, dword [0x676bc0]
add eax, 0x28
mov dword [eax + 0x14], 0x3b00
mov eax, dword [0x676bc0]
add eax, 0x50
mov dword [eax + 0x14], 0x3c00
mov eax, dword [0x676bc0]
add eax, 0x78
mov dword [eax + 0x14], 0x3d00
mov eax, dword [0x676bc0]
add eax, 0xa0
mov dword [eax + 0x14], 0x3e00
mov eax, dword [0x676bc0]
add eax, 0xc8
mov dword [eax + 0x14], 0x3f00
mov eax, dword [0x676bc0]
add eax, 0xf0
mov dword [eax + 0x14], 0x4000
mov eax, dword [0x676bc0]
add eax, 0x118
mov dword [eax + 0x14], 0x4100
mov eax, dword [0x676bc0]
add eax, 0x140
mov dword [eax + 0x14], 0x4200
mov eax, dword [0x676bc0]
add eax, 0x168
mov dword [eax + 0x14], 0x4300
mov eax, dword [0x676bc0]
add eax, 0x190
mov dword [eax + 0x14], 0x4400
mov eax, dword [0x676bc0]
add eax, 0x1b8
mov dword [eax + 0x14], 0x4800
mov eax, dword [0x676bc0]
add eax, 0x1b8
mov dword [eax + 0x18], 0x187a8
mov eax, dword [0x676bc0]
add eax, 0x1e0
mov dword [eax + 0x14], 0x4b00
mov eax, dword [0x676bc0]
add eax, 0x1e0
mov dword [eax + 0x18], 0x187a4
mov eax, dword [0x676bc0]
add eax, 0x208
mov dword [eax + 0x14], 0x4d00
mov eax, dword [0x676bc0]
add eax, 0x208
mov dword [eax + 0x18], 0x187a6
mov eax, dword [0x676bc0]
add eax, 0x230
mov dword [eax + 0x14], 0x5000
mov eax, dword [0x676bc0]
add eax, 0x230
mov dword [eax + 0x18], 0x187a2
mov eax, dword [0x676bc0]
add eax, 0x4b0
mov dword [eax + 0x14], 0x8500
mov eax, dword [0x676bc0]
add eax, 0x4d8
mov dword [eax + 0x14], 0x8600
mov eax, dword [0x676bd0]
mov byte [eax], 1
mov eax, dword [0x676bd0]
mov dword [eax + 4], 0
mov eax, dword [0x676bd0]
mov byte [eax + 0x11], 0
mov eax, dword [0x676bd0]
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 0x48fcea
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 [0xa119b4], eax
mov eax, dword [0x67b6b4]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x67b6b4]
add eax, 0x38
mov dword [eax], 8
mov eax, dword [0x67b6b4]
add eax, 0x40
mov dword [eax], 8
mov eax, dword [0x67b6b0]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x67b6b0]
add eax, 0x38
mov dword [eax], 0xe
mov eax, dword [0x67b6b0]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x67b6b8]
add eax, 0x20
mov dword [eax], 0x10
mov eax, dword [0x67b6b8]
add eax, 0x38
mov dword [eax], 0x10
mov eax, dword [0x67b6b8]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x67b6b4]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x67b6b4]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x67b6b4]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x67b6b0]
add eax, 0x24
mov dword [eax], 8
mov eax, dword [0x67b6b0]
add eax, 0x3c
mov dword [eax], 0xe
mov eax, dword [0x67b6b0]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x67b6b8]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x67b6b8]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x67b6b8]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x68c064]
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.00438a90
mov dword [0xa127bc], eax
mov edx, dword [0x68c064]
mov eax, dword [0xa127bc]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x10], 0
call fcn.00438a90
mov dword [0xa127bc], eax
mov edx, dword [0x68c064]
mov eax, dword [0xa127bc]
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], 0x695d40
call sub.msvcrt.dll_memset
mov dword [0x695da0], 0x695d40
mov dword [0x695da4], 0x695d48
mov dword [0x695da8], 0x695d4c
mov dword [0x695dac], 0x695d44
mov dword [0x695db0], 0x695d41
mov dword [0x695db4], 0x695d49
mov dword [0x695db8], 0x695d4d
mov dword [0x695dbc], 0x695d45
mov dword [0x695dc0], 0x695d40
mov dword [0x695dc4], 0x695d48
mov dword [0x695dc8], 0x695d4c
mov dword [0x695dcc], 0x695d44
mov dword [0x695dd0], 0x695d5c
mov dword [0x695dd4], 0x695d58
mov dword [0x695dd8], 0x695d50
mov dword [0x695ddc], 0x695d54
mov dword [0x695de0], 0x695d40
mov dword [0x695de4], 0x695d48
mov dword [0x695de8], 0x695d4c
mov dword [0x695dec], 0x695d44
mov dword [0x695df0], 0x695d5c
mov dword [0x695df4], 0x695d58
mov dword [0x695df8], 0x695d50
mov dword [0x695dfc], 0x695d54
mov dword [0x695e00], 0x695d66
mov dword [0x695e04], 0x695d60
mov dword [0x695e08], 0x695d62
mov dword [0x695e0c], 0x695d64
mov dword [0x695e10], 0x695d68
mov dword [0x695e14], 0x695d6a
mov dword [0xa127b8], 0
jmp 0x48ffe6
mov eax, dword [0xa127b8]
mov byte [eax + 0xa10ee0], 0x20
mov eax, dword [0xa127b8]
add eax, 1
mov dword [0xa127b8], eax
mov eax, dword [0xa127b8]
cmp eax, 0x1f
setle al
test al, al
jne 0x48ffcd
mov byte [0xa11060], 0x81
mov dword [0x695e80], 0x100000
mov eax, dword [0x695e80]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x676294], eax
mov eax, dword [0x676294]
mov dword [0x676298], eax
mov edx, dword [0x676294]
mov eax, dword [0x695e80]
add eax, edx
mov dword [0x67629c], eax
mov dword [esp + 8], 0x10fff3
mov dword [esp + 4], 0
mov dword [esp], 0x5662a0
call sub.msvcrt.dll_memset
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0
mov dword [esp], 0x9f40c0
call sub.msvcrt.dll_memset
mov eax, 0x5662a0
add eax, 0x500
mov dword [0x566264], eax
mov eax, dword [0x51a00c]
sub eax, 8
mov dword [0x51a00c], eax
mov eax, dword [0x566264]
mov edx, eax
mov eax, dword [0x51a00c]
add eax, edx
mov dword [0x566274], eax
mov eax, dword [0x566274]
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.0044308c
mov dword [0x566290], eax
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.0044308c
mov dword [0xa040c0], eax
mov eax, dword [0xa040c0]
mov eax, dword [eax]
mov byte [eax], 0x20
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00443436
mov dword [0xa11b94], eax
call fcn.0048e903
mov edx, eax
mov eax, dword [0xa11b94]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0044359d
mov eax, 0xa12528
movzx eax, byte [eax]
test al, al
jne 0x490162
mov dword [esp], 0xa12528
call fcn.00516fc0
test eax, eax
setne al
test al, al
je 0x490162
mov dword [esp], 0x10000
call sub.msvcrt.dll_malloc
mov dword [0xa127c0], eax
mov dword [esp], 0xa12528
call fcn.00517160
mov eax, dword [0xa127c0]
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 [0xa127c0]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [0xa127b8], eax
mov eax, dword [0xa127b8]
sub eax, 1
mov dword [0xa127c4], eax
jmp 0x490223
mov edx, dword [0xa127c0]
mov eax, dword [0xa127c4]
add eax, edx
movzx eax, byte [eax]
movsx eax, al
mov dword [0xa127bc], eax
mov eax, dword [0xa127bc]
cmp eax, 0x5c
je 0x4901e5
mov eax, dword [0xa127bc]
cmp eax, 0x2f
je 0x4901e5
mov eax, dword [0xa127bc]
cmp eax, 0x3a
jne 0x490216
mov eax, dword [0xa127bc]
cmp eax, 0x3a
jne 0x490204
mov eax, dword [0xa127c0]
mov edx, dword [0xa127c4]
add edx, 1
add eax, edx
mov byte [eax], 0
jmp 0x490235
mov edx, dword [0xa127c0]
mov eax, dword [0xa127c4]
add eax, edx
mov byte [eax], 0
jmp 0x490235
mov eax, dword [0xa127c4]
sub eax, 1
mov dword [0xa127c4], eax
mov eax, dword [0xa127c4]
not eax
shr eax, 0x1f
test al, al
jne 0x4901af
mov eax, dword [0xa127c0]
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.00443436
mov dword [0xa11b98], eax
call fcn.0048e903
mov edx, eax
mov eax, dword [0xa11b98]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0044359d
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00443436
mov dword [0x68b71c], eax
mov dword [esp + 4], 0x14
mov dword [esp], str.Unknown_Opcode_____
call fcn.004432b3
mov edx, eax
mov eax, dword [0x68b71c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0044359d
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
mov dword [0xa127b8], eax
mov eax, dword [0xa127b8]
cmp eax, 1
jle 0x49046f
mov dword [0xa127c4], 0
mov dword [0xa127b8], 1
jmp 0x490340
mov eax, dword [0xa127b8]
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 [0xa127c4]
add eax, edx
mov dword [0xa127c4], eax
mov eax, dword [0xa127b8]
cmp eax, 1
je 0x490333
mov eax, dword [0xa127c4]
add eax, 1
mov dword [0xa127c4], eax
mov eax, dword [0xa127b8]
add eax, 1
mov dword [0xa127b8], eax
mov edx, dword [0xa127b8]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x4902ee
mov eax, dword [0xa127c4]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x178], 1
call fcn.00443436
mov dword [0xa11164], eax
mov dword [0xa127c8], 0
mov dword [0xa127b8], 1
jmp 0x490452
mov eax, dword [0xa127b8]
cmp eax, 1
je 0x4903bc
mov eax, dword [0xa11164]
mov edx, dword [eax]
mov eax, dword [0xa127c8]
add eax, edx
mov byte [eax], 0x20
mov eax, dword [0xa127c8]
add eax, 1
mov dword [0xa127c8], eax
mov eax, dword [0xa127b8]
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 [0xa127b8]
lea ecx, [edx*4]
mov ebx, dword [ebp - 0x188]
mov edx, dword [ebx + 4]
add edx, ecx
mov edx, dword [edx]
mov ecx, dword [0xa11164]
mov ebx, dword [ecx]
mov ecx, dword [0xa127c8]
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 [0xa127b8]
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 [0xa127c8]
add eax, edx
mov dword [0xa127c8], eax
mov eax, dword [0xa127b8]
add eax, 1
mov dword [0xa127b8], eax
mov edx, dword [0xa127b8]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x490394
jmp 0x490492
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x178], 1
call fcn.00443436
mov dword [0xa11164], eax
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
mov dword [0xa1116c], eax
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx + 4]
mov dword [0xa11168], eax
lea eax, [ebp - 0x40]
mov dword [esp], eax
call fcn.004ab630
mov eax, dword [ebp - 0x40]
cmp eax, 0xffffffff
je 0x4904dc
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004ab630
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp edx, eax
sete al
test al, al
jne 0x4904c0
jmp 0x4904e3
mov dword [ebp - 0x3c], 0
call fcn.0043766b
mov dword [0x695e64], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004ab640
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x490541
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 [0x695e60], eax
mov eax, dword [0x695e60]
imul eax, eax, 0x3e8
mov dword [0x695e60], eax
jmp 0x49054b
mov dword [0x695e60], 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 0x49057f
mov dword [esp], 0x30d4b
call fcn.00437c07
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 0x4905b8
mov dword [0x68b6c8], 0x12e
mov dword [esp], 0x187ce
call fcn.00437f16
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 0x4905f1
mov dword [0x68b6c8], 0x130
mov dword [esp], 0x187d0
call fcn.00437f16
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 0x49062a
mov dword [0x68b6c8], 0x12f
mov dword [esp], 0x187cf
call fcn.00437f16
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 0x490663
mov dword [0x68b6c8], 0x132
mov dword [esp], 0x187d2
call fcn.00437f16
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 0x49069c
mov dword [0x68b6c8], 0x131
mov dword [esp], 0x187d1
call fcn.00437f16
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 0x4906d5
mov dword [0x68b6c8], 0x134
mov dword [esp], 0x187d4
call fcn.00437f16
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 0x49070e
mov dword [0x68b6c8], 0x133
mov dword [esp], 0x187d3
call fcn.00437f16
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 0x49074c
mov dword [0x68b6c8], 0x12d
mov dword [esp], 0x187cd
call fcn.00437f16
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 0x49078a
mov dword [0x68b6c8], 0x12c
mov dword [esp], 0x187cc
call fcn.00437f16
mov dword [ebp - 0x178], 1
call fcn.00493873
mov eax, dword [0x68b6c0]
mov dword [0x68b6c4], eax
mov byte [0x5666ba], 0x1e
mov byte [0x5666bb], 0
mov byte [0x5666bc], 0x1e
mov byte [0x5666bd], 0
lea eax, [ebp - 0x13c]
mov ecx, eax
call fcn.004fd8d0
mov eax, dword [0x51a520]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x549000
mov dword [esp], 0x68bb60
call sub.msvcrt.dll_memcpy
mov dword [0xa127b8], 0
jmp 0x490821
mov eax, dword [0xa127b8]
mov edx, dword [0xa127b8]
mov edx, dword [edx*4 + 0x68bb60]
or edx, 0xff000000
mov dword [eax*4 + 0x68bb60], edx
mov eax, dword [0xa127b8]
add eax, 1
mov dword [0xa127b8], eax
mov eax, dword [0xa127b8]
cmp eax, 0xff
setle al
test al, al
jne 0x4907f5
mov eax, dword [0x51a524]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x549400
mov dword [esp], 0x68bf60
call sub.msvcrt.dll_memcpy
mov dword [0xa127b8], 0
jmp 0x490887
mov eax, dword [0xa127b8]
mov edx, dword [0xa127b8]
mov edx, dword [edx*4 + 0x68bf60]
or edx, 0xff000000
mov dword [eax*4 + 0x68bf60], edx
mov eax, dword [0xa127b8]
add eax, 1
mov dword [0xa127b8], eax
mov eax, dword [0xa127b8]
cmp eax, 0x3f
setle al
test al, al
jne 0x49085b
mov dword [0xa04600], 0
mov dword [0xa04604], 0
mov dword [0xa04608], 0
mov dword [0xa0460c], 0x808080
mov dword [0xa04610], 0x808080
mov dword [0xa04614], 0x808080
mov dword [0xa04618], 0xffffff
mov dword [0xa0461c], 0xffffff
mov dword [0xa04620], 0xffffff
mov dword [0xa04624], 0
mov dword [0xa04628], 0x808080
mov dword [0xa0462c], 0xffffff
mov dword [0xa04630], 0
mov dword [0xa04634], 0x808080
mov dword [0xa04638], 0xffffff
mov dword [0xa0463c], 0
mov dword [0xa04640], 0x808080
mov dword [0xa04644], 0xffffff
mov eax, dword [0x51a518]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x53d000
mov dword [esp], 0xa04660
call sub.msvcrt.dll_memcpy
mov eax, dword [0x51a51c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x541000
mov dword [esp], 0xa08660
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.00447d1f
mov dword [0x51a52c], 1
mov eax, dword [0x676b98]
test eax, eax
je 0x490a21
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x19
mov dword [esp], 0x50
call fcn.0046a385
mov dword [0x51a2e0], eax
mov eax, dword [0x51a2e0]
neg eax
mov dword [0xa127b8], eax
mov edx, dword [0x68c064]
mov eax, dword [0xa127b8]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x12], 1
mov edx, dword [0x51a07c]
mov eax, dword [0x51a078]
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.0046a385
mov dword [0xa123cc], eax
mov edx, dword [0x51a078]
mov eax, dword [0x51a07c]
imul eax, edx
shl eax, 2
mov edx, eax
mov ecx, dword [0x68c064]
mov eax, dword [0xa123cc]
imul eax, eax, 0xffffff50
add eax, ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x536840
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [0x51a084]
mov eax, dword [0x51a080]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x20
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0046a385
mov dword [0xa123d0], eax
mov edx, dword [0x51a080]
mov eax, dword [0x51a084]
imul eax, edx
shl eax, 2
mov edx, eax
mov ecx, dword [0x68c064]
mov eax, dword [0xa123d0]
imul eax, eax, 0xffffff50
add eax, ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x536c40
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov dword [0xa127b8], 0
mov eax, dword [0xa127b8]
add eax, 1
mov dword [0xa127b8], eax
mov edx, dword [0x676bb0]
mov eax, dword [0xa127b8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 4], 2
mov edx, dword [0x676bb0]
mov eax, dword [0xa127b8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 8], str._KEYBOARD__BUTTON_
mov edx, dword [0x676bb0]
mov eax, dword [0xa127b8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x10], 0x200
mov edx, dword [0x676bb0]
mov eax, dword [0xa127b8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x138], str.Keyboard
mov edx, dword [0x676bb0]
mov eax, dword [0xa127b8]
imul eax, eax, 0x160
add eax, edx
mov dword [esp], eax
call fcn.004030c7
mov eax, dword [0xa127b8]
add eax, 1
mov dword [0xa127b8], eax
mov edx, dword [0x676bb0]
mov eax, dword [0xa127b8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 4], 3
mov edx, dword [0x676bb0]
mov eax, dword [0xa127b8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 8], str._MOUSE__BUTTON__AXIS__WHEEL_
mov edx, dword [0x676bb0]
mov eax, dword [0xa127b8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x10], 3
mov edx, dword [0x676bb0]
mov eax, dword [0xa127b8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x14], 2
mov edx, dword [0x676bb0]
mov eax, dword [0xa127b8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x18], 3
mov edx, dword [0x676bb0]
mov eax, dword [0xa127b8]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x138], str.Mouse
mov edx, dword [0x676bb0]
mov eax, dword [0xa127b8]
imul eax, eax, 0x160
add eax, edx
mov dword [esp], eax
call fcn.004030c7
mov eax, dword [0xa127b8]
mov dword [0x676bac], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x40543e
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], 0x4042f2
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 [0x695e58], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x490f93
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 [0x67b6a4]
test eax, eax
jne 0x490d52
mov dword [0x67b4f8], 1
jmp 0x490d52
mov dword [esp], 0x64
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp - 0x178], 2
call eax
sub esp, 4
jmp 0x490d53
nop
mov eax, dword [0x67b4f8]
test eax, eax
sete al
test al, al
jne 0x490d35
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.00407a78
mov dword [esp], 0x12
call fcn.00496ff0
mov dword [esp + 4], 0x190
mov dword [esp], 0x280
call fcn.00496fc0
mov dword [esp], 0x190
call fcn.0049bae0
test eax, eax
sete al
test al, al
je 0x490dc7
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov eax, dword [0x67b500]
test eax, eax
jne 0x490de8
mov dword [esp], str.Untitled
mov dword [ebp - 0x178], 2
call fcn.00407a9a
jmp 0x490dff
mov eax, dword [0x67b500]
mov dword [esp], eax
mov dword [ebp - 0x178], 2
call fcn.00407a9a
mov dword [0x67b4f4], 1
mov dword [ebp - 0x178], 2
call fcn.0042d431
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x490e37
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call fcn.0042d3e1
sub esp, 4
mov dword [esp], eax
call fcn.004380ef
mov dword [esp], str.GL_EXT_framebuffer_object
call fcn.0042d451
sub esp, 4
test al, al
setne al
test al, al
je 0x490e59
mov dword [0x67b4c8], 1
mov dword [esp], 0x48c46f
mov dword [ebp - 0x178], 2
call fcn.0049ab20
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4896f3
mov dword [esp], 8
call fcn.0049ac70
mov dword [esp], 0x48948b
call fcn.0049abc0
mov dword [esp], 0x4894ad
call fcn.0049ad40
mov dword [esp], 0x4896bd
call fcn.0049ac00
mov dword [esp], 0x4896d8
call fcn.0049ad80
mov dword [esp], 0x48e0f3
call fcn.0049ae80
mov dword [esp], fcn.0048e13f
call fcn.0049af00
mov dword [esp], 0x48e6d7
call fcn.0049af40
mov dword [esp], 0x48999a
call fcn.0049ab80
mov dword [esp], 0x48e6f1
call fcn.0049aec0
call fcn.0049c8f0
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x178], 1
mov ecx, eax
call fcn.004fdfd0
mov eax, 0
mov dword [ebp - 0x180], eax
jmp 0x490f73
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.004a9bf0
mov eax, dword [ebp - 0x180]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret