Function at 0x10014ad0
Capabilities:
Encode data using xor
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008cf40
mov eax, dword fs:[0]
push eax
sub esp, 0x2d0
mov eax, dword [0x100a4040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x2a0], edi
movss dword [ebp - 0x2a4], xmm0
push 0x50
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x10014b29
mov eax, dword [0x100bea8c]
mov dword [eax + 0x174], 0xffffffff
mov eax, dword fs:[0x2c]
mov ecx, dword [0x100be8d8]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x100c08f8]
cmp eax, dword [esi + 4]
jle 0x10014b78
push 0x100c08f8
call fcn.1008a0fd
add esp, 4
cmp dword [0x100c08f8], 0xffffffff
jne 0x10014b78
mov eax, dword [0x100be998]
push 0x100c08f8
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x60]
mov dword [0x100c08fc], eax
call fcn.1008a0ac
add esp, 4
mov ecx, dword [0x100be9f8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x100be9e8]
movzx eax, ax
mov dword [ebp - 0x124], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x124]
cwde
push eax
call edx
mov dword [ebp - 0x2b4], eax
mov dword [0x100beaec], eax
test eax, eax
jne 0x10014bcc
movss xmm0, dword [ebp - 0x2a4]
push edi
push ecx
movss dword [esp], xmm0
call dword [0x100c08fc]
jmp 0x100162da
mov eax, dword [0x100c06fc]
cmp byte [eax], 0
je 0x10014db6
mov eax, dword [0x100bf244]
cmp eax, dword [esi + 4]
jle 0x10014d0a
push 0x100bf244
call fcn.1008a0fd
add esp, 4
cmp dword [0x100bf244], 0xffffffff
jne 0x10014d0a
mov dword [ebp - 4], 0
mov eax, dword [0x100be904]
cmp eax, dword [esi + 4]
jle 0x10014c64
push 0x100be904
call fcn.1008a0fd
add esp, 4
cmp dword [0x100be904], 0xffffffff
jne 0x10014c64
push 0x1008f440
mov dword [0x100be8f8], 0
mov dword [0x100be8fc], 0
mov dword [0x100be900], 0
call fcn.1008a5ab
push 0x100be904
call fcn.1008a0ac
add esp, 8
mov eax, dword [0x100be8fc]
mov esi, dword [0x100be8f8]
mov dword [ebp - 0x2a8], eax
cmp esi, eax
je 0x10014caa
nop dword [eax]
mov eax, dword [esi]
test eax, eax
je 0x10014c9f
push str.DT_CSPlayer
push dword [eax + 0xc]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x10014d31
add esi, 4
cmp esi, dword [ebp - 0x2a8]
jne 0x10014c80
movaps xmm0, xmmword [0x1009a500]
xor ecx, ecx
movups xmmword [ebp - 0x120], xmm0
nop word [eax + eax]
mov al, byte [ebp - 0x120]
xor byte [ebp + ecx - 0x11f], al
inc ecx
cmp ecx, 0xe
jb 0x10014cc0
lea eax, [ebp - 0x11f]
mov byte [ebp - 0x111], 0
push str.m_viewPunchAngle
push eax
call fcn.10002690
add esp, 8
xor esi, esi
push 0x100bf244
mov dword [0x100bf234], esi
mov dword [ebp - 4], 0xffffffff
call fcn.1008a0ac
add esp, 4
mov eax, dword [0x100bf234]
mov esi, dword [ebp - 0x2b4]
mov dword [eax + esi], 0
mov dword [eax + esi + 4], 0
mov dword [eax + esi + 8], 0
jmp 0x10014dbc
mov eax, dword [esi]
test eax, eax
je 0x10014caa
push ecx
push str.m_viewPunchAngle
push eax
mov ecx, 0x100be8f8
call fcn.10078f80
mov esi, eax
test esi, esi
je 0x10014caa
mov cl, 0x76
mov dword [ebp - 0x120], 0x4c055376
mov dword [ebp - 0x11c], 0x530e4656
xor eax, eax
mov dword [ebp - 0x118], 0x7c2e4446
mov byte [ebp - 0x114], 0
nop
xor byte [ebp + eax - 0x11f], cl
inc eax
cmp eax, 0xb
jae 0x10014d95
mov cl, byte [ebp - 0x120]
jmp 0x10014d80
push esi
lea eax, [ebp - 0x11f]
mov byte [ebp - 0x114], 0
push str.m_viewPunchAngle
push eax
call fcn.10002690
add esp, 0xc
jmp 0x10014cf0
mov esi, dword [ebp - 0x2b4]
cmp dword [edi + 4], 0
je 0x10014bb2
mov ecx, esi
call fcn.1000ef50
mov ecx, dword [eax]
mov eax, dword [0x100c0648]
mov dword [ebp - 0x2a8], ecx
cmp byte [eax], 0
je 0x10014dec
mov edx, ecx
mov ecx, esi
push edi
call fcn.10014740
add esp, 4
mov eax, dword [0x100c06d8]
mov dx, word [0x100bf0e4]
cmp byte [eax], 0
je 0x10014e27
test dx, dx
jne 0x10014e16
mov ecx, 0xc2a1c250
call fcn.10002c20
mov dx, ax
mov word [0x100bf0e4], dx
movzx ecx, dx
cmp dword [ecx + esi + 1], 9
je 0x10014e27
or dword [edi + 0x30], 0x8000000
mov eax, dword [0x100c054c]
cmp byte [eax], 0
je 0x10014e5b
test dx, dx
jne 0x10014e4a
mov ecx, 0xc2a1c250
call fcn.10002c20
mov dx, ax
mov word [0x100bf0e4], dx
movzx eax, dx
cmp dword [eax + esi + 1], 9
je 0x10014e5b
xor dword [edi + 0x30], 0x618
mov eax, dword [0x100c0570]
cmp byte [eax], 0
je 0x10014e6c
or dword [edi + 0x30], 0x400000
mov eax, dword [0x100c0504]
cmp byte [eax], 0
je 0x10014ee9
mov ecx, dword [0x100beabc]
push 0x41
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x10014ee9
mov ax, word [0x100bf0e4]
test ax, ax
jne 0x10014ea4
mov ecx, 0xc2a1c250
call fcn.10002c20
mov word [0x100bf0e4], ax
movzx eax, ax
cmp dword [eax + esi + 1], 9
je 0x10014ee9
test byte [ebp - 0x2a8], 1
jne 0x10014ee9
mov eax, dword [edi + 0x30]
test al, 2
je 0x10014ee9
and eax, 0xfffffffd
mov dword [edi + 0x30], eax
mov eax, dword [0x100c0528]
cmp byte [eax], 0
je 0x10014ee9
movzx eax, word [edi + 0x44]
test ax, ax
jns 0x10014ee0
mov dword [edi + 0x28], 0xc3e10000
jmp 0x10014ee9
jle 0x10014ee9
mov dword [edi + 0x28], 0x43e10000
xorps xmm0, xmm0
mov dword [ebp - 0x134], 0
movups xmmword [ebp - 0x144], xmm0
mov dword [ebp - 0x130], 0xf
mov byte [ebp - 0x144], 0
mov dword [ebp - 4], 1
mov eax, dword [0x100c0600]
cmp byte [eax], 0
jne 0x10014f2d
mov eax, dword [0x100c05b8]
cmp byte [eax], 0
je 0x10015a56
mov ecx, dword [0x100be9f8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x10015a56
mov ecx, dword [0x100be9f8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x10015a56
mov eax, dword [0x100c0600]
cmp byte [eax], 0
je 0x1001532c
mov ax, word [0x100be938]
test ax, ax
jne 0x10014f80
mov ecx, 0xa4f40f36
call fcn.10002c20
mov word [0x100be938], ax
movzx eax, ax
cmp dword [eax + esi], 0
jle 0x1001532c
xorps xmm0, xmm0
mov dword [ebp - 0x114], 0
movq qword [ebp - 0x11c], xmm0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0
mov byte [ebp - 4], 2
mov esi, 1
mov ecx, dword [0x100be9f8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x50]
call eax
inc eax
cmp eax, esi
jle 0x100151f6
nop
cmp si, word [ebp - 0x124]
je 0x100151dc
mov ecx, dword [0x100be9e8]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
movsx eax, si
push eax
call edx
mov dword [ebp - 0x2b8], eax
test eax, eax
je 0x100151dc
mov ax, word [0x100bf268]
test ax, ax
jne 0x10015027
mov ecx, 0x19222c70
call fcn.10002c20
mov word [0x100bf268], ax
mov ecx, dword [ebp - 0x2b8]
movzx eax, ax
cmp dword [eax + ecx], 2
jne 0x100151dc
mov ax, word [0x100be938]
test ax, ax
jne 0x1001505b
mov ecx, 0xa4f40f36
call fcn.10002c20
mov ecx, dword [ebp - 0x2b8]
mov word [0x100be938], ax
movzx eax, ax
cmp dword [eax + ecx], 1
jge 0x100151dc
mov ecx, dword fs:[0x2c]
mov edi, dword [0x100be8d8]
mov eax, dword [0x100bf218]
mov edx, dword [ecx + edi*4]
mov edi, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x2b8]
cmp eax, dword [edx + 4]
jle 0x100150dd
push 0x100bf218
call fcn.1008a0fd
add esp, 4
cmp dword [0x100bf218], 0xffffffff
jne 0x100150d7
mov byte [ebp - 4], 3
call fcn.1000b670
push str.m_hObserverTarget
push str.DT_BasePlayer
mov ecx, eax
call fcn.10078eb0
push 0x100bf218
mov dword [0x100bf0c0], eax
mov byte [ebp - 4], 2
call fcn.1008a0ac
add esp, 4
mov ecx, dword [ebp - 0x2b8]
mov eax, dword [0x100bf0c0]
mov edx, dword [ebp - 0x124]
cmp word [eax + ecx], dx
jne 0x100151dc
mov ecx, dword [0x100be9f8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x20]
lea eax, [ebp - 0x29c]
push eax
movsx eax, si
push eax
call edx
xorps xmm0, xmm0
mov dword [ebp - 0x2c8], 0
lea ecx, [ebp - 0x28c]
mov dword [ebp - 0x2c4], 0
movups xmmword [ebp - 0x2d8], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10015131
sub ecx, edx
lea eax, [ebp - 0x28c]
push ecx
push eax
lea ecx, [ebp - 0x2d8]
call fcn.1000bcd0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x118]
cmp eax, dword [ebp - 0x114]
je 0x1001518b
movups xmm0, xmmword [ebp - 0x2d8]
mov ecx, 0xf
mov byte [ebp - 0x2d8], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x2c8]
movq qword [eax + 0x10], xmm0
add dword [ebp - 0x118], 0x18
jmp 0x100151a4
lea ecx, [ebp - 0x2d8]
push ecx
push eax
lea ecx, [ebp - 0x11c]
call fcn.10027940
mov ecx, dword [ebp - 0x2c4]
mov byte [ebp - 4], 2
cmp ecx, 0xf
jbe 0x100151dc
mov edx, dword [ebp - 0x2d8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100151d2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10015a40
push ecx
push edx
call fcn.1008a5c0
add esp, 8
mov ecx, dword [0x100be9f8]
inc esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x50]
call eax
inc eax
movsx ecx, si
cmp ecx, eax
jl 0x10014fe0
mov eax, dword [ebp - 0x11c]
cmp eax, dword [ebp - 0x118]
je 0x1001531d
mov edx, dword [ebp - 0x130]
mov eax, edx
mov ecx, dword [ebp - 0x134]
sub eax, ecx
push 0xb
push str.Spectators:
cmp eax, 0xb
jb 0x1001524e
cmp edx, 0xf
lea esi, [ebp - 0x144]
lea eax, [ecx + 0xb]
cmova esi, dword [ebp - 0x144]
add esi, ecx
mov dword [ebp - 0x134], eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 0xb], 0
jmp 0x10015268
mov byte [ebp - 0x2a0], 0
lea ecx, [ebp - 0x144]
push dword [ebp - 0x2a0]
push 0xb
call fcn.10026d90
mov eax, dword [ebp - 0x118]
mov esi, dword [ebp - 0x11c]
mov dword [ebp - 0x2a0], eax
cmp esi, eax
je 0x1001531d
mov ecx, dword [esi + 0x10]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 1
jb 0x100162f5
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x1001529f
mov eax, dword [esi]
push ecx
push eax
push 1
push 0x100977a8
push ecx
push dword [ebp - 0x2a0]
lea ecx, [ebp - 0x2d8]
call fcn.10026f00
lea eax, [ebp - 0x2d8]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x144]
call fcn.100259c0
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x2c4]
cmp ecx, 0xf
jbe 0x1001530e
mov edx, dword [ebp - 0x2d8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10015304
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10015a40
push ecx
push edx
call fcn.1008a5c0
add esp, 8
add esi, 0x18
cmp esi, dword [ebp - 0x2a0]
jne 0x10015282
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 1
call fcn.1000ba10
mov eax, dword [0x100c05b8]
cmp byte [eax], 0
je 0x1001595b
mov eax, dword [0x100bead4]
mov eax, dword [eax]
mov dword [ebp - 0x2a4], eax
test eax, eax
je 0x1001595b
mov eax, dword fs:[0x2c]
mov ecx, dword [0x100be8d8]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x100bf20c]
cmp eax, dword [esi + 4]
jle 0x10015487
push 0x100bf20c
call fcn.1008a0fd
add esp, 4
cmp dword [0x100bf20c], 0xffffffff
jne 0x10015487
mov byte [ebp - 4], 6
mov eax, dword [0x100be904]
cmp eax, dword [esi + 4]
jle 0x100153e5
push 0x100be904
call fcn.1008a0fd
add esp, 4
cmp dword [0x100be904], 0xffffffff
jne 0x100153e5
push 0x1008f440
mov dword [0x100be8f8], 0
mov dword [0x100be8fc], 0
mov dword [0x100be900], 0
call fcn.1008a5ab
push 0x100be904
call fcn.1008a0ac
add esp, 8
mov eax, dword [0x100be8fc]
mov esi, dword [0x100be8f8]
mov dword [ebp - 0x2a0], eax
cmp esi, eax
je 0x1001542a
nop word [eax + eax]
mov eax, dword [esi]
test eax, eax
je 0x1001541f
push str.DT_CSGameRulesProxy
push dword [eax + 0xc]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x10015725
add esi, 4
cmp esi, dword [ebp - 0x2a0]
jne 0x10015400
movaps xmm0, xmmword [0x1009a500]
xor ecx, ecx
movups xmmword [ebp - 0x120], xmm0
nop word [eax + eax]
mov al, byte [ebp - 0x120]
xor byte [ebp + ecx - 0x11f], al
inc ecx
cmp ecx, 0xe
jb 0x10015440
lea eax, [ebp - 0x11f]
mov byte [ebp - 0x111], 0
push str.m_bBombPlanted
push eax
call fcn.10002690
add esp, 8
xor esi, esi
push 0x100bf20c
mov dword [0x100bf22c], esi
mov byte [ebp - 4], 1
call fcn.1008a0ac
add esp, 4
mov eax, dword [0x100bf22c]
mov ecx, dword [ebp - 0x2a4]
mov al, byte [eax + ecx]
test al, al
je 0x10015948
mov ecx, dword [ebp - 0x2b4]
call fcn.1000eff0
mov esi, dword [0x100be9a0]
mov eax, dword [eax]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1009ac80]
mov eax, dword [0x100bea4c]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
movss dword [ebp - 0x2b8], xmm0
test esi, esi
jne 0x10015605
mov ecx, dword [0x100be9f8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x50]
call eax
mov ecx, dword [0x100be9e8]
lea esi, [eax + 1]
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
call edx
inc eax
cmp esi, eax
jg 0x100155f7
mov eax, dword fs:[0x2c]
mov ecx, dword [0x100be8d8]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x124], eax
nop dword [eax]
mov ecx, dword [0x100be9e8]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [ebp - 0x2a4], eax
test eax, eax
je 0x100155e0
mov edx, dword [eax + 8]
lea ecx, [eax + 8]
mov edx, dword [edx + 8]
call edx
push str.CPlantedC4
push dword [eax + 8]
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsstr]
add esp, 8
test eax, eax
je 0x100155e0
mov edx, dword [ebp - 0x124]
mov eax, dword [0x100bf1e8]
cmp eax, dword [edx + 4]
jle 0x100155bf
push 0x100bf1e8
call fcn.1008a0fd
add esp, 4
cmp dword [0x100bf1e8], 0xffffffff
jne 0x100155b9
mov byte [ebp - 4], 7
call fcn.1000b670
push str.m_flC4Blow
push str.DT_PlantedC4
mov ecx, eax
call fcn.10078eb0
push 0x100bf1e8
mov dword [0x100bf0d0], eax
mov byte [ebp - 4], 1
call fcn.1008a0ac
add esp, 4
mov edx, dword [ebp - 0x124]
mov eax, dword [0x100bf0d0]
mov ecx, dword [ebp - 0x2a4]
movss xmm1, dword [ebp - 0x2b8]
movss xmm0, dword [eax + ecx]
comiss xmm0, xmm1
ja 0x100157a9
mov ecx, dword [0x100be9e8]
inc esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
inc eax
cmp esi, eax
jle 0x10015520
mov esi, dword [0x100be9a0]
test esi, esi
je 0x1001595b
mov ecx, dword [0x100be9e8]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [0x100be8d8]
mov esi, eax
mov eax, dword fs:[0x2c]
mov edx, dword [eax + ecx*4]
mov ecx, dword [0x100bf1e8]
cmp ecx, dword [edx + 4]
jle 0x10015678
push 0x100bf1e8
call fcn.1008a0fd
add esp, 4
cmp dword [0x100bf1e8], 0xffffffff
jne 0x10015678
mov byte [ebp - 4], 9
call fcn.1000b670
push str.m_flC4Blow
push str.DT_PlantedC4
mov ecx, eax
call fcn.10078eb0
push 0x100bf1e8
mov dword [0x100bf0d0], eax
mov byte [ebp - 4], 1
call fcn.1008a0ac
add esp, 4
mov eax, dword [0x100bf0d0]
push 0xff
push 0
movss xmm0, dword [eax + esi]
lea eax, [ebp - 0x10f]
addss xmm0, dword [0x1009a1b4]
push eax
mov byte [ebp - 0x110], 0
movss dword [ebp - 0x2a0], xmm0
call sub.VCRUNTIME140.dll_memset
movss xmm0, dword [ebp - 0x2a0]
lea eax, [ebp - 0x110]
subss xmm0, dword [ebp - 0x2b8]
add esp, 4
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.C4_explodes_in__font_color_ff0000___.1f__font_s
push pe_nt_image_headers32
push eax
call fcn.1000d1d0
mov edx, dword [ebp - 0x134]
add esp, 0x14
test edx, edx
je 0x100158c1
mov ecx, dword [ebp - 0x130]
mov eax, ecx
sub eax, edx
cmp eax, 1
jb 0x1001589a
lea eax, [edx + 1]
cmp ecx, 0xf
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x144]
cmova eax, dword [ebp - 0x144]
mov word [eax + edx], 0xa
jmp 0x100158bb
mov eax, dword [esi]
test eax, eax
je 0x1001542a
push ecx
push str.m_bBombPlanted
push eax
mov ecx, 0x100be8f8
call fcn.10078f80
mov esi, eax
test esi, esi
je 0x1001542a
mov cl, 0x76
mov dword [ebp - 0x120], 0x4c055376
mov dword [ebp - 0x11c], 0x530e4656
xor eax, eax
mov dword [ebp - 0x118], 0x7c2e4446
mov byte [ebp - 0x114], 0
xor byte [ebp + eax - 0x11f], cl
inc eax
cmp eax, 0xb
jae 0x10015788
mov cl, byte [ebp - 0x120]
jmp 0x10015773
push esi
lea eax, [ebp - 0x11f]
mov byte [ebp - 0x114], 0
push str.m_bBombPlanted
push eax
call fcn.10002690
add esp, 0xc
jmp 0x10015470
mov eax, dword [0x100bf1e8]
cmp eax, dword [edx + 4]
jle 0x1001580a
push 0x100bf1e8
call fcn.1008a0fd
add esp, 4
cmp dword [0x100bf1e8], 0xffffffff
jne 0x100157fc
mov byte [ebp - 4], 8
call fcn.1000b670
push str.m_flC4Blow
push str.DT_PlantedC4
mov ecx, eax
call fcn.10078eb0
push 0x100bf1e8
mov dword [0x100bf0d0], eax
mov byte [ebp - 4], 1
call fcn.1008a0ac
add esp, 4
mov ecx, dword [ebp - 0x2a4]
movss xmm1, dword [ebp - 0x2b8]
mov eax, dword [0x100bf0d0]
movaps xmm0, xmmword [0x1009ad80]
movss xmm2, dword [eax + ecx]
xor ecx, ecx
cvtps2pd xmm2, xmm2
mov dword [ebp - 0x2cc], 0x5e1a5b5e
mov dword [ebp - 0x2c8], 0x5e185b56
mov dword [ebp - 0x2c4], 0x7457185b
mov byte [ebp - 0x2c0], 0
movups xmmword [ebp - 0x2dc], xmm0
nop dword [eax]
mov al, byte [ebp - 0x2dc]
xor byte [ebp + ecx - 0x2db], al
inc ecx
cmp ecx, 0x1b
jb 0x10015850
xorps xmm0, xmm0
mov byte [ebp - 0x2c0], 0
sub esp, 0x10
lea eax, [ebp - 0x2db]
cvtss2sd xmm0, xmm1
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm0
push esi
push eax
call fcn.10002690
add esp, 0x18
mov dword [0x100be9a0], esi
jmp 0x100155fd
push 1
push 0x1009762c
mov byte [ebp - 0x2a0], 0
lea ecx, [ebp - 0x144]
push dword [ebp - 0x2a0]
push 1
call fcn.10026d90
mov edx, dword [ebp - 0x134]
lea ecx, [ebp - 0x110]
lea esi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100158d0
sub ecx, esi
mov esi, dword [ebp - 0x130]
mov eax, esi
mov dword [ebp - 0x2a0], ecx
sub eax, edx
push ecx
cmp ecx, eax
ja 0x10015926
lea eax, [edx + ecx]
cmp esi, 0xf
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x144]
cmova eax, dword [ebp - 0x144]
lea esi, [eax + edx]
lea eax, [ebp - 0x110]
push eax
push esi
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x2a0]
add esp, 0xc
mov byte [esi + eax], 0
jmp 0x1001595b
lea eax, [ebp - 0x110]
mov byte [ebp - 0x2a0], 0
push eax
push dword [ebp - 0x2a0]
push ecx
lea ecx, [ebp - 0x144]
call fcn.10026d90
jmp 0x1001595b
cmp dword [0x100be9a0], 0
je 0x1001595b
mov dword [0x100be9a0], 0
cmp dword [ebp - 0x134], 0
je 0x10015a50
lea eax, [ebp - 0x144]
push eax
lea ecx, [ebp - 0x2d8]
call fcn.1000b8c0
mov byte [ebp - 4], 0xa
cmp dword [0x100bea08], 0
je 0x10015a10
push 0xfc
lea eax, [ebp - 0x240]
mov dword [ebp - 0x244], 0x1a0408
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x2c8]
lea ecx, [ebp - 0x2d8]
cmp dword [ebp - 0x2c4], 0xf
movzx esi, al
cmova ecx, dword [ebp - 0x2d8]
push esi
mov byte [ebp - 0x241], al
lea eax, [ebp - 0x240]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [0x100bea08]
add esp, 0x18
mov dword [ebp + esi - 0x240], 0x1a001a
mov dword [ebp + esi - 0x23c], 0x1a001a
mov eax, dword [eax]
mov ecx, dword [eax + 0x98]
lea eax, [ebp - 0x244]
push eax
lea eax, [esi + 0xc]
push eax
push 0
push 7
call ecx
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x2c4]
cmp ecx, 0xf
jbe 0x10015a50
mov edx, dword [ebp - 0x2d8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10015a46
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10015a46
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1008a5c0
add esp, 8
mov esi, dword [ebp - 0x2b4]
mov eax, dword [0x100c05dc]
cmp byte [eax], 0
je 0x10015ae3
mov edx, esi
mov ecx, edi
call fcn.100144d0
mov ecx, esi
call fcn.1000ef50
test dword [ebp - 0x2a8], 0x40001
je 0x10015a99
test dword [eax], 0x40001
jne 0x10015a99
push 0x43
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x10015a99
or dword [edi + 0x30], 6
mov ecx, dword [0x100beae0]
push esi
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [0x100beadc]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov eax, dword [0x100c0910]
movss xmm0, dword [0x100c0908]
mov dword [eax], 0xffffffff
mov eax, dword [0x100bea4c]
movss dword [eax + 0x10], xmm0
mov eax, dword [0x100bea4c]
movss xmm0, dword [0x100c090c]
movss dword [eax + 0x14], xmm0
mov eax, dword [0x100c06b4]
cmp byte [eax], 0
je 0x10015e5b
mov eax, dword [0x100be9e8]
mov ecx, dword [0x100be8d8]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x2a8], eax
mov eax, dword fs:[0x2c]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x100bf248]
cmp eax, dword [esi + 4]
jle 0x10015c37
push 0x100bf248
call fcn.1008a0fd
add esp, 4
cmp dword [0x100bf248], 0xffffffff
jne 0x10015c37
mov byte [ebp - 4], 0xb
mov eax, dword [0x100be904]
cmp eax, dword [esi + 4]
jle 0x10015b97
push 0x100be904
call fcn.1008a0fd
add esp, 4
cmp dword [0x100be904], 0xffffffff
jne 0x10015b97
push 0x1008f440
mov dword [0x100be8f8], 0
mov dword [0x100be8fc], 0
mov dword [0x100be900], 0
call fcn.1008a5ab
push 0x100be904
call fcn.1008a0ac
add esp, 8
mov eax, dword [0x100be8fc]
mov esi, dword [0x100be8f8]
mov dword [ebp - 0x2a0], eax
cmp esi, eax
je 0x10015bda
nop dword [eax]
mov eax, dword [esi]
test eax, eax
je 0x10015bcf
push str.DT_BasePlayer
push dword [eax + 0xc]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x10015f03
add esi, 4
cmp esi, dword [ebp - 0x2a0]
jne 0x10015bb0
movaps xmm0, xmmword [0x1009a500]
xor ecx, ecx
movups xmmword [ebp - 0x120], xmm0
nop word [eax + eax]
mov al, byte [ebp - 0x120]
xor byte [ebp + ecx - 0x11f], al
inc ecx
cmp ecx, 0xe
jb 0x10015bf0
lea eax, [ebp - 0x11f]
mov byte [ebp - 0x111], 0
push str.m_hGroundEntity
push eax
call fcn.10002690
add esp, 8
xor esi, esi
push 0x100bf248
mov dword [0x100bf258], esi
mov byte [ebp - 4], 1
call fcn.1008a0ac
add esp, 4
mov eax, dword [0x100bf258]
mov ecx, dword [ebp - 0x2b4]
mov ecx, dword [eax + ecx]
push ecx
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [0x100be9e8]
call dword [ebp - 0x2a8]
mov esi, eax
test esi, esi
je 0x10015e5b
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
mov eax, dword [eax + 8]
call eax
push str.CCSPlayer
push dword [eax + 8]
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsstr]
add esp, 8
test eax, eax
je 0x10015e5b
mov ecx, dword [0x100be9f8]
lea edx, [ebp - 0x12c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x48]
mov ecx, dword [ebp - 0x2b4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov ecx, esi
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x114], eax
mov eax, dword [esi]
movq qword [ebp - 0x11c], xmm0
mov eax, dword [eax + 0x28]
call eax
movss xmm1, dword [ebp - 0x128]
cvtps2pd xmm1, xmm1
mov dword [ebp - 0x2a4], 0x43e10000
mov dword [ebp - 0x2a0], 0xc3e10000
movq xmm0, qword [eax]
mulsd xmm1, qword [0x1009a1f8]
mov eax, dword [eax + 8]
movq qword [ebp - 0x2b0], xmm0
movss xmm0, dword [ebp - 0x118]
subss xmm0, dword [ebp - 0x2ac]
divsd xmm1, qword [0x1009a238]
mov dword [ebp - 0x2a8], eax
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x128], xmm1
movsd qword [ebp - 0x2bc], xmm0
movss xmm0, dword [ebp - 0x11c]
subss xmm0, dword [ebp - 0x2b0]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x118], xmm0
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
mulsd xmm0, qword [ebp - 0x118]
movsd qword [ebp - 0x2ac], xmm0
movsd xmm0, qword [ebp - 0x128]
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
mulsd xmm0, qword [ebp - 0x2bc]
lea eax, [ebp - 0x2a8]
lea ecx, [ebp - 0x2a0]
movsd xmm1, qword [ebp - 0x2ac]
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss xmm1, dword [0x1009a3bc]
xorps xmm0, xmmword [0x1009b100]
mulss xmm0, dword [0x1009a29c]
comiss xmm1, xmm0
movss dword [ebp - 0x2a8], xmm0
cmovbe ecx, eax
lea eax, [ebp - 0x2a4]
comiss xmm0, dword [0x1009a320]
movsd xmm0, qword [ebp - 0x128]
cmovbe eax, ecx
mov eax, dword [eax]
mov dword [edi + 0x24], eax
mov dword [ebp - 0x2a4], 0x43e10000
mov dword [ebp - 0x2a0], 0xc3e10000
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
mulsd xmm0, qword [ebp - 0x2bc]
movsd qword [ebp - 0x2ac], xmm0
movsd xmm0, qword [ebp - 0x128]
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
mulsd xmm0, qword [ebp - 0x118]
lea eax, [ebp - 0x2a8]
lea ecx, [ebp - 0x2a0]
movsd xmm1, qword [ebp - 0x2ac]
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss xmm1, dword [0x1009a3bc]
mulss xmm0, dword [0x1009a29c]
comiss xmm1, xmm0
movss dword [ebp - 0x2a8], xmm0
cmovbe ecx, eax
lea eax, [ebp - 0x2a4]
comiss xmm0, dword [0x1009a320]
cmovbe eax, ecx
mov eax, dword [eax]
mov dword [edi + 0x28], eax
mov eax, dword [0x100c06fc]
cmp byte [eax], 0
je 0x1001601d
mov ecx, dword [ebp - 0x2b4]
call fcn.10002f00
mov ecx, dword [0x100be9f8]
lea edx, [ebp - 0x12c]
push edx
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x2a8], eax
mov eax, dword [ecx]
movq qword [ebp - 0x2b0], xmm0
call dword [eax + 0x48]
movss xmm0, dword [ebp - 0x2b0]
mulss xmm0, dword [0x1009a1e8]
movss xmm2, dword [ebp - 0x12c]
movss xmm1, dword [ebp - 0x128]
subss xmm2, xmm0
movss xmm0, dword [ebp - 0x2ac]
mulss xmm0, dword [0x1009a1e8]
subss xmm1, xmm0
movss dword [ebp - 0x11c], xmm2
movss xmm0, dword [0x1009a3a4]
comiss xmm0, xmm2
movss dword [ebp - 0x118], xmm1
jbe 0x10015f87
mov dword [ebp - 0x11c], 0xc2b20000
jmp 0x10015f9a
mov eax, dword [esi]
test eax, eax
je 0x10015bda
push ecx
push str.m_hGroundEntity
push eax
mov ecx, 0x100be8f8
call fcn.10078f80
mov esi, eax
test esi, esi
je 0x10015bda
mov cl, 0x76
mov dword [ebp - 0x120], 0x4c055376
mov dword [ebp - 0x11c], 0x530e4656
xor eax, eax
mov dword [ebp - 0x118], 0x7c2e4446
mov byte [ebp - 0x114], 0
xor byte [ebp + eax - 0x11f], cl
inc eax
cmp eax, 0xb
jae 0x10015f66
mov cl, byte [ebp - 0x120]
jmp 0x10015f51
push esi
lea eax, [ebp - 0x11f]
mov byte [ebp - 0x114], 0
push str.m_hGroundEntity
push eax
call fcn.10002690
add esp, 0xc
jmp 0x10015c20
comiss xmm2, dword [0x1009a2c4]
jbe 0x10015f9a
mov dword [ebp - 0x11c], 0x42b20000
movss xmm2, dword [0x1009a3b0]
comiss xmm2, xmm1
movss xmm0, dword [0x1009a30c]
jbe 0x10015fc1
nop
addss xmm1, xmm0
comiss xmm2, xmm1
ja 0x10015fb0
movss dword [ebp - 0x118], xmm1
movss xmm2, dword [0x1009a2f0]
comiss xmm1, xmm2
jbe 0x10015fe1
nop
subss xmm1, xmm0
comiss xmm1, xmm2
ja 0x10015fd0
movss dword [ebp - 0x118], xmm1
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x114], 0
call fcn.10002760
movss xmm0, dword [ebp - 0x11c]
movss dword [edi + 0xc], xmm0
movss xmm0, dword [ebp - 0x118]
movss dword [edi + 0x10], xmm0
movss xmm0, dword [ebp - 0x114]
movss dword [edi + 0x14], xmm0
mov eax, dword [0x100c07b0]
mov ecx, dword [eax]
test ecx, ecx
je 0x1001603a
mov eax, dword [0x100bea8c]
cmp dword [eax + 0x4d30], ecx
setge byte [0x100a41c8]
mov eax, dword [0x100c0840]
cmp byte [eax], 0
je 0x10016068
mov eax, dword [0x100c0888]
cmp byte [eax], 0
jne 0x10016061
mov ecx, dword [0x100beabc]
push 0x6b
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x10016068
mov ecx, edi
call fcn.1000a3b0
movss xmm0, dword [edi + 0xc]
movss xmm1, dword [0x1009a3a4]
comiss xmm1, xmm0
jbe 0x10016084
mov dword [edi + 0xc], 0xc2b20000
movaps xmm0, xmm1
comiss xmm0, dword [0x1009a2c4]
jbe 0x10016094
mov dword [edi + 0xc], 0x42b20000
movss xmm0, dword [edi + 0x10]
movss xmm2, dword [0x1009a3b0]
comiss xmm2, xmm0
movss xmm1, dword [0x1009a30c]
jbe 0x100160be
nop
addss xmm0, xmm1
comiss xmm2, xmm0
movss dword [edi + 0x10], xmm0
ja 0x100160b0
movss xmm2, dword [0x1009a2f0]
comiss xmm0, xmm2
jbe 0x100160de
nop dword [eax + eax]
subss xmm0, xmm1
comiss xmm0, xmm2
movss dword [edi + 0x10], xmm0
ja 0x100160d0
lea esi, [edi + 0x14]
mov dword [esi], 0
movss xmm0, dword [edi + 0xc]
movss dword [ebp - 0x2a0], xmm0
fld dword [ebp - 0x2a0]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jg 0x10016139
movss xmm0, dword [edi + 0xc]
sub esp, 8
mov dword [esp + 4], 0x43b40000
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
fstp dword [ebp - 0x2a0]
movss xmm0, dword [ebp - 0x2a0]
add esp, 8
jmp 0x1001613c
xorps xmm0, xmm0
movss dword [edi + 0xc], xmm0
movss xmm0, dword [edi + 0x10]
movss dword [ebp - 0x2a0], xmm0
fld dword [ebp - 0x2a0]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jg 0x10016193
movss xmm0, dword [edi + 0x10]
sub esp, 8
mov dword [esp + 4], 0x43b40000
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
fstp dword [ebp - 0x2a0]
movss xmm0, dword [ebp - 0x2a0]
add esp, 8
jmp 0x10016196
xorps xmm0, xmm0
movss dword [edi + 0x10], xmm0
lea ecx, [ebp - 0x2a0]
movss xmm1, dword [esi]
lea eax, [ebp - 0x2a8]
movss xmm0, dword [0x1009a3a0]
lea edx, [edi + 0x24]
comiss xmm0, xmm1
mov dword [ebp - 0x2a8], 0x42480000
mov dword [ebp - 0x2a0], 0xc2480000
cmovbe ecx, esi
comiss xmm1, dword [0x1009a2a4]
movss xmm1, dword [0x1009a3bc]
cmovbe eax, ecx
lea ecx, [ebp - 0x2a0]
mov eax, dword [eax]
mov dword [esi], eax
lea eax, [ebp - 0x2a8]
movss xmm0, dword [edx]
comiss xmm1, xmm0
mov dword [ebp - 0x2a8], 0x43e10000
mov dword [ebp - 0x2a0], 0xc3e10000
cmovbe ecx, edx
comiss xmm0, dword [0x1009a320]
cmovbe eax, ecx
lea ecx, [ebp - 0x2a0]
mov eax, dword [eax]
mov dword [edx], eax
lea edx, [edi + 0x28]
movss xmm0, dword [edx]
lea eax, [ebp - 0x2a8]
comiss xmm1, xmm0
mov dword [ebp - 0x2a8], 0x43e10000
mov dword [ebp - 0x2a0], 0xc3e10000
cmovbe ecx, edx
comiss xmm0, dword [0x1009a320]
movss xmm0, dword [0x1009a3b8]
cmovbe eax, ecx
lea ecx, [ebp - 0x2a0]
mov eax, dword [eax]
mov dword [edx], eax
lea edx, [edi + 0x2c]
movss xmm1, dword [edx]
lea eax, [ebp - 0x2a8]
comiss xmm0, xmm1
mov dword [ebp - 0x2a8], 0x43a00000
mov dword [ebp - 0x2a0], 0xc3a00000
cmovbe ecx, edx
comiss xmm1, dword [0x1009a304]
cmovbe eax, ecx
mov ecx, dword [ebp - 0x130]
mov eax, dword [eax]
mov dword [edx], eax
cmp ecx, 0xf
jbe 0x100162d8
mov edx, dword [ebp - 0x144]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100162ce
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100162ce
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1008a5c0
add esp, 8
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1008a073
mov esp, ebp
pop ebp
ret
call fcn.10002870
int3