Function at 0x10099100
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3050
call fcn.10104a70
mov eax, dword [0x10269840]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x3024], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x3018], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x3014], eax
mov eax, dword [ebp + 0x24]
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x3010], eax
mov eax, dword [0x102699d4]
push esi
mov esi, dword [ebp + 0x14]
push edi
cmp dword [eax], 0
mov edi, ecx
mov dword [ebp - 0x301c], ebx
mov dword [ebp - 0x3020], esi
je 0x10099c62
mov ecx, dword [0x10269974]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x10099c62
mov ecx, dword [ebx + 0x250]
test ecx, ecx
je 0x1009918e
mov eax, dword [ecx]
mov eax, dword [eax]
call eax
cmp dword [eax + 4], 0x776f6c67
jmp 0x100991a0
mov eax, dword [ebx + 0x260]
cmp eax, 2
je 0x10099c62
cmp eax, 4
je 0x10099c62
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0x10099c62
cmp dword [esi], 0
je 0x10099c62
cmp byte [edi + 0x334], 0
jne 0x10099c62
add ebx, 0xfffffffc
je 0x10099c62
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
mov eax, dword [eax + 8]
call eax
mov dword [ebp - 0x3050], eax
test eax, eax
je 0x10099c62
mov ecx, dword [0x1026a064]
test cl, 1
jne 0x10099286
mov esi, dword [0x10269968]
or ecx, 1
push 0x17
mov dword [0x1026a064], ecx
lea ecx, [ebp - 0x303c]
vpxor xmm0, xmm0, xmm0
push str.CBaseEntity__moveparent
vmovdqu xmmword [ebp - 0x303c], xmm0
mov dword [ebp - 0x302c], 0
mov dword [ebp - 0x3028], 0
call fcn.10002ab0
lea eax, [ebp - 0x303c]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [ebp - 0x3028]
mov dword [0x1026a060], eax
cmp ecx, 0xf
jbe 0x10099286
mov edx, dword [ebp - 0x303c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009927c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1009978b
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x1026a060]
mov ecx, dword [0x10269978]
mov eax, dword [eax + 4]
mov edx, dword [ebx + eax]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
mov dword [ebp - 0x3044], eax
test eax, eax
je 0x100992d0
mov ecx, dword [eax + 8]
lea esi, [eax + 8]
mov edx, dword [ecx + 0x28]
mov ecx, esi
call edx
cmp eax, 1
jl 0x100992d0
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x28]
call eax
mov byte [ebp - 0x3009], 1
cmp eax, 0x40
jle 0x100992d7
mov byte [ebp - 0x3009], 0
cmp byte [edi + 0x210], 0
mov eax, dword [ebp - 0x3020]
mov eax, dword [eax]
mov eax, dword [eax + 0x1a]
mov dword [ebp - 0x304c], eax
je 0x10099608
cmp eax, 0x79616c70
jne 0x10099477
mov eax, dword [0x10269df0]
test al, 1
jne 0x10099399
or dword [0x10269df0], 1
lea ecx, [ebp - 0x303c]
mov esi, dword [0x10269968]
push 0x17
vpxor xmm0, xmm0, xmm0
push str.CBaseEntity__m_iTeamNum
vmovdqu xmmword [ebp - 0x303c], xmm0
mov dword [ebp - 0x302c], 0
mov dword [ebp - 0x3028], 0
call fcn.10002ab0
lea eax, [ebp - 0x303c]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [ebp - 0x3028]
mov dword [0x10269dec], eax
cmp ecx, 0xf
jbe 0x10099399
mov edx, dword [ebp - 0x303c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009938f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1009978b
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269dec]
mov eax, dword [eax + 4]
add eax, ebx
mov dword [ebp - 0x3048], eax
mov eax, dword [0x102699d4]
mov eax, dword [eax]
mov dword [ebp - 0x3040], eax
mov eax, dword [0x10269df0]
test al, 1
jne 0x1009944f
or dword [0x10269df0], 1
lea ecx, [ebp - 0x303c]
mov esi, dword [0x10269968]
push 0x17
vpxor xmm0, xmm0, xmm0
push str.CBaseEntity__m_iTeamNum
vmovdqu xmmword [ebp - 0x303c], xmm0
mov dword [ebp - 0x302c], 0
mov dword [ebp - 0x3028], 0
call fcn.10002ab0
lea eax, [ebp - 0x303c]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [ebp - 0x3028]
mov dword [0x10269dec], eax
cmp ecx, 0xf
jbe 0x1009944f
mov edx, dword [ebp - 0x303c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10099445
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1009978b
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269dec]
mov edx, dword [ebp - 0x3040]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x3048]
mov eax, dword [eax]
cmp eax, dword [edx + ecx]
jne 0x10099477
mov eax, dword [0x102699d4]
cmp ebx, dword [eax]
jne 0x1009995b
mov cl, byte [ebp - 0x3009]
test cl, cl
je 0x1009960e
mov eax, dword [0x10269df0]
test al, 1
jne 0x1009951e
or dword [0x10269df0], 1
lea ecx, [ebp - 0x303c]
mov esi, dword [0x10269968]
push 0x17
vpxor xmm0, xmm0, xmm0
push str.CBaseEntity__m_iTeamNum
vmovdqu xmmword [ebp - 0x303c], xmm0
mov dword [ebp - 0x302c], 0
mov dword [ebp - 0x3028], 0
call fcn.10002ab0
lea eax, [ebp - 0x303c]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [ebp - 0x3028]
mov dword [0x10269dec], eax
cmp ecx, 0xf
jbe 0x1009951e
mov edx, dword [ebp - 0x303c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10099514
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1009978b
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269dec]
mov esi, dword [ebp - 0x3044]
mov eax, dword [eax + 4]
add eax, esi
mov dword [ebp - 0x3040], eax
mov eax, dword [0x102699d4]
mov eax, dword [eax]
mov dword [ebp - 0x3048], eax
mov eax, dword [0x10269df0]
test al, 1
jne 0x100995e0
or dword [0x10269df0], 1
lea ecx, [ebp - 0x303c]
mov esi, dword [0x10269968]
push 0x17
vpxor xmm0, xmm0, xmm0
push str.CBaseEntity__m_iTeamNum
vmovdqu xmmword [ebp - 0x303c], xmm0
mov dword [ebp - 0x302c], 0
mov dword [ebp - 0x3028], 0
call fcn.10002ab0
lea eax, [ebp - 0x303c]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [ebp - 0x3028]
mov dword [0x10269dec], eax
cmp ecx, 0xf
jbe 0x100995da
mov edx, dword [ebp - 0x303c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100995d0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1009978b
push ecx
push edx
call fcn.101041cb
add esp, 8
mov esi, dword [ebp - 0x3044]
mov eax, dword [0x10269dec]
mov edx, dword [ebp - 0x3048]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x3040]
mov eax, dword [eax]
cmp eax, dword [edx + ecx]
jne 0x10099608
mov eax, dword [0x102699d4]
cmp esi, dword [eax]
jne 0x1009995b
mov cl, byte [ebp - 0x3009]
cmp byte [edi + 0x211], 0
mov eax, dword [ebp - 0x3050]
je 0x10099627
cmp dword [eax + 0x14], 0x2a
je 0x1009995b
cmp dword [ebp - 0x304c], 0x79616c70
jne 0x10099b69
cmp byte [edi + 0xb7], 0
jne 0x1009964a
cmp dword [eax + 0x14], 0x2a
je 0x10099c62
mov eax, dword [0x10269df0]
test al, 1
jne 0x100996e3
or dword [0x10269df0], 1
lea ecx, [ebp - 0x303c]
mov esi, dword [0x10269968]
push 0x17
vpxor xmm0, xmm0, xmm0
push str.CBaseEntity__m_iTeamNum
vmovdqu xmmword [ebp - 0x303c], xmm0
mov dword [ebp - 0x302c], 0
mov dword [ebp - 0x3028], 0
call fcn.10002ab0
lea eax, [ebp - 0x303c]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [ebp - 0x3028]
mov dword [0x10269dec], eax
cmp ecx, 0xf
jbe 0x100996e3
mov edx, dword [ebp - 0x303c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100996d9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1009978b
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269dec]
mov eax, dword [eax + 4]
add eax, ebx
mov dword [ebp - 0x304c], eax
mov eax, dword [0x102699d4]
mov eax, dword [eax]
mov dword [ebp - 0x3040], eax
mov eax, dword [0x10269df0]
test al, 1
jne 0x1009979b
or dword [0x10269df0], 1
lea ecx, [ebp - 0x303c]
mov esi, dword [0x10269968]
push 0x17
vpxor xmm0, xmm0, xmm0
push str.CBaseEntity__m_iTeamNum
vmovdqu xmmword [ebp - 0x303c], xmm0
mov dword [ebp - 0x302c], 0
mov dword [ebp - 0x3028], 0
call fcn.10002ab0
lea eax, [ebp - 0x303c]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [ebp - 0x3028]
mov dword [0x10269dec], eax
cmp ecx, 0xf
jbe 0x1009979b
mov edx, dword [ebp - 0x303c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10099791
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10099791
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x102699d4]
mov esi, dword [ebp - 0x3040]
mov edx, dword [eax]
mov eax, dword [0x10269dec]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x304c]
mov eax, dword [eax]
cmp eax, dword [esi + ecx]
je 0x10099970
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 0x278]
call eax
mov esi, dword [ebp + 0x28]
test al, al
je 0x1009987a
cmp byte [edi + 0xbd], 0
je 0x1009987a
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
mov eax, dword [eax + 0x28]
call eax
push eax
lea eax, [ebp - 0x3008]
mov ecx, edi
push eax
call fcn.1009edc0
cmp byte [ebp - 8], 0
je 0x1009987a
vmovups xmm0, xmmword [edi + 0x188]
sub esp, 0x10
mov ecx, edi
vmovups xmmword [esp], xmm0
push 1
push dword [edi + 0xd4]
call fcn.1009d480
cmp byte [ebp - 8], 0
mov eax, dword [0x10269a78]
je 0x10099c77
mov ebx, dword [ebp + 0x10]
lea ecx, [ebp - 0x3008]
mov edx, dword [ebp + 0xc]
push esi
push dword [ebp - 0x3010]
push dword [ebp - 0x3014]
push dword [ebp - 0x3018]
push ecx
push dword [ebp - 0x3020]
mov ecx, dword [ebp - 0x301c]
push ebx
call eax
mov ecx, dword [0x102699a4]
push 0
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
jmp 0x1009987d
mov ebx, dword [ebp + 0x10]
cmp byte [edi + 0xb1], 0
je 0x100998ea
vmovups xmm0, xmmword [edi + 0xf8]
sub esp, 0x10
mov ecx, edi
vmovups xmmword [esp], xmm0
push 1
push dword [edi + 0xc0]
call fcn.1009d480
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x301c]
push esi
push dword [ebp - 0x3010]
push dword [ebp - 0x3014]
push dword [ebp - 0x3018]
push dword [ebp - 0x3024]
push dword [ebp - 0x3020]
push ebx
call dword [0x10269a78]
mov ecx, dword [0x102699a4]
push 0
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
cmp byte [edi + 0xb0], 0
je 0x10099c62
vmovups xmm0, xmmword [edi + 0xe8]
sub esp, 0x10
mov ecx, edi
vmovups xmmword [esp], xmm0
push 0
push dword [edi + 0xc0]
call fcn.1009d480
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x301c]
push esi
push dword [ebp - 0x3010]
push dword [ebp - 0x3014]
push dword [ebp - 0x3018]
push dword [ebp - 0x3024]
push dword [ebp - 0x3020]
push ebx
call dword [0x10269a78]
mov ecx, dword [0x102699a4]
push 0
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101044f3
mov esp, ebp
pop ebp
ret 0x24
mov esi, dword [ebp + 0x28]
cmp ebx, edx
mov ebx, dword [ebp + 0x10]
je 0x10099a71
cmp byte [edi + 0xb3], 0
je 0x100999eb
vmovups xmm0, xmmword [edi + 0x118]
sub esp, 0x10
mov ecx, edi
vmovups xmmword [esp], xmm0
push 1
push dword [edi + 0xc4]
call fcn.1009d480
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x301c]
push esi
push dword [ebp - 0x3010]
push dword [ebp - 0x3014]
push dword [ebp - 0x3018]
push dword [ebp - 0x3024]
push dword [ebp - 0x3020]
push ebx
call dword [0x10269a78]
mov ecx, dword [0x102699a4]
push 0
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
cmp byte [edi + 0xb2], 0
je 0x10099c62
vmovups xmm0, xmmword [edi + 0x108]
sub esp, 0x10
mov ecx, edi
vmovups xmmword [esp], xmm0
push 0
push dword [edi + 0xc4]
call fcn.1009d480
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x301c]
push esi
push dword [ebp - 0x3010]
push dword [ebp - 0x3014]
push dword [ebp - 0x3018]
push dword [ebp - 0x3024]
push dword [ebp - 0x3020]
push ebx
call dword [0x10269a78]
mov ecx, dword [0x102699a4]
push 0
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101044f3
mov esp, ebp
pop ebp
ret 0x24
cmp byte [edi + 0xb5], 0
je 0x10099ae3
vmovups xmm0, xmmword [edi + 0x138]
sub esp, 0x10
mov ecx, edi
vmovups xmmword [esp], xmm0
push 0
push dword [edi + 0xcc]
call fcn.1009d480
mov eax, dword [0x10269a3c]
mov edx, dword [ebp + 0xc]
add eax, 0x6014
mov ecx, dword [ebp - 0x301c]
push esi
push dword [ebp - 0x3010]
push dword [ebp - 0x3014]
push dword [ebp - 0x3018]
push eax
push dword [ebp - 0x3020]
push ebx
call dword [0x10269a78]
mov ecx, dword [0x102699a4]
push 0
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
cmp byte [edi + 0xb4], 0
je 0x10099c62
vmovups xmm0, xmmword [edi + 0x128]
sub esp, 0x10
mov ecx, edi
vmovups xmmword [esp], xmm0
push 0
push dword [edi + 0xc8]
call fcn.1009d480
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x301c]
push esi
push dword [ebp - 0x3010]
push dword [ebp - 0x3014]
push dword [ebp - 0x3018]
push dword [ebp - 0x3024]
push dword [ebp - 0x3020]
push ebx
call dword [0x10269a78]
mov ecx, dword [0x102699a4]
push 0
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101044f3
mov esp, ebp
pop ebp
ret 0x24
mov ebx, dword [ebp - 0x3020]
mov eax, dword [ebx]
cmp dword [eax + 0x1d], 0x736d7261
jne 0x10099c03
cmp byte [edi + 0xb8], 0
je 0x10099c62
vmovups xmm0, xmmword [edi + 0x158]
sub esp, 0x10
vmovups xmmword [esp], xmm0
push 0
push dword [edi + 0xdc]
mov ecx, edi
call fcn.1009d480
push dword [ebp + 0x28]
mov edx, dword [ebp + 0xc]
push dword [ebp - 0x3010]
mov ecx, dword [ebp - 0x301c]
push dword [ebp - 0x3014]
push dword [ebp - 0x3018]
push dword [ebp - 0x3024]
push ebx
push dword [ebp + 0x10]
call dword [0x10269a78]
mov ecx, dword [0x102699a4]
push 0
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101044f3
mov esp, ebp
pop ebp
ret 0x24
cmp dword [eax + 0xc], 0x70616577
jne 0x10099c38
cmp byte [eax + 0x14], 0x76
jne 0x10099c38
cmp byte [edi + 0xb9], 0
je 0x10099c62
vmovups xmm0, xmmword [edi + 0x168]
sub esp, 0x10
vmovups xmmword [esp], xmm0
push 0
push dword [edi + 0xe0]
jmp 0x10099ba3
test cl, cl
je 0x10099c62
cmp byte [edi + 0xba], 0
je 0x10099c62
vmovups xmm0, xmmword [edi + 0x178]
sub esp, 0x10
vmovups xmmword [esp], xmm0
push 0
push dword [edi + 0xd8]
jmp 0x10099ba3
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101044f3
mov esp, ebp
pop ebp
ret 0x24
call fcn.10089500
int3