Function at 0x10001680
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x1005f008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x23
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x100016fd
cmp byte [0x1005f650], 0
sete al
mov byte [0x1005f650], al
test al, al
je 0x100016fd
mov eax, dword [0x1005f670]
mov eax, dword [eax]
test eax, eax
je 0x100016fd
mov eax, dword [eax + 0x240]
test eax, eax
je 0x100016fd
mov eax, dword [eax + 0xe8]
movss xmm0, dword [eax + 0x9c]
movss dword [0x1005f65c], xmm0
movss xmm0, dword [eax + 0xa0]
movss dword [0x1005f660], xmm0
movss xmm0, dword [eax + 0xa4]
movss dword [0x1005f664], xmm0
call fcn.100118d0
mov eax, dword [0x1005f6a4]
xor edx, edx
movss xmm0, dword [0x1005c65c]
mov ecx, str.Stierlitz_7__by_Schwarz_Kruppzo_
push 0x5a
or dword [eax + 0x46c4], 0x44
movss dword [eax + 0x46ec], xmm0
xorps xmm0, xmm0
movss dword [eax + 0x46f0], xmm0
mov dword [eax + 0x4718], 0x3e800000
call fcn.1000eaf0
add esp, 4
mov edx, 0x1005f651
mov ecx, str.No_Fog_of_War
call fcn.10034d00
mov edx, 0x1005f652
mov ecx, str.Infinite_Range
call fcn.10034d00
mov edx, 0x1005f654
mov ecx, str.Infinite_Resources
call fcn.10034d00
test al, al
je 0x100018b1
mov eax, dword [0x1005f67c]
test eax, eax
je 0x100018b1
cmp byte [0x1005f654], 0
je 0x10001824
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
xor esi, esi
nop dword [eax + eax]
mov edi, dword [esi*4 + 0x100568ec]
add edi, eax
cmp esi, 3
jbe 0x100017e6
lea eax, [ebp - 0x10]
push eax
push 0x40
push 3
push edi
call ebx
mov ecx, esi
and ecx, 3
mov al, byte [ecx + ecx*2 + 0x10056954]
mov byte [edi], al
mov al, byte [ecx + ecx*2 + 0x10056955]
mov byte [edi + 1], al
mov al, byte [ecx + ecx*2 + 0x10056956]
mov byte [edi + 2], al
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x10]
push 3
jmp 0x1000180d
lea eax, [ebp - 0x14]
push eax
push 0x40
push 2
push edi
call ebx
mov al, byte [esi*2 + 0x10056904]
mov byte [edi], al
mov al, byte [esi*2 + 0x10056905]
mov byte [edi + 1], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 0x14]
push 2
push edi
call ebx
inc esi
cmp esi, 6
jge 0x100018b1
mov eax, dword [0x1005f67c]
jmp 0x100017a0
xor ebx, ebx
mov esi, dword [ebx*4 + 0x100568ec]
mov edi, ebx
mov ecx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
add esi, eax
and edi, 3
cmp ebx, 3
jbe 0x10001872
lea eax, [ebp - 0x14]
push eax
push 0x40
push 3
push esi
call ecx
mov al, byte [edi + edi*2 + 0x1005695a]
mov byte [esi], al
mov al, byte [edi + edi*2 + 0x1005695b]
mov byte [esi + 1], al
mov al, byte [edi + edi*2 + 0x1005695c]
mov byte [esi + 2], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 0x14]
push 3
jmp 0x10001899
lea eax, [ebp - 0x10]
push eax
push 0x40
push 2
push esi
call ecx
mov al, byte [edi*2 + 0x1005690c]
mov byte [esi], al
mov al, byte [edi*2 + 0x1005690d]
mov byte [esi + 1], al
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x10]
push 2
mov eax, dword [sym.imp.KERNEL32.dll_VirtualProtect]
push esi
call eax
inc ebx
cmp ebx, 6
jge 0x100018b1
mov eax, dword [0x1005f67c]
jmp 0x10001826
mov ecx, dword [0x1005f6a4]
mov eax, dword [ecx + 0x3e28]
mov byte [eax + 0x90], 1
mov eax, dword [ecx + 0x3e28]
cmp byte [eax + 0x93], 0
jne 0x100018f1
movss xmm1, dword [0x1005c694]
lea ecx, [ebp - 0xc]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
call fcn.100129a0
mov edx, 0x1005f650
mov ecx, str.Freeze_Scope__END_
call fcn.10034d00
mov eax, dword [0x1005f670]
mov eax, dword [eax]
test eax, eax
je 0x1000194b
mov eax, dword [eax + 0x240]
test eax, eax
je 0x1000194b
mov eax, dword [eax + 0xe8]
movss xmm0, dword [eax + 0x9c]
movss dword [0x1005f65c], xmm0
movss xmm0, dword [eax + 0xa0]
movss dword [0x1005f660], xmm0
movss xmm0, dword [eax + 0xa4]
movss dword [0x1005f664], xmm0
mov edx, 0x1005f653
mov ecx, str.Free_Camera
call fcn.10034d00
mov ecx, dword [0x1005f6a4]
mov eax, dword [ecx + 0x3e28]
mov byte [eax + 0x90], 1
mov eax, dword [ecx + 0x3e28]
cmp byte [eax + 0x93], 0
jne 0x1000199a
movss xmm1, dword [0x1005c694]
lea ecx, [ebp - 0xc]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
call fcn.100129a0
cmp byte [0x1005f656], 0
jne 0x100019d5
cmp byte [0x1005f655], 0
jne 0x100019d5
push 0
lea edx, [ebp - 0xc]
mov dword [ebp - 0xc], 0
mov ecx, str.PATCH_MINIMAP
mov dword [ebp - 8], 0
call fcn.10033fe0
add esp, 4
test al, al
je 0x100019d5
call fcn.100028d0
call fcn.100113c0
mov eax, dword [0x1005f6a4]
xor edx, edx
movss xmm1, dword [0x1005c668]
mov ecx, str.Overflow
push 0x7f
movss xmm0, dword [eax + 0x10]
or dword [eax + 0x46c4], 0x45
subss xmm0, xmm1
mov dword [eax + 0x46d8], 0
mov dword [eax + 0x46dc], 0
mov dword [eax + 0x46e0], 0
mov dword [eax + 0x46c8], 1
movss dword [eax + 0x46d4], xmm0
xorps xmm0, xmm0
movss dword [eax + 0x46ec], xmm1
movss dword [eax + 0x46f0], xmm0
mov dword [eax + 0x4718], 0x3e800000
call fcn.1000eaf0
add esp, 4
push str.Team_A
call fcn.10033550
add esp, 4
mov cl, 1
call fcn.10001070
push str.Team_B
call fcn.10033550
add esp, 4
xor cl, cl
call fcn.10001070
call fcn.100113c0
call fcn.10011990
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100377fa
mov esp, ebp
pop ebp
ret