Function at 0x496dc9
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], 0x51e930
mov dword [ebp - 0x160], 0x51f51a
lea eax, [ebp - 0x15c]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x498475
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.004b1060
call fcn.004b0ab0
mov dword [0x682620], 0
mov dword [0x682624], 0
mov dword [0x682628], 0xffffffff
mov dword [0x68262c], 0xffffffff
mov dword [0x682630], 0
mov dword [0x682634], 0xffffffff
mov dword [0x682638], 0xffffffff
mov dword [0x68263c], 0xffffffff
mov dword [0xa19818], 0
jmp 0x496f0c
mov eax, dword [0xa19818]
shl eax, 5
add eax, 0x6825a0
mov dword [eax], 1
mov eax, dword [0xa19818]
shl eax, 5
add eax, 0x6825a0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [0xa19818]
shl eax, 5
add eax, 0x6825b0
mov dword [eax], 0
mov eax, dword [0xa19818]
shl eax, 5
add eax, 0x6825b0
mov dword [eax + 4], 0
mov eax, dword [0xa19818]
shl eax, 5
add eax, 0x6825b0
mov dword [eax + 8], 0
mov eax, dword [0xa19818]
shl eax, 5
add eax, 0x6825b0
mov dword [eax + 0xc], 0
mov eax, dword [0xa19818]
add eax, 1
mov dword [0xa19818], eax
mov eax, dword [0xa19818]
cmp eax, 2
setle al
test al, al
jne 0x496e82
mov dword [ebp - 0x178], 1
call fcn.00401713
mov eax, dword [0x682590]
test eax, eax
je 0x496f41
mov dword [0x52106c], 0
mov eax, dword [0x68258c]
test eax, eax
je 0x496f54
mov eax, dword [0x68258c]
mov dword [0x68256c], eax
mov dword [esp], 0x1c
call fcn.0043d9bf
mov dword [0x69cd94], eax
mov dword [esp], 8
call fcn.0043d9bf
mov dword [0x682610], eax
mov dword [esp], 0x14
call fcn.0043d9bf
mov dword [0x682614], eax
mov dword [esp], 0x14
call fcn.0043d9bf
mov dword [0xa18bb4], eax
mov dword [esp], 0x48
mov dword [ebp - 0x178], 1
call fcn.0043da51
mov dword [0x682644], eax
mov dword [esp], 0x70
call fcn.0043d9bf
mov dword [0x682658], eax
mov eax, dword [0x69cd94]
mov dword [esp], eax
call fcn.0043da8a
mov dword [0x69cd98], eax
mov eax, dword [0x69cd98]
mov dword [0x69cd9c], eax
mov edx, dword [0x69cd9c]
mov eax, dword [0x69cd94]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0043df38
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 0x49703b
call fcn.0046c0fb
mov eax, dword [0x67dbdc]
test eax, eax
je 0x49704e
mov dword [0x682704], 1
mov eax, dword [0x67dbd8]
test eax, eax
je 0x49709c
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 0x49709c
mov dword [0x682700], 1
mov eax, dword [0x67dc00]
add eax, 0x28
mov dword [eax + 0x14], 0x3b00
mov eax, dword [0x67dc00]
add eax, 0x50
mov dword [eax + 0x14], 0x3c00
mov eax, dword [0x67dc00]
add eax, 0x78
mov dword [eax + 0x14], 0x3d00
mov eax, dword [0x67dc00]
add eax, 0xa0
mov dword [eax + 0x14], 0x3e00
mov eax, dword [0x67dc00]
add eax, 0xc8
mov dword [eax + 0x14], 0x3f00
mov eax, dword [0x67dc00]
add eax, 0xf0
mov dword [eax + 0x14], 0x4000
mov eax, dword [0x67dc00]
add eax, 0x118
mov dword [eax + 0x14], 0x4100
mov eax, dword [0x67dc00]
add eax, 0x140
mov dword [eax + 0x14], 0x4200
mov eax, dword [0x67dc00]
add eax, 0x168
mov dword [eax + 0x14], 0x4300
mov eax, dword [0x67dc00]
add eax, 0x190
mov dword [eax + 0x14], 0x4400
mov eax, dword [0x67dc00]
add eax, 0x1b8
mov dword [eax + 0x14], 0x4800
mov eax, dword [0x67dc00]
add eax, 0x1b8
mov dword [eax + 0x18], 0x187a8
mov eax, dword [0x67dc00]
add eax, 0x1e0
mov dword [eax + 0x14], 0x4b00
mov eax, dword [0x67dc00]
add eax, 0x1e0
mov dword [eax + 0x18], 0x187a4
mov eax, dword [0x67dc00]
add eax, 0x208
mov dword [eax + 0x14], 0x4d00
mov eax, dword [0x67dc00]
add eax, 0x208
mov dword [eax + 0x18], 0x187a6
mov eax, dword [0x67dc00]
add eax, 0x230
mov dword [eax + 0x14], 0x5000
mov eax, dword [0x67dc00]
add eax, 0x230
mov dword [eax + 0x18], 0x187a2
mov eax, dword [0x67dc00]
add eax, 0x4b0
mov dword [eax + 0x14], 0x8500
mov eax, dword [0x67dc00]
add eax, 0x4d8
mov dword [eax + 0x14], 0x8600
mov eax, dword [0x67dc10]
mov byte [eax], 1
mov eax, dword [0x67dc10]
mov dword [eax + 4], 0
mov eax, dword [0x67dc10]
mov byte [eax + 0x11], 0
mov eax, dword [0x67dc10]
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 0x49721a
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 [0xa18a14], eax
mov eax, dword [0x682714]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x682714]
add eax, 0x38
mov dword [eax], 8
mov eax, dword [0x682714]
add eax, 0x40
mov dword [eax], 8
mov eax, dword [0x682710]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x682710]
add eax, 0x38
mov dword [eax], 0xe
mov eax, dword [0x682710]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x682718]
add eax, 0x20
mov dword [eax], 0x10
mov eax, dword [0x682718]
add eax, 0x38
mov dword [eax], 0x10
mov eax, dword [0x682718]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x682714]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x682714]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x682714]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x682710]
add eax, 0x24
mov dword [eax], 8
mov eax, dword [0x682710]
add eax, 0x3c
mov dword [eax], 0xe
mov eax, dword [0x682710]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x682718]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x682718]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x682718]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x6930c4]
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.0043ffc0
mov dword [0xa1981c], eax
mov edx, dword [0x6930c4]
mov eax, dword [0xa1981c]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x10], 0
call fcn.0043ffc0
mov dword [0xa1981c], eax
mov edx, dword [0x6930c4]
mov eax, dword [0xa1981c]
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], 0x69cda0
call sub.msvcrt.dll_memset
mov dword [0x69ce00], 0x69cda0
mov dword [0x69ce04], 0x69cda8
mov dword [0x69ce08], 0x69cdac
mov dword [0x69ce0c], 0x69cda4
mov dword [0x69ce10], 0x69cda1
mov dword [0x69ce14], 0x69cda9
mov dword [0x69ce18], 0x69cdad
mov dword [0x69ce1c], 0x69cda5
mov dword [0x69ce20], 0x69cda0
mov dword [0x69ce24], 0x69cda8
mov dword [0x69ce28], 0x69cdac
mov dword [0x69ce2c], 0x69cda4
mov dword [0x69ce30], 0x69cdbc
mov dword [0x69ce34], 0x69cdb8
mov dword [0x69ce38], 0x69cdb0
mov dword [0x69ce3c], 0x69cdb4
mov dword [0x69ce40], 0x69cda0
mov dword [0x69ce44], 0x69cda8
mov dword [0x69ce48], 0x69cdac
mov dword [0x69ce4c], 0x69cda4
mov dword [0x69ce50], 0x69cdbc
mov dword [0x69ce54], 0x69cdb8
mov dword [0x69ce58], 0x69cdb0
mov dword [0x69ce5c], 0x69cdb4
mov dword [0x69ce60], 0x69cdc6
mov dword [0x69ce64], 0x69cdc0
mov dword [0x69ce68], 0x69cdc2
mov dword [0x69ce6c], 0x69cdc4
mov dword [0x69ce70], 0x69cdc8
mov dword [0x69ce74], 0x69cdca
mov dword [0xa19818], 0
jmp 0x497516
mov eax, dword [0xa19818]
mov byte [eax + 0xa17f40], 0x20
mov eax, dword [0xa19818]
add eax, 1
mov dword [0xa19818], eax
mov eax, dword [0xa19818]
cmp eax, 0x1f
setle al
test al, al
jne 0x4974fd
mov byte [0xa180c0], 0x81
mov dword [0x69cee0], 0x100000
mov eax, dword [0x69cee0]
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 [0x69cee0]
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], 0x9fb120
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.0044a5bc
mov dword [0x56d290], eax
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.0044a5bc
mov dword [0xa0b120], eax
mov eax, dword [0xa0b120]
mov eax, dword [eax]
mov byte [eax], 0x20
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0044a966
mov dword [0xa18bf4], eax
call fcn.00495e33
mov edx, eax
mov eax, dword [0xa18bf4]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0044aacd
mov eax, 0xa19588
movzx eax, byte [eax]
test al, al
jne 0x497692
mov dword [esp], 0xa19588
call fcn.0051e4f0
test eax, eax
setne al
test al, al
je 0x497692
mov dword [esp], 0x10000
call sub.msvcrt.dll_malloc
mov dword [0xa19820], eax
mov dword [esp], 0xa19588
call fcn.0051e690
mov eax, dword [0xa19820]
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 [0xa19820]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [0xa19818], eax
mov eax, dword [0xa19818]
sub eax, 1
mov dword [0xa19824], eax
jmp 0x497753
mov edx, dword [0xa19820]
mov eax, dword [0xa19824]
add eax, edx
movzx eax, byte [eax]
movsx eax, al
mov dword [0xa1981c], eax
mov eax, dword [0xa1981c]
cmp eax, 0x5c
je 0x497715
mov eax, dword [0xa1981c]
cmp eax, 0x2f
je 0x497715
mov eax, dword [0xa1981c]
cmp eax, 0x3a
jne 0x497746
mov eax, dword [0xa1981c]
cmp eax, 0x3a
jne 0x497734
mov eax, dword [0xa19820]
mov edx, dword [0xa19824]
add edx, 1
add eax, edx
mov byte [eax], 0
jmp 0x497765
mov edx, dword [0xa19820]
mov eax, dword [0xa19824]
add eax, edx
mov byte [eax], 0
jmp 0x497765
mov eax, dword [0xa19824]
sub eax, 1
mov dword [0xa19824], eax
mov eax, dword [0xa19824]
not eax
shr eax, 0x1f
test al, al
jne 0x4976df
mov eax, dword [0xa19820]
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.0044a966
mov dword [0xa18bf8], eax
call fcn.00495e33
mov edx, eax
mov eax, dword [0xa18bf8]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0044aacd
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0044a966
mov dword [0x69277c], eax
mov dword [esp + 4], 0x14
mov dword [esp], str.Unknown_Opcode_____
call fcn.0044a7e3
mov edx, eax
mov eax, dword [0x69277c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0044aacd
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
mov dword [0xa19818], eax
mov eax, dword [0xa19818]
cmp eax, 1
jle 0x49799f
mov dword [0xa19824], 0
mov dword [0xa19818], 1
jmp 0x497870
mov eax, dword [0xa19818]
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 [0xa19824]
add eax, edx
mov dword [0xa19824], eax
mov eax, dword [0xa19818]
cmp eax, 1
je 0x497863
mov eax, dword [0xa19824]
add eax, 1
mov dword [0xa19824], eax
mov eax, dword [0xa19818]
add eax, 1
mov dword [0xa19818], eax
mov edx, dword [0xa19818]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x49781e
mov eax, dword [0xa19824]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x178], 1
call fcn.0044a966
mov dword [0xa181c4], eax
mov dword [0xa19828], 0
mov dword [0xa19818], 1
jmp 0x497982
mov eax, dword [0xa19818]
cmp eax, 1
je 0x4978ec
mov eax, dword [0xa181c4]
mov edx, dword [eax]
mov eax, dword [0xa19828]
add eax, edx
mov byte [eax], 0x20
mov eax, dword [0xa19828]
add eax, 1
mov dword [0xa19828], eax
mov eax, dword [0xa19818]
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 [0xa19818]
lea ecx, [edx*4]
mov ebx, dword [ebp - 0x188]
mov edx, dword [ebx + 4]
add edx, ecx
mov edx, dword [edx]
mov ecx, dword [0xa181c4]
mov ebx, dword [ecx]
mov ecx, dword [0xa19828]
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 [0xa19818]
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 [0xa19828]
add eax, edx
mov dword [0xa19828], eax
mov eax, dword [0xa19818]
add eax, 1
mov dword [0xa19818], eax
mov edx, dword [0xa19818]
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x4978c4
jmp 0x4979c2
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x178], 1
call fcn.0044a966
mov dword [0xa181c4], eax
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
mov dword [0xa181cc], eax
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx + 4]
mov dword [0xa181c8], eax
lea eax, [ebp - 0x40]
mov dword [esp], eax
call fcn.004b2b60
mov eax, dword [ebp - 0x40]
cmp eax, 0xffffffff
je 0x497a0c
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004b2b60
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp edx, eax
sete al
test al, al
jne 0x4979f0
jmp 0x497a13
mov dword [ebp - 0x3c], 0
call fcn.0043eb9b
mov dword [0x69cec4], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004b2b70
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x497a71
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 [0x69cec0], eax
mov eax, dword [0x69cec0]
imul eax, eax, 0x3e8
mov dword [0x69cec0], eax
jmp 0x497a7b
mov dword [0x69cec0], 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 0x497aaf
mov dword [esp], 0x30d4b
call fcn.0043f137
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 0x497ae8
mov dword [0x692728], 0x12e
mov dword [esp], 0x187ce
call fcn.0043f446
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 0x497b21
mov dword [0x692728], 0x130
mov dword [esp], 0x187d0
call fcn.0043f446
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 0x497b5a
mov dword [0x692728], 0x12f
mov dword [esp], 0x187cf
call fcn.0043f446
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 0x497b93
mov dword [0x692728], 0x132
mov dword [esp], 0x187d2
call fcn.0043f446
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 0x497bcc
mov dword [0x692728], 0x131
mov dword [esp], 0x187d1
call fcn.0043f446
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 0x497c05
mov dword [0x692728], 0x134
mov dword [esp], 0x187d4
call fcn.0043f446
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 0x497c3e
mov dword [0x692728], 0x133
mov dword [esp], 0x187d3
call fcn.0043f446
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 0x497c7c
mov dword [0x692728], 0x12d
mov dword [esp], 0x187cd
call fcn.0043f446
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 0x497cba
mov dword [0x692728], 0x12c
mov dword [esp], 0x187cc
call fcn.0043f446
mov dword [ebp - 0x178], 1
call fcn.0049ada3
mov eax, dword [0x692720]
mov dword [0x692724], 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.00504e00
mov eax, dword [0x521520]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x5500a0
mov dword [esp], 0x692bc0
call sub.msvcrt.dll_memcpy
mov dword [0xa19818], 0
jmp 0x497d51
mov eax, dword [0xa19818]
mov edx, dword [0xa19818]
mov edx, dword [edx*4 + 0x692bc0]
or edx, 0xff000000
mov dword [eax*4 + 0x692bc0], edx
mov eax, dword [0xa19818]
add eax, 1
mov dword [0xa19818], eax
mov eax, dword [0xa19818]
cmp eax, 0xff
setle al
test al, al
jne 0x497d25
mov eax, dword [0x521524]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x5504a0
mov dword [esp], 0x692fc0
call sub.msvcrt.dll_memcpy
mov dword [0xa19818], 0
jmp 0x497db7
mov eax, dword [0xa19818]
mov edx, dword [0xa19818]
mov edx, dword [edx*4 + 0x692fc0]
or edx, 0xff000000
mov dword [eax*4 + 0x692fc0], edx
mov eax, dword [0xa19818]
add eax, 1
mov dword [0xa19818], eax
mov eax, dword [0xa19818]
cmp eax, 0x3f
setle al
test al, al
jne 0x497d8b
mov dword [0xa0b660], 0
mov dword [0xa0b664], 0
mov dword [0xa0b668], 0
mov dword [0xa0b66c], 0x808080
mov dword [0xa0b670], 0x808080
mov dword [0xa0b674], 0x808080
mov dword [0xa0b678], 0xffffff
mov dword [0xa0b67c], 0xffffff
mov dword [0xa0b680], 0xffffff
mov dword [0xa0b684], 0
mov dword [0xa0b688], 0x808080
mov dword [0xa0b68c], 0xffffff
mov dword [0xa0b690], 0
mov dword [0xa0b694], 0x808080
mov dword [0xa0b698], 0xffffff
mov dword [0xa0b69c], 0
mov dword [0xa0b6a0], 0x808080
mov dword [0xa0b6a4], 0xffffff
mov eax, dword [0x521518]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x5440a0
mov dword [esp], 0xa0b6c0
call sub.msvcrt.dll_memcpy
mov eax, dword [0x52151c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x5480a0
mov dword [esp], 0xa0f6c0
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.0044f24f
mov dword [0x52152c], 1
mov eax, dword [0x67dbd8]
test eax, eax
je 0x497f51
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x19
mov dword [esp], 0x50
call fcn.004718b5
mov dword [0x5212e0], eax
mov eax, dword [0x5212e0]
neg eax
mov dword [0xa19818], eax
mov edx, dword [0x6930c4]
mov eax, dword [0xa19818]
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.004718b5
mov dword [0xa1942c], eax
mov edx, dword [0x521078]
mov eax, dword [0x52107c]
imul eax, edx
shl eax, 2
mov edx, eax
mov ecx, dword [0x6930c4]
mov eax, dword [0xa1942c]
imul eax, eax, 0xffffff50
add eax, ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x53d8e0
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.004718b5
mov dword [0xa19430], eax
mov edx, dword [0x521080]
mov eax, dword [0x521084]
imul eax, edx
shl eax, 2
mov edx, eax
mov ecx, dword [0x6930c4]
mov eax, dword [0xa19430]
imul eax, eax, 0xffffff50
add eax, ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x53dce0
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov dword [0xa19818], 0
mov eax, dword [0xa19818]
add eax, 1
mov dword [0xa19818], eax
mov edx, dword [0x67dbf0]
mov eax, dword [0xa19818]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 4], 2
mov edx, dword [0x67dbf0]
mov eax, dword [0xa19818]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 8], str._KEYBOARD__BUTTON_
mov edx, dword [0x67dbf0]
mov eax, dword [0xa19818]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x10], 0x200
mov edx, dword [0x67dbf0]
mov eax, dword [0xa19818]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x138], str.Keyboard
mov edx, dword [0x67dbf0]
mov eax, dword [0xa19818]
imul eax, eax, 0x160
add eax, edx
mov dword [esp], eax
call fcn.00403192
mov eax, dword [0xa19818]
add eax, 1
mov dword [0xa19818], eax
mov edx, dword [0x67dbf0]
mov eax, dword [0xa19818]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 4], 3
mov edx, dword [0x67dbf0]
mov eax, dword [0xa19818]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 8], str._MOUSE__BUTTON__AXIS__WHEEL_
mov edx, dword [0x67dbf0]
mov eax, dword [0xa19818]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x10], 3
mov edx, dword [0x67dbf0]
mov eax, dword [0xa19818]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x14], 2
mov edx, dword [0x67dbf0]
mov eax, dword [0xa19818]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x18], 3
mov edx, dword [0x67dbf0]
mov eax, dword [0xa19818]
imul eax, eax, 0x160
add eax, edx
mov dword [eax + 0x138], str.Mouse
mov edx, dword [0x67dbf0]
mov eax, dword [0xa19818]
imul eax, eax, 0x160
add eax, edx
mov dword [esp], eax
call fcn.00403192
mov eax, dword [0xa19818]
mov dword [0x67dbec], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x405509
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], 0x4043bd
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 [0x69ceb8], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x4984c3
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 [0x682704]
test eax, eax
jne 0x498282
mov dword [0x682558], 1
jmp 0x498282
mov dword [esp], 0x64
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp - 0x178], 2
call eax
sub esp, 4
jmp 0x498283
nop
mov eax, dword [0x682558]
test eax, eax
sete al
test al, al
jne 0x498265
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.0040efa8
mov dword [esp], 0x12
call fcn.0049e520
mov dword [esp + 4], 0x190
mov dword [esp], 0x280
call fcn.0049e4f0
mov dword [esp], 0x190
call fcn.004a3010
test eax, eax
sete al
test al, al
je 0x4982f7
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov eax, dword [0x682560]
test eax, eax
jne 0x498318
mov dword [esp], str.Untitled
mov dword [ebp - 0x178], 2
call fcn.0040efca
jmp 0x49832f
mov eax, dword [0x682560]
mov dword [esp], eax
mov dword [ebp - 0x178], 2
call fcn.0040efca
mov dword [0x682554], 1
mov dword [ebp - 0x178], 2
call fcn.00434961
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x498367
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call fcn.00434911
sub esp, 4
mov dword [esp], eax
call fcn.0043f61f
mov dword [esp], str.GL_EXT_framebuffer_object
call fcn.00434981
sub esp, 4
test al, al
setne al
test al, al
je 0x498389
mov dword [0x682528], 1
mov dword [esp], 0x49399f
mov dword [ebp - 0x178], 2
call fcn.004a2050
mov dword [esp + 8], 0
mov dword [esp + 4], 0x490c23
mov dword [esp], 8
call fcn.004a21a0
mov dword [esp], 0x4909bb
call fcn.004a20f0
mov dword [esp], 0x4909dd
call fcn.004a2270
mov dword [esp], 0x490bed
call fcn.004a2130
mov dword [esp], 0x490c08
call fcn.004a22b0
mov dword [esp], 0x495623
call fcn.004a23b0
mov dword [esp], fcn.0049566f
call fcn.004a2430
mov dword [esp], 0x495c07
call fcn.004a2470
mov dword [esp], 0x490eca
call fcn.004a20b0
mov dword [esp], 0x495c21
call fcn.004a23f0
call fcn.004a3e20
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x178], 1
mov ecx, eax
call fcn.00505500
mov eax, 0
mov dword [ebp - 0x180], eax
jmp 0x4984a3
lea eax, [ebp - 0x17c]
mov dword [esp], eax
call fcn.004b1120
mov eax, dword [ebp - 0x180]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret