Function at 0x100496ce
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x4c
push ebx
push esi
push str.RenderWbox__
call fcn.1005070a
xor esi, esi
push esi
push 0xffffffffffffffff
call fcn.1002a80b
mov ecx, dword [0x1015448c]
add esp, 0xc
mov ebx, eax
cmp dword [ecx + 0x5e8c0], esi
jne 0x1004996e
test ebx, ebx
je 0x1004996e
mov ecx, dword [0x101d5644]
mov ecx, dword [ecx + 0x3de]
cmp dword [ecx + 0x14], esi
je 0x1004996e
push 9
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x10049734
cmp dword [0x101b8eaf], esi
jne 0x1004996e
mov eax, dword [0x101d565c]
cmp dword [eax], esi
jne 0x1004996e
push ebp
push edi
mov edi, 0x20d4
mov dword [esp + 0x14], 0xbc5
mov ebp, 0x4d78
mov eax, dword [0x101d5644]
mov eax, dword [eax + 0x3de]
mov eax, dword [eax + 0x14]
cmp dword [edi + eax - 0x20d0], 1
jne 0x1004995c
mov eax, dword [edi + eax]
test eax, eax
je 0x1004995c
mov eax, dword [eax + 0x40]
test eax, eax
je 0x1004995c
mov eax, dword [eax + 0x14]
lea ecx, [esp + 0x18]
push ecx
add eax, 0x30
push eax
call fcn.1003fcdf
lea eax, [esp + 0x20]
push eax
call fcn.1003fdd5
add esp, 0xc
test eax, eax
jne 0x1004995c
mov eax, dword [ebx + 0x14]
add eax, 0x30
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.1003fcef
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
comiss xmm0, dword [0x101d007b]
pop ecx
pop ecx
ja 0x1004995c
mov eax, dword [0x101d5644]
mov ecx, 0x7f7
mov eax, dword [eax + 0x3de]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + edi]
mov eax, dword [eax + 0x40]
movzx eax, word [eax + 0x22]
cmp ax, cx
jb 0x10049801
add ecx, 4
cmp ax, cx
jbe 0x1004984c
mov ecx, 0x937
cmp ax, cx
je 0x1004984c
mov ecx, 0x80a
cmp ax, cx
je 0x1004984c
cmp ax, bp
je 0x1004984c
mov ecx, 0xbec
cmp ax, cx
je 0x1004984c
add ecx, 0xffffffdc
cmp ax, cx
je 0x1004984c
mov ecx, 0xbc5
cmp ax, cx
je 0x1004984c
add ecx, 0xffffffd4
cmp ax, cx
je 0x1004984c
mov ecx, 0x936
cmp ax, cx
jne 0x1004995c
movss xmm0, dword [esp + 0x18]
lea eax, [esp + 0x30]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x1c]
push eax
movss dword [esp + 0x2c], xmm0
lea eax, [esp + 0x28]
movss xmm0, dword [esp + 0x24]
push eax
movss dword [esp + 0x34], xmm0
call fcn.100437a2
movss xmm0, dword [0x1007c140]
comiss xmm0, dword [esp + 0x40]
pop ecx
pop ecx
ja 0x1004995c
mov eax, dword [0x101d5644]
mov ebp, 0x924
mov edx, 0x1007b414
mov eax, dword [eax + 0x3de]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + edi]
mov eax, dword [eax + 0x40]
movzx ecx, word [eax + 0x22]
mov eax, str.Shotgun_Ammo
cmp cx, bp
cmove edx, eax
lea eax, [ebp + 1]
mov ebp, 0x4d78
cmp cx, ax
jne 0x100498d5
mov eax, str.Sniper_Ammo
jmp 0x10049910
mov eax, 0x927
cmp cx, ax
jne 0x100498e6
mov eax, str.Assault_Ammo
jmp 0x10049910
cmp cx, bp
jne 0x100498f2
mov eax, str.Shotgun_Ammo_2
jmp 0x10049910
mov eax, 0xbc8
cmp cx, ax
jne 0x10049903
mov eax, str.SMG_Ammo
jmp 0x10049910
cmp cx, word [esp + 0x14]
mov eax, str.SMG_Ammo2
cmovne eax, edx
push eax
push esi
push str.obj:__d__AmmoBox:__s
lea eax, [esp + 0x48]
push 0x1f
push eax
call fcn.100435e3
movss xmm0, dword [esp + 0x48]
lea eax, [esp + 0x50]
subss xmm0, dword [0x100819d8]
add esp, 0x14
push eax
push 0xffffff56
push ecx
push ecx
mov ecx, dword [0x101dd3e4]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x40]
movss dword [esp], xmm0
call fcn.10043103
add edi, 4
inc esi
cmp edi, 0x41a4
jl 0x10049755
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x4c
ret