Function at 0x497666
Capabilities:
Create thread
Log keystrokes via polling

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x378
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x250], xmm6
movaps xmmword [rbp + 0x260], xmm7
movaps xmmword [rbp + 0x270], xmm8
movaps xmmword [rbp + 0x280], xmm9
movaps xmmword [rbp + 0x290], xmm10
movaps xmmword [rbp + 0x2a0], xmm11
movaps xmmword [rbp + 0x2b0], xmm12
movaps xmmword [rbp + 0x2c0], xmm13
movaps xmmword [rbp + 0x2d0], xmm14
movaps xmmword [rbp + 0x2e0], xmm15
mov dword [rbp + 0x340], ecx
mov qword [rbp + 0x348], rdx
lea rax, [0x00586890]
mov qword [rbp - 0x20], rax
lea rax, [0x005eed00]
mov qword [rbp - 0x18], rax
lea rax, [rbp - 0x10]
lea rbx, [rbp + 0x250]
mov qword [rax], rbx
lea rdx, [0x00498fcb]
mov qword [rax + 8], rdx
mov qword [rax + 0x10], rsp
lea rax, [rbp - 0x50]
mov rcx, rax
call fcn.004b5390
call fcn.004b3890
mov qword [0x00713f60], 0
mov qword [0x00713f68], 0
mov dword [0x00713f70], 0xffffffff
mov dword [0x00713f74], 0xffffffff
mov dword [0x00713f78], 0
mov dword [0x00713f7c], 0xffffffff
mov dword [0x00713f80], 0xffffffff
mov dword [0x00713f84], 0xffffffff
mov dword [0x00c882b0], 0
mov eax, dword [0x00c882b0]
cmp eax, 2
jg 0x497891
mov eax, dword [0x00c882b0]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x00713ec0]
mov dword [rdx + rax], 1
mov eax, dword [0x00c882b0]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x00713ec8]
mov qword [rdx + rax], 0
mov eax, dword [0x00c882b0]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x00713ed0]
mov qword [rdx + rax], 0
mov eax, dword [0x00c882b0]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x00713ed8]
mov dword [rdx + rax], 0
mov eax, dword [0x00c882b0]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x00713edc]
mov dword [rdx + rax], 0
mov eax, dword [0x00c882b0]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x00713ee0]
mov dword [rdx + rax], 0
mov eax, dword [0x00c882b0]
add eax, 1
mov dword [0x00c882b0], eax
jmp 0x49777c
mov dword [rbp - 0x48], 0xffffffff
call 0x4018f9
mov eax, dword [0x00713ea0]
test eax, eax
je 0x4978b1
mov dword [0x005880f4], 0
mov eax, dword [0x00713e9c]
test eax, eax
je 0x4978c7
mov eax, dword [0x00713e9c]
mov dword [0x00713e74], eax
mov ecx, 0x20
call fcn.00437c50
mov qword [0x0072e718], rax
mov ecx, 0x10
call fcn.00437c50
mov qword [0x00713f48], rax
mov ecx, 0x28
call fcn.00437c50
mov qword [0x00713f50], rax
mov ecx, 0x28
call fcn.00437c50
mov qword [0x00c59b80], rax
mov dword [rbp - 0x48], 0xffffffff
mov ecx, 0x50
call fcn.00437cfb
mov qword [0x00713f90], rax
mov ecx, 0x70
call fcn.00437c50
mov qword [0x00713fa8], rax
mov rax, qword [0x0072e718]
mov rcx, rax
call fcn.00437d44
mov dword [0x0072e720], eax
mov eax, dword [0x0072e720]
mov dword [0x0072e724], eax
mov eax, dword [0x0072e724]
cdqe
mov rcx, qword [0x0072e718]
mov rdx, rax
call fcn.00438302
mov qword [rbp + 0x248], rax
mov rax, qword [rbp + 0x248]
mov dword [rax + 8], 0xffff
mov rax, qword [rbp + 0x248]
mov eax, dword [rax + 8]
add eax, 1
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
shl rax, 2
mov rdx, rax
mov ecx, 1
call sub.msvcrt.dll_calloc
mov rdx, rax
mov rax, qword [rbp + 0x248]
mov qword [rax], rdx
call 0x46c2cb
mov rax, qword [0x005d3c80]
mov eax, dword [rax]
test eax, eax
je 0x4979d4
mov dword [0x0071402c], 1
mov rax, qword [0x005d38d0]
mov eax, dword [rax]
test eax, eax
je 0x497a25
mov ecx, 0x3e8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x240], rax
mov rax, qword [rbp + 0x240]
mov edx, 0x100
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetConsoleProcessList]
mov dword [rbp - 0x48], 0xffffffff
call rax
cmp eax, 1
sete al
test al, al
je 0x497a25
mov dword [0x00714028], 1
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x28
mov dword [rax + 0x14], 0x3b00
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x50
mov dword [rax + 0x14], 0x3c00
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x78
mov dword [rax + 0x14], 0x3d00
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0xa0
mov dword [rax + 0x14], 0x3e00
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0xc8
mov dword [rax + 0x14], 0x3f00
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0xf0
mov dword [rax + 0x14], 0x4000
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x118
mov dword [rax + 0x14], 0x4100
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x140
mov dword [rax + 0x14], 0x4200
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x168
mov dword [rax + 0x14], 0x4300
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x190
mov dword [rax + 0x14], 0x4400
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x1b8
mov dword [rax + 0x14], 0x4800
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x1b8
mov dword [rax + 0x18], 0x187a8
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x1e0
mov dword [rax + 0x14], 0x4b00
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x1e0
mov dword [rax + 0x18], 0x187a4
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x208
mov dword [rax + 0x14], 0x4d00
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x208
mov dword [rax + 0x18], 0x187a6
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x230
mov dword [rax + 0x14], 0x5000
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x230
mov dword [rax + 0x18], 0x187a2
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x4b0
mov dword [rax + 0x14], 0x8500
mov rax, qword [0x005d3bc0]
mov rax, qword [rax]
add rax, 0x4d8
mov dword [rax + 0x14], 0x8600
mov rax, qword [0x005d3be0]
mov rax, qword [rax]
mov byte [rax], 1
mov rax, qword [0x005d3be0]
mov rax, qword [rax]
mov dword [rax + 4], 0
mov rax, qword [0x005d3be0]
mov rax, qword [rax]
mov byte [rax + 0x11], 0
mov rax, qword [0x005d3be0]
mov rax, qword [rax]
mov byte [rax + 0x10], 0
mov rax, qword [0x00714048]
add rax, 0x20
mov dword [rax], 8
mov rax, qword [0x00714048]
add rax, 0x38
mov dword [rax], 8
mov rax, qword [0x00714048]
add rax, 0x40
mov dword [rax], 8
mov rax, qword [0x00714040]
add rax, 0x20
mov dword [rax], 8
mov rax, qword [0x00714040]
add rax, 0x38
mov dword [rax], 0xe
mov rax, qword [0x00714040]
add rax, 0x40
mov dword [rax], 0x10
mov rax, qword [0x00714050]
add rax, 0x20
mov dword [rax], 0x10
mov rax, qword [0x00714050]
add rax, 0x38
mov dword [rax], 0x10
mov rax, qword [0x00714050]
add rax, 0x40
mov dword [rax], 0x10
mov rax, qword [0x00714048]
add rax, 0x24
mov dword [rax], 0x10
mov rax, qword [0x00714048]
add rax, 0x3c
mov dword [rax], 0x10
mov rax, qword [0x00714048]
add rax, 0x44
mov dword [rax], 0x10
mov rax, qword [0x00714040]
add rax, 0x24
mov dword [rax], 8
mov rax, qword [0x00714040]
add rax, 0x3c
mov dword [rax], 0xe
mov rax, qword [0x00714040]
add rax, 0x44
mov dword [rax], 0x10
mov rax, qword [0x00714050]
add rax, 0x24
mov dword [rax], 0x10
mov rax, qword [0x00714050]
add rax, 0x3c
mov dword [rax], 0x10
mov rax, qword [0x00714050]
add rax, 0x44
mov dword [rax], 0x10
mov rax, qword [0x00724a28]
mov r8d, 0xc0000
mov edx, 0
mov rcx, rax
call sub.msvcrt.dll_memset
mov dword [rbp - 0x48], 0xffffffff
call fcn.0043a33e
mov dword [0x00c882c4], eax
mov rcx, qword [0x00724a28]
mov eax, dword [0x00c882c4]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
shl rax, 6
add rax, rcx
mov byte [rax + 0x10], 0
call fcn.0043a33e
mov dword [0x00c882c4], eax
mov rcx, qword [0x00724a28]
mov eax, dword [0x00c882c4]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
shl rax, 6
add rax, rcx
mov byte [rax + 0x10], 0
mov r8d, 0x3c
mov edx, 0
lea rcx, [0x0072e740]
call sub.msvcrt.dll_memset
lea rax, [0x0072e740]
mov qword [0x0072e7a0], rax
lea rax, [0x0072e748]
mov qword [0x0072e7a8], rax
lea rax, [0x0072e74c]
mov qword [0x0072e7b0], rax
lea rax, [0x0072e744]
mov qword [0x0072e7b8], rax
lea rax, [0x0072e741]
mov qword [0x0072e7c0], rax
lea rax, [0x0072e749]
mov qword [0x0072e7c8], rax
lea rax, [0x0072e74d]
mov qword [0x0072e7d0], rax
lea rax, [0x0072e745]
mov qword [0x0072e7d8], rax
lea rax, [0x0072e740]
mov qword [0x0072e7e0], rax
lea rax, [0x0072e748]
mov qword [0x0072e7e8], rax
lea rax, [0x0072e74c]
mov qword [0x0072e7f0], rax
lea rax, [0x0072e744]
mov qword [0x0072e7f8], rax
lea rax, [0x0072e75c]
mov qword [0x0072e800], rax
lea rax, [0x0072e758]
mov qword [0x0072e808], rax
lea rax, [0x0072e750]
mov qword [0x0072e810], rax
lea rax, [0x0072e754]
mov qword [0x0072e818], rax
lea rax, [0x0072e740]
mov qword [0x0072e820], rax
lea rax, [0x0072e748]
mov qword [0x0072e828], rax
lea rax, [0x0072e74c]
mov qword [0x0072e830], rax
lea rax, [0x0072e744]
mov qword [0x0072e838], rax
lea rax, [0x0072e75c]
mov qword [0x0072e840], rax
lea rax, [0x0072e758]
mov qword [0x0072e848], rax
lea rax, [0x0072e750]
mov qword [0x0072e850], rax
lea rax, [0x0072e754]
mov qword [0x0072e858], rax
lea rax, [0x0072e766]
mov qword [0x0072e860], rax
lea rax, [0x0072e760]
mov qword [0x0072e868], rax
lea rax, [0x0072e762]
mov qword [0x0072e870], rax
lea rax, [0x0072e764]
mov qword [0x0072e878], rax
lea rax, [0x0072e768]
mov qword [0x0072e880], rax
lea rax, [0x0072e76a]
mov qword [0x0072e888], rax
mov dword [0x00c882b0], 0
mov eax, dword [0x00c882b0]
cmp eax, 0x1f
jg 0x497fca
mov eax, dword [0x00c882b0]
cdqe
lea rdx, [0x00c58f00]
mov byte [rax + rdx], 0x20
mov eax, dword [0x00c882b0]
add eax, 1
mov dword [0x00c882b0], eax
jmp 0x497f9b
mov byte [0x00c59080], 0x81
mov dword [0x0072e91c], 0x100000
mov eax, dword [0x0072e91c]
mov eax, eax
mov rcx, rax
call sub.msvcrt.dll_malloc
mov rdx, rax
mov rax, qword [0x005d3b10]
mov qword [rax], rdx
mov rax, qword [0x005d3b10]
mov rdx, qword [rax]
mov rax, qword [0x005d3b30]
mov qword [rax], rdx
mov rax, qword [0x005d3b10]
mov rax, qword [rax]
mov edx, dword [0x0072e91c]
mov edx, edx
add rdx, rax
mov rax, qword [0x005d3b20]
mov qword [rax], rdx
mov r8d, 0x10fff3
mov edx, 0
mov rcx, qword [0x005d3890]
call sub.msvcrt.dll_memset
mov r8d, 0x10000
mov edx, 0
lea rcx, [0x00c3bc60]
call sub.msvcrt.dll_memset
mov rax, qword [0x005d3890]
lea rdx, [rax + 0x500]
mov rax, qword [0x005d38e0]
mov qword [rax], rdx
mov rax, qword [0x005d38b0]
mov eax, dword [rax]
lea edx, [rax - 8]
mov rax, qword [0x005d38b0]
mov dword [rax], edx
mov rax, qword [0x005d38b0]
mov eax, dword [rax]
mov edx, eax
mov rax, qword [0x005d38e0]
mov rax, qword [rax]
add rax, rdx
mov rdx, rax
mov rax, qword [0x005d3bb0]
mov qword [rax], rdx
mov rax, qword [0x005d3bb0]
mov rax, qword [rax]
mov qword [rax], 0
mov dword [rbp - 0x48], 0xffffffff
mov edx, 0
mov ecx, 0
call fcn.004466d3
mov rdx, rax
mov rax, qword [0x005d3ba0]
mov qword [rax], rdx
mov edx, 0
mov ecx, 1
call fcn.004466d3
mov qword [0x00c4bc60], rax
mov rax, qword [0x00c4bc60]
mov rax, qword [rax]
mov byte [rax], 0x20
mov edx, 0
mov ecx, 0
call fcn.00446bd2
mov qword [0x00c59be0], rax
call fcn.00496684
mov rdx, rax
mov rax, qword [0x00c59be0]
mov rcx, rax
call fcn.00446da0
movzx eax, byte [0x00c88330]
test al, al
sete al
test al, al
je 0x498171
lea rcx, [0x00c88330]
call fcn.00586300
test eax, eax
setne al
test al, al
je 0x498171
mov ecx, 0x10000
call sub.msvcrt.dll_malloc
mov qword [0x00c88328], rax
lea rcx, [0x00c88330]
call fcn.00586500
mov rax, qword [0x00c88328]
mov r8d, 0x10000
mov rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [rbp - 0x48], 0xffffffff
call rax
mov rax, qword [0x00c88328]
mov rcx, rax
call sub.msvcrt.dll_strlen
mov dword [0x00c882b0], eax
mov eax, dword [0x00c882b0]
sub eax, 1
mov dword [0x00c882b4], eax
mov eax, dword [0x00c882b4]
test eax, eax
js 0x498258
mov rdx, qword [0x00c88328]
mov eax, dword [0x00c882b4]
cdqe
add rax, rdx
movzx eax, byte [rax]
movsx eax, al
mov dword [0x00c882c4], eax
mov eax, dword [0x00c882c4]
cmp eax, 0x5c
je 0x498207
mov eax, dword [0x00c882c4]
cmp eax, 0x2f
je 0x498207
mov eax, dword [0x00c882c4]
cmp eax, 0x3a
jne 0x498244
mov eax, dword [0x00c882c4]
cmp eax, 0x3a
jne 0x49822d
mov rdx, qword [0x00c88328]
mov eax, dword [0x00c882b4]
cdqe
add rax, 1
add rax, rdx
mov byte [rax], 0
jmp 0x498258
mov rdx, qword [0x00c88328]
mov eax, dword [0x00c882b4]
cdqe
add rax, rdx
mov byte [rax], 0
jmp 0x498258
mov eax, dword [0x00c882b4]
sub eax, 1
mov dword [0x00c882b4], eax
jmp 0x4981ba
mov rax, qword [0x00c88328]
mov dword [rbp - 0x48], 0xffffffff
mov rcx, rax
call sub.msvcrt.dll__chdir
mov edx, 0
mov ecx, 0
call fcn.00446bd2
mov qword [0x00c59be8], rax
call fcn.00496684
mov rdx, rax
mov rax, qword [0x00c59be8]
mov rcx, rax
call fcn.00446da0
mov edx, 0
mov ecx, 0
call fcn.00446bd2
mov qword [0x007240e8], rax
mov edx, 0x14
lea rcx, str.Unknown_Opcode_____
call fcn.004469a9
mov rdx, rax
mov rax, qword [0x007240e8]
mov rcx, rax
call fcn.00446da0
mov eax, dword [rbp + 0x340]
mov dword [0x00c882b0], eax
mov eax, dword [0x00c882b0]
cmp eax, 1
jle 0x498498
mov dword [0x00c882b4], 0
mov dword [0x00c882b0], 1
mov edx, dword [0x00c882b0]
mov eax, dword [rbp + 0x340]
cmp edx, eax
jge 0x498373
mov eax, dword [0x00c882b0]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x348]
add rax, rdx
mov rax, qword [rax]
mov rcx, rax
call sub.msvcrt.dll_strlen
mov edx, eax
mov eax, dword [0x00c882b4]
add eax, edx
mov dword [0x00c882b4], eax
mov eax, dword [0x00c882b0]
cmp eax, 1
je 0x498362
mov eax, dword [0x00c882b4]
add eax, 1
mov dword [0x00c882b4], eax
mov eax, dword [0x00c882b0]
add eax, 1
mov dword [0x00c882b0], eax
jmp 0x498303
mov eax, dword [0x00c882b4]
mov dword [rbp - 0x48], 0xffffffff
mov edx, 0
mov ecx, eax
call fcn.00446bd2
mov qword [0x00c59188], rax
mov dword [0x00c882b8], 0
mov dword [0x00c882b0], 1
mov edx, dword [0x00c882b0]
mov eax, dword [rbp + 0x340]
cmp edx, eax
jge 0x4984b5
mov eax, dword [0x00c882b0]
cmp eax, 1
je 0x4983ed
mov rax, qword [0x00c59188]
mov rdx, qword [rax]
mov eax, dword [0x00c882b8]
cdqe
add rax, rdx
mov byte [rax], 0x20
mov eax, dword [0x00c882b8]
add eax, 1
mov dword [0x00c882b8], eax
mov eax, dword [0x00c882b0]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x348]
add rax, rdx
mov rax, qword [rax]
mov rcx, rax
call sub.msvcrt.dll_strlen
mov r8, rax
mov eax, dword [0x00c882b0]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x348]
add rax, rdx
mov rdx, qword [rax]
mov rax, qword [0x00c59188]
mov rcx, qword [rax]
mov eax, dword [0x00c882b8]
cdqe
add rax, rcx
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov eax, dword [0x00c882b0]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x348]
add rax, rdx
mov rax, qword [rax]
mov rcx, rax
call sub.msvcrt.dll_strlen
mov edx, eax
mov eax, dword [0x00c882b8]
add eax, edx
mov dword [0x00c882b8], eax
mov eax, dword [0x00c882b0]
add eax, 1
mov dword [0x00c882b0], eax
jmp 0x4983a7
mov dword [rbp - 0x48], 0xffffffff
mov edx, 0
mov ecx, 0
call fcn.00446bd2
mov qword [0x00c59188], rax
mov eax, dword [rbp + 0x340]
mov dword [0x00c59198], eax
mov rax, qword [rbp + 0x348]
mov qword [0x00c59190], rax
lea rax, [rbp + 0x208]
mov rcx, rax
call sub.msvcrt.dll__time64
mov rax, qword [rbp + 0x208]
cmp rax, 0xffffffffffffffff
je 0x49850f
lea rax, [rbp + 0x210]
mov rcx, rax
call sub.msvcrt.dll__time64
mov rdx, qword [rbp + 0x210]
mov rax, qword [rbp + 0x208]
cmp rdx, rax
jne 0x49851a
jmp 0x4984eb
mov qword [rbp + 0x210], 0
call fcn.00438e88
mov dword [0x0072e904], eax
lea rax, [rbp + 0x210]
mov rcx, rax
call sub.msvcrt.dll_localtime
mov qword [rbp + 0x238], rax
cmp qword [rbp + 0x238], 0
je 0x498589
mov rax, qword [rbp + 0x238]
mov eax, dword [rax + 8]
imul edx, eax, 0xe10
mov rax, qword [rbp + 0x238]
mov eax, dword [rax + 4]
imul eax, eax, 0x3c
add edx, eax
mov rax, qword [rbp + 0x238]
mov eax, dword [rax]
add eax, edx
mov dword [0x0072e900], eax
mov eax, dword [0x0072e900]
imul eax, eax, 0x3e8
mov dword [0x0072e900], eax
jmp 0x498593
mov dword [0x0072e900], 0
mov ecx, 0x91
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
mov dword [rbp - 0x48], 0xffffffff
call rax
cwde
and eax, 1
test eax, eax
setne al
test al, al
je 0x4985bf
mov ecx, 0x30d4b
call fcn.00439470
mov ecx, 0x91
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
mov dword [rbp - 0x48], 0xffffffff
call rax
shr ax, 0xf
test al, al
je 0x4985f0
mov dword [0x00724068], 0x12e
mov ecx, 0x187ce
call fcn.004397d3
mov ecx, 0xa0
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
mov dword [rbp - 0x48], 0xffffffff
call rax
shr ax, 0xf
test al, al
je 0x498621
mov dword [0x00724068], 0x130
mov ecx, 0x187d0
call fcn.004397d3
mov ecx, 0xa1
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
mov dword [rbp - 0x48], 0xffffffff
call rax
shr ax, 0xf
test al, al
je 0x498652
mov dword [0x00724068], 0x12f
mov ecx, 0x187cf
call fcn.004397d3
mov ecx, 0xa2
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
mov dword [rbp - 0x48], 0xffffffff
call rax
shr ax, 0xf
test al, al
je 0x498683
mov dword [0x00724068], 0x132
mov ecx, 0x187d2
call fcn.004397d3
mov ecx, 0xa3
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
mov dword [rbp - 0x48], 0xffffffff
call rax
shr ax, 0xf
test al, al
je 0x4986b4
mov dword [0x00724068], 0x131
mov ecx, 0x187d1
call fcn.004397d3
mov ecx, 0xa4
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
mov dword [rbp - 0x48], 0xffffffff
call rax
shr ax, 0xf
test al, al
je 0x4986e5
mov dword [0x00724068], 0x134
mov ecx, 0x187d4
call fcn.004397d3
mov ecx, 0xa5
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
mov dword [rbp - 0x48], 0xffffffff
call rax
shr ax, 0xf
test al, al
je 0x498716
mov dword [0x00724068], 0x133
mov ecx, 0x187d3
call fcn.004397d3
mov ecx, 0x14
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
mov dword [rbp - 0x48], 0xffffffff
call rax
cwde
and eax, 1
test eax, eax
setne al
test al, al
je 0x49874c
mov dword [0x00724068], 0x12d
mov ecx, 0x187cd
call fcn.004397d3
mov ecx, 0x90
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
mov dword [rbp - 0x48], 0xffffffff
call rax
cwde
and eax, 1
test eax, eax
setne al
test al, al
je 0x498782
mov dword [0x00724068], 0x12c
mov ecx, 0x187cc
call fcn.004397d3
mov dword [rbp - 0x48], 0xffffffff
call fcn.0049b93b
mov eax, dword [0x00724060]
mov dword [0x00724064], eax
mov rax, qword [0x005d3890]
mov byte [rax + 0x41a], 0x1e
mov rax, qword [0x005d3890]
mov byte [rax + 0x41b], 0
mov rax, qword [0x005d3890]
mov byte [rax + 0x41c], 0x1e
mov rax, qword [0x005d3890]
mov byte [rax + 0x41d], 0
lea rax, [rbp + 0x20]
mov rcx, rax
call fcn.005501c0
mov eax, dword [0x005885c0]
cdqe
mov r8, rax
lea rdx, [0x005b4740]
lea rcx, [0x00724520]
call sub.msvcrt.dll_memcpy
mov dword [0x00c882b0], 0
mov eax, dword [0x00c882b0]
cmp eax, 0xff
jg 0x498860
mov eax, dword [0x00c882b0]
cdqe
lea rdx, [rax*4]
lea rax, [0x00724520]
mov edx, dword [rdx + rax]
mov eax, dword [0x00c882b0]
mov ecx, edx
or ecx, 0xff000000
cdqe
lea rdx, [rax*4]
lea rax, [0x00724520]
mov dword [rdx + rax], ecx
mov eax, dword [0x00c882b0]
add eax, 1
mov dword [0x00c882b0], eax
jmp 0x498806
mov eax, dword [0x005885c4]
cdqe
mov r8, rax
lea rdx, [0x005b4b40]
lea rcx, [0x00724920]
call sub.msvcrt.dll_memcpy
mov dword [0x00c882b0], 0
mov eax, dword [0x00c882b0]
cmp eax, 0x3f
jg 0x4988e0
mov eax, dword [0x00c882b0]
cdqe
lea rdx, [rax*4]
lea rax, [0x00724920]
mov edx, dword [rdx + rax]
mov eax, dword [0x00c882b0]
mov ecx, edx
or ecx, 0xff000000
cdqe
lea rdx, [rax*4]
lea rax, [0x00724920]
mov dword [rdx + rax], ecx
mov eax, dword [0x00c882b0]
add eax, 1
mov dword [0x00c882b0], eax
jmp 0x498888
mov dword [0x00c4c200], 0
mov dword [0x00c4c204], 0
mov dword [0x00c4c208], 0
mov dword [0x00c4c20c], 0x808080
mov dword [0x00c4c210], 0x808080
mov dword [0x00c4c214], 0x808080
mov dword [0x00c4c218], 0xffffff
mov dword [0x00c4c21c], 0xffffff
mov dword [0x00c4c220], 0xffffff
mov dword [0x00c4c224], 0
mov dword [0x00c4c228], 0x808080
mov dword [0x00c4c22c], 0xffffff
mov dword [0x00c4c230], 0
mov dword [0x00c4c234], 0x808080
mov dword [0x00c4c238], 0xffffff
mov dword [0x00c4c23c], 0
mov dword [0x00c4c240], 0x808080
mov dword [0x00c4c244], 0xffffff
mov eax, dword [0x005885b8]
cdqe
mov r8, rax
lea rdx, [0x005a8740]
lea rcx, [0x00c4c260]
call sub.msvcrt.dll_memcpy
mov eax, dword [0x005885bc]
cdqe
mov r8, rax
lea rdx, [0x005ac740]
lea rcx, [0x00c50260]
call sub.msvcrt.dll_memcpy
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
mov dword [rbp - 0x48], 1
mov r9d, 0
mov r8d, 0
mov edx, 0
mov ecx, 0
call fcn.0044c278
mov dword [0x005885cc], 1
mov rax, qword [0x005d38d0]
mov eax, dword [rax]
test eax, eax
je 0x498a6c
mov r9d, 0
mov r8d, 0
mov edx, 0x19
mov ecx, 0x50
call fcn.00471bb9
mov dword [0x00588380], eax
mov eax, dword [0x00588380]
neg eax
mov dword [0x00c882b0], eax
mov rcx, qword [0x00724a28]
mov eax, dword [0x00c882b0]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
shl rax, 6
add rax, rcx
mov byte [rax + 0x12], 1
mov edx, dword [0x00588104]
mov eax, dword [0x00588100]
mov dword [rbp - 0x48], 1
mov r9d, 1
mov r8d, 0x20
mov ecx, eax
call fcn.00471bb9
mov dword [0x00c5a428], eax
mov edx, dword [0x00588100]
mov eax, dword [0x00588104]
imul eax, edx
shl eax, 2
movsxd rcx, eax
mov r8, qword [0x00724a28]
mov eax, dword [0x00c5a428]
neg eax
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
shl rax, 6
add rax, r8
mov rax, qword [rax + 0x40]
mov r8, rcx
lea rdx, [0x005a1f00]
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov edx, dword [0x0058810c]
mov eax, dword [0x00588108]
mov r9d, 1
mov r8d, 0x20
mov ecx, eax
call fcn.00471bb9
mov dword [0x00c5a42c], eax
mov edx, dword [0x00588108]
mov eax, dword [0x0058810c]
imul eax, edx
shl eax, 2
movsxd rcx, eax
mov r8, qword [0x00724a28]
mov eax, dword [0x00c5a42c]
neg eax
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
shl rax, 6
add rax, r8
mov rax, qword [rax + 0x40]
mov r8, rcx
lea rdx, [0x005a2300]
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov dword [0x00c882b0], 0
mov eax, dword [0x00c882b0]
add eax, 1
mov dword [0x00c882b0], eax
mov rax, qword [0x005d3910]
mov rdx, qword [rax]
mov eax, dword [0x00c882b0]
cdqe
imul rax, rax, 0x170
add rax, rdx
mov dword [rax + 4], 2
mov rax, qword [0x005d3910]
mov rdx, qword [rax]
mov eax, dword [0x00c882b0]
cdqe
imul rax, rax, 0x170
add rax, rdx
lea rdx, str._KEYBOARD__BUTTON_
mov qword [rax + 8], rdx
mov rax, qword [0x005d3910]
mov rdx, qword [rax]
mov eax, dword [0x00c882b0]
cdqe
imul rax, rax, 0x170
add rax, rdx
mov dword [rax + 0x14], 0x200
mov rax, qword [0x005d3910]
mov rdx, qword [rax]
mov eax, dword [0x00c882b0]
cdqe
imul rax, rax, 0x170
add rax, rdx
lea rdx, str.Keyboard
mov qword [rax + 0x148], rdx
mov rax, qword [0x005d3910]
mov rdx, qword [rax]
mov eax, dword [0x00c882b0]
cdqe
imul rax, rax, 0x170
add rax, rdx
mov rcx, rax
call fcn.00403185
mov eax, dword [0x00c882b0]
add eax, 1
mov dword [0x00c882b0], eax
mov rax, qword [0x005d3910]
mov rdx, qword [rax]
mov eax, dword [0x00c882b0]
cdqe
imul rax, rax, 0x170
add rax, rdx
mov dword [rax + 4], 3
mov rax, qword [0x005d3910]
mov rdx, qword [rax]
mov eax, dword [0x00c882b0]
cdqe
imul rax, rax, 0x170
add rax, rdx
lea rdx, str._MOUSE__BUTTON__AXIS__WHEEL_
mov qword [rax + 8], rdx
mov rax, qword [0x005d3910]
mov rdx, qword [rax]
mov eax, dword [0x00c882b0]
cdqe
imul rax, rax, 0x170
add rax, rdx
mov dword [rax + 0x14], 3
mov rax, qword [0x005d3910]
mov rdx, qword [rax]
mov eax, dword [0x00c882b0]
cdqe
imul rax, rax, 0x170
add rax, rdx
mov dword [rax + 0x18], 2
mov rax, qword [0x005d3910]
mov rdx, qword [rax]
mov eax, dword [0x00c882b0]
cdqe
imul rax, rax, 0x170
add rax, rdx
mov dword [rax + 0x1c], 3
mov rax, qword [0x005d3910]
mov rdx, qword [rax]
mov eax, dword [0x00c882b0]
cdqe
imul rax, rax, 0x170
add rax, rdx
lea rdx, str.Mouse
mov qword [rax + 0x148], rdx
mov rax, qword [0x005d3910]
mov rdx, qword [rax]
mov eax, dword [0x00c882b0]
cdqe
imul rax, rax, 0x170
add rax, rdx
mov rcx, rax
call fcn.00403185
mov edx, dword [0x00c882b0]
mov rax, qword [0x005d3900]
mov dword [rax], edx
mov r8d, 0
mov edx, 0
mov rcx, qword [0x005d2b80]
mov rax, qword [sym.imp.msvcrt.dll__beginthread]
call rax
mov qword [rbp + 0x230], rax
mov rax, qword [rbp + 0x230]
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetThreadPriority]
call rax
mov r8d, 0
mov edx, 0
mov rcx, qword [0x005d2b90]
mov rax, qword [sym.imp.msvcrt.dll__beginthread]
call rax
mov qword [rbp + 0x228], rax
mov rax, qword [rbp + 0x228]
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetThreadPriority]
call rax
mov dword [0x0072e8f8], 1
mov r8d, 0
mov edx, 0
lea rcx, [0x0049906a]
mov rax, qword [sym.imp.msvcrt.dll__beginthread]
call rax
mov qword [rbp + 0x220], rax
mov rax, qword [rbp + 0x220]
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetThreadPriority]
call rax
mov eax, dword [0x0071402c]
test eax, eax
jne 0x498e16
mov dword [0x00713e54], 1
mov eax, dword [0x00713e54]
test eax, eax
jne 0x498e37
mov ecx, 0x64
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
mov dword [rbp - 0x48], 1
call rax
jmp 0x498e16
mov rax, qword [rbp + 0x348]
mov dword [rbp - 0x48], 1
mov rdx, rax
lea rcx, [rbp + 0x340]
call fcn.00406950
mov ecx, 0x92
call fcn.004a0c00
mov edx, 0x190
mov ecx, 0x280
call fcn.004a0be0
mov ecx, 0x190
call fcn.004a5590
test eax, eax
sete al
test al, al
je 0x498e8a
mov ecx, 1
call sub.msvcrt.dll_exit
mov rax, qword [0x00713e60]
test rax, rax
jne 0x498eab
mov dword [rbp - 0x48], 1
lea rcx, str.Untitled
call fcn.0040697e
jmp 0x498ec1
mov rax, qword [0x00713e60]
mov dword [rbp - 0x48], 1
mov rcx, rax
call fcn.0040697e
mov dword [0x00713e50], 1
mov dword [rbp - 0x48], 1
call fcn.0042f426
mov dword [rbp + 0x21c], eax
cmp dword [rbp + 0x21c], 0
je 0x498efb
mov eax, dword [rbp + 0x21c]
mov ecx, eax
call fcn.0042f3ac
mov rcx, rax
call fcn.0043995a
lea rcx, str.GL_EXT_framebuffer_object
call fcn.0042f44d
test al, al
setne al
test al, al
je 0x498f1a
mov dword [0x00713e24], 1
mov dword [rbp - 0x48], 1
lea rcx, [0x00493d16]
call fcn.0049ebb0
mov r8d, 0
lea rdx, [0x00490caf]
mov ecx, 8
call fcn.0049ed70
lea rcx, [0x00490a11]
call fcn.0049ec70
lea rcx, [0x00490a3c]
call fcn.0049ee20
lea rcx, [0x00490c63]
call fcn.0049ecd0
lea rcx, [0x00490c89]
call fcn.0049ee80
lea rcx, [0x00495b99]
call fcn.0049efb0
lea rcx, [fcn.00495bee]
call fcn.0049f070
lea rcx, [0x00496215]
call fcn.0049f0d0
lea rcx, [0x00490f5d]
call fcn.0049ec20
lea rcx, [0x00496237]
call fcn.0049f010
call fcn.004a2720
lea rax, [rbp + 0x20]
mov rcx, rax
call fcn.00550cc0
mov eax, 0
mov dword [rbp + 0x18], eax
jmp 0x498ff9
lea rax, [rbp - 0x50]
mov rcx, rax
call fcn.004b5420
mov eax, dword [rbp + 0x18]
movaps xmm6, xmmword [rbp + 0x250]
movaps xmm7, xmmword [rbp + 0x260]
movaps xmm8, xmmword [rbp + 0x270]
movaps xmm9, xmmword [rbp + 0x280]
movaps xmm10, xmmword [rbp + 0x290]
movaps xmm11, xmmword [rbp + 0x2a0]
movaps xmm12, xmmword [rbp + 0x2b0]
movaps xmm13, xmmword [rbp + 0x2c0]
movaps xmm14, xmmword [rbp + 0x2d0]
movaps xmm15, xmmword [rbp + 0x2e0]
add rsp, 0x378
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret