Function at 0x10049cc0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101a62eb
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xb0
mov eax, dword [0x10242040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x90], edi
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x9c], eax
mov dword [ebp - 4], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x1004ac41
mov eax, dword [ecx]
mov eax, dword [eax]
call eax
mov ecx, eax
test ecx, ecx
je 0x1004ac41
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
mov esi, eax
mov dword [ebp - 0xb0], esi
test esi, esi
je 0x1004ac41
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x20], 0
je 0x1004ac41
lea ecx, [esi + 8]
xor edx, edx
test ecx, ecx
mov eax, ecx
cmove eax, edx
mov dword [ebp - 0x98], eax
mov eax, dword [eax]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x1004ac41
mov eax, dword [ebp - 0x94]
lea ecx, [edi + 0x74]
push dword [ebp - 0x9c]
movups xmm0, xmmword [eax]
movups xmmword [edi + 0x58], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [edi + 0x68], xmm0
mov eax, dword [eax + 0x18]
mov dword [edi + 0x70], eax
lea eax, [ebp - 0x88]
push eax
call fcn.10048d80
lea eax, [edi + 0x30]
mov dword [ebp - 0x1c], 0
mov byte [ebp - 4], 1
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x10049ddc
mov eax, dword [ecx]
lea edx, [ebp - 0x40]
push edx
mov eax, dword [eax]
call eax
mov dword [ebp - 0x1c], eax
lea eax, [edi + 0x30]
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.1004c4b0
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x10049e00
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x40]
cmp ecx, eax
setne al
push eax
call edx
mov eax, dword [ebp - 0x9c]
push str.models_player
mov eax, dword [eax + 0x20]
add eax, 4
push eax
call dword [sym.imp.VCRUNTIME140.dll_strstr]
add esp, 8
test eax, eax
je 0x1004aa17
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x278]
call eax
test al, al
je 0x1004ac41
mov al, byte [esi + 0x25f]
test al, al
jne 0x1004ac41
cmp dword [esi + 0x100], 0
je 0x1004ac41
mov eax, dword [ebp - 0x98]
lea ecx, [esi + 8]
mov eax, dword [eax]
mov eax, dword [eax + 0x24]
call eax
test al, al
jne 0x1004ac41
mov eax, dword [0x103357d4]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x103358c0]
mov dword [ebp - 0x9c], ecx
cmp eax, dword [ecx + 4]
jle 0x10049ed8
push 0x103358c0
call fcn.1014bbcf
add esp, 4
cmp dword [0x103358c0], 0xffffffff
jne 0x10049ed2
push ecx
push 0x5a84b801
mov byte [ebp - 4], 2
mov ecx, dword [0x10336104]
push 0x22558ba9
call fcn.100bb0f0
push 0x103358c0
mov dword [0x103358c8], eax
mov byte [ebp - 4], 0
call fcn.1014bb7e
add esp, 4
mov ecx, dword [ebp - 0x9c]
mov eax, dword [0x103358c8]
mov al, byte [eax + esi]
test al, al
jne 0x1004ac41
mov eax, dword [0x10336270]
mov eax, dword [eax + 8]
mov dword [ebp - 0x94], eax
cmp esi, eax
jne 0x1004a17b
mov eax, dword [0x10335fb8]
cmp byte [eax + 0x1690], 0
je 0x10049f9f
mov eax, dword [0x103358bc]
cmp eax, dword [ecx + 4]
jle 0x10049f63
push 0x103358bc
call fcn.1014bbcf
add esp, 4
cmp dword [0x103358bc], 0xffffffff
jne 0x10049f63
push ecx
push 0x41bce941
mov byte [ebp - 4], 3
mov ecx, dword [0x10336104]
push 0x22558ba9
call fcn.100bb0f0
push 0x103358bc
mov dword [0x103358b8], eax
mov byte [ebp - 4], 0
call fcn.1014bb7e
add esp, 4
mov eax, dword [0x103358b8]
mov ecx, dword [ebp - 0x94]
cmp byte [ecx + eax], 0
je 0x10049f9f
mov eax, dword [0x10335fb8]
mov ecx, dword [0x103358b4]
push ecx
movd xmm0, dword [eax + 0x1691]
mov edx, dword [ecx]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x10]
mulss xmm0, dword [0x1022bf14]
movss dword [esp], xmm0
call eax
mov eax, dword [0x10336270]
movss xmm0, dword [eax + 0xc]
lea esi, [eax + 0xc]
comiss xmm0, dword [eax + 0x10]
lea ecx, [eax + 0x10]
cmova esi, ecx
mov ecx, dword [0x103358b4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xb0], eax
call dword [ebp - 0xb0]
mov ecx, dword [0x103358b4]
fstp dword [ebp - 0xb0]
movss xmm0, dword [ebp - 0xb0]
mulss xmm0, dword [esi]
mov eax, dword [ecx]
push ecx
movss dword [esp], xmm0
mov eax, dword [eax + 0x10]
call eax
mov eax, dword [0x10335fb8]
push ecx
mov dword [esp], 0x3f800000
add eax, 0x12e0
push 0
push 0
push eax
mov ecx, edi
call fcn.10049680
mov byte [ebp - 0x89], al
lea ecx, [ebp - 0x94]
mov eax, dword [0x10336288]
lea esi, [ebp - 0x98]
xorps xmm0, xmm0
mov dword [ebp - 0x98], 0x3f800000
mov dword [ebp - 0xb0], 0
movss xmm1, dword [eax + 0x29852c]
lea eax, [ebp - 0xb0]
mulss xmm1, dword [0x1022bf58]
comiss xmm1, xmm0
movss xmm0, dword [0x1022c018]
movss dword [ebp - 0x94], xmm1
cmovae eax, ecx
comiss xmm0, xmm1
cmovae esi, eax
mov eax, dword [0x10336270]
xor edx, edx
mov ecx, dword [eax + 8]
add ecx, 4
mov eax, ecx
cmove eax, edx
mov eax, dword [eax]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [0x10336288]
add ecx, 0x29553c
movss xmm1, dword [eax]
movss xmm2, dword [eax + 4]
movss xmm3, dword [eax + 8]
mov eax, 0x80
nop dword [eax + eax]
movaps xmm0, xmm1
addss xmm0, dword [ecx - 0x10]
movss dword [ecx - 0x10], xmm0
movaps xmm0, xmm2
addss xmm0, dword [ecx]
movss dword [ecx], xmm0
movaps xmm0, xmm3
addss xmm0, dword [ecx + 0x10]
movss dword [ecx + 0x10], xmm0
add ecx, 0x30
sub eax, 1
jne 0x1004a0b0
mov eax, dword [0x10336288]
movss xmm0, dword [esi]
add eax, 0x295520
push ecx
movss dword [esp], xmm0
mov ecx, edi
push eax
mov eax, dword [0x10335fb8]
push 0
add eax, 0x1361
push eax
call fcn.10049680
mov eax, dword [0x10336270]
xor edx, edx
mov ecx, dword [eax + 8]
add ecx, 4
mov eax, ecx
cmove eax, edx
mov eax, dword [eax]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [0x10336288]
add ecx, 0x29553c
movss xmm1, dword [eax]
movss xmm2, dword [eax + 4]
movss xmm3, dword [eax + 8]
mov eax, 0x80
nop
movss xmm0, dword [ecx - 0x10]
subss xmm0, xmm1
movss dword [ecx - 0x10], xmm0
movss xmm0, dword [ecx]
subss xmm0, xmm2
movss dword [ecx], xmm0
movss xmm0, dword [ecx + 0x10]
subss xmm0, xmm3
movss dword [ecx + 0x10], xmm0
add ecx, 0x30
sub eax, 1
jne 0x1004a140
mov al, byte [ebp - 0x89]
jmp 0x1004ac49
mov ecx, esi
call fcn.10052a60
test al, al
jne 0x1004aa9b
mov edx, dword [ebp - 0x9c]
mov eax, dword [0x10337b24]
cmp eax, dword [edx + 4]
jle 0x1004a1d5
push 0x10337b24
call fcn.1014bbcf
add esp, 4
cmp dword [0x10337b24], 0xffffffff
jne 0x1004a1cf
mov edx, 0x80
mov ecx, 0x10336318
call fcn.10034630
push 0x10337b24
call fcn.1014bb7e
add esp, 4
mov edx, dword [ebp - 0x9c]
mov eax, dword [0x10335fb8]
cmp byte [eax + 0x81], 0
je 0x1004a9b6
mov eax, dword [0x10336270]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x1004a9b6
cmp byte [ecx + 0x25f], 0
jne 0x1004a9b6
cmp dword [ecx + 0x100], 0
je 0x1004a9b6
mov eax, dword [0x10337b5c]
cmp eax, dword [edx + 4]
jle 0x1004a2a2
push 0x10337b5c
call fcn.1014bbcf
add esp, 4
cmp dword [0x10337b5c], 0xffffffff
jne 0x1004a2a2
mov eax, dword [0x10335870]
mov edi, dword [eax + 0x30]
test edi, edi
je 0x1004a287
mov edx, dword [edi + 0xc]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004a250
sub ecx, esi
lea esi, [ecx + 1]
mov ecx, 0x4fa38bcd
test esi, esi
je 0x1004a280
movsx eax, byte [edx]
lea edx, [edx + 1]
xor ecx, eax
imul ecx, ecx, 0xf1546419
sub esi, 1
jne 0x1004a265
cmp ecx, 0xbc340f3b
je 0x1004a289
mov edi, dword [edi + 4]
test edi, edi
jne 0x1004a244
xor edi, edi
push 0x10337b5c
mov dword [0x10337b8c], edi
call fcn.1014bb7e
mov esi, dword [ebp - 0xb0]
add esp, 4
mov ecx, dword [0x10337b8c]
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 0x30]
xor eax, ecx
je 0x1004a9b6
mov eax, dword [0x10335fb8]
cmp byte [eax + 0x13e2], 0
je 0x1004a9b6
mov ecx, dword [0x10336288]
push esi
call fcn.100e90e0
mov edi, eax
mov dword [ebp - 0xa0], edi
test edi, edi
je 0x1004a9b6
cmp byte [edi + 0x21], 0
je 0x1004a9b6
lea eax, [ebp - 0x68]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0x89]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x68]
call fcn.1004c890
mov byte [ebp - 4], 5
cmp byte [edi + 0x21], 0
je 0x1004a399
mov ecx, dword [edi + 4]
mov eax, 0xc6e05e01
sub ecx, dword [edi]
imul ecx
add edx, ecx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, 0xffffffff
mov dword [ebp - 0xb4], eax
js 0x1004a399
mov ecx, dword [edi + 4]
mov eax, 0xc6e05e01
sub ecx, dword [edi]
imul ecx
mov eax, dword [edi + 0xc]
add eax, dword [ebp - 0xb4]
add edx, ecx
sar edx, 0xf
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
xor edx, edx
div ecx
lea ecx, [ebp - 0x68]
imul eax, edx, 0xa4c4
add eax, dword [edi]
push eax
mov dword [ebp - 0xa8], eax
call fcn.10034110
test al, al
je 0x1004a390
mov eax, dword [ebp - 0xa8]
cmp dword [eax], edi
je 0x1004a480
sub dword [ebp - 0xb4], 1
jns 0x1004a342
mov byte [ebp - 4], 0
mov dword [ebp - 0xa8], 0
lea ecx, [ebp - 0x68]
call fcn.10015370
cmp byte [edi + 0x21], 0
je 0x1004a9b6
mov ecx, dword [edi + 4]
mov eax, 0xc6e05e01
sub ecx, dword [edi]
imul ecx
add edx, ecx
sar edx, 0xf
mov esi, edx
shr esi, 0x1f
add esi, edx
mov dword [ebp - 0x94], esi
lea ecx, [esi - 1]
mov dword [ebp - 0xac], ecx
test ecx, ecx
js 0x1004a9b6
mov edi, dword [edi + 0xc]
add edi, ecx
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x98], edi
nop dword [eax]
xor edx, edx
mov eax, edi
div esi
lea eax, [edi + 1]
imul esi, edx, 0xa4c4
xor edx, edx
div dword [ebp - 0x94]
add esi, dword [ecx]
imul edi, edx, 0xa4c4
mov dword [ebp - 0xb4], esi
add edi, dword [ecx]
cmp dword [esi + 4], 0
je 0x1004a456
cmp dword [edi + 4], 0
je 0x1004a456
cmp dword [esi], ecx
jne 0x1004a456
cmp dword [edi], ecx
jne 0x1004a456
cmp byte [esi + 0xba8], 0
jne 0x1004a489
cmp byte [edi + 0xb8d], 0
je 0x1004a456
cmp byte [esi + 0xb8d], 0
je 0x1004a489
mov eax, dword [ebp - 0xac]
mov edi, dword [ebp - 0x98]
dec eax
dec edi
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x98], edi
test eax, eax
js 0x1004a9b6
mov esi, dword [ebp - 0x94]
jmp 0x1004a400
mov byte [ebp - 4], 0
jmp 0x1004a3a7
test edi, edi
je 0x1004a9b6
test esi, esi
je 0x1004a9b6
cmp byte [edi + 0xb8a], 0
jne 0x1004a9b6
cmp byte [esi + 0xb8a], 0
jne 0x1004a9b6
movss xmm3, dword [edi + 0xbac]
xorps xmm4, xmm4
ucomiss xmm3, xmm4
lahf
test ah, 0x44
mov eax, dword [0x1033582c]
jp 0x1004a4f2
mov eax, dword [eax]
mov dword [edi + 0xbac], eax
mov eax, dword [ebp - 0xa8]
mov dword [edi + 0xbb0], 0
mov eax, dword [eax + 0xbb8]
mov dword [edi + 0xbb4], eax
jmp 0x1004a554
movss xmm1, dword [eax]
lea ecx, [ebp - 0xa0]
movss xmm0, dword [edi + 0xbb4]
subss xmm1, xmm3
movss xmm2, dword [0x1022c2cc]
subss xmm0, xmm3
lea eax, [ebp - 0x94]
mov dword [ebp - 0x98], 0x7f7fffff
mov dword [ebp - 0xa0], 0
subss xmm1, xmm0
comiss xmm1, xmm4
movss dword [ebp - 0x94], xmm1
cmovae ecx, eax
lea eax, [ebp - 0x98]
comiss xmm2, xmm1
cmovae eax, ecx
mov eax, dword [eax]
mov dword [edi + 0xbb0], eax
mov eax, dword [edi + 0xba4]
lea ecx, [ebp - 0xb9]
sub eax, dword [esi + 0xba4]
cdq
xor eax, edx
mov dword [ebp - 0x98], 0
sub eax, edx
movd xmm0, eax
mov eax, dword [0x1033582c]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
movss dword [ebp - 0x94], xmm0
movss dword [ebp - 0xac], xmm0
call fcn.10048f10
movss xmm1, dword [ebp - 0x94]
lea esi, [ebp - 0xb8]
xorps xmm2, xmm2
movss xmm4, dword [0x1022c018]
mov dword [ebp - 0xb8], 0x3f800000
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0xa8], 0
push 0x1800
mov ecx, dword [ecx + 0x2c]
xor ecx, eax
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xa0], ecx
lea ecx, [ebp - 0x98]
movss xmm0, dword [ebp - 0xa0]
mulss xmm0, dword [edi + 0xbb0]
comiss xmm0, xmm2
movss dword [ebp - 0xa0], xmm0
cmovae ecx, eax
lea eax, [ebp - 0xac]
comiss xmm1, xmm0
cmovae eax, ecx
lea ecx, [ebp - 0xa0]
movss xmm0, dword [eax]
lea eax, [ebp - 0xa8]
divss xmm0, xmm1
movaps xmm1, xmm4
subss xmm1, xmm0
comiss xmm1, xmm2
movss dword [ebp - 0xa0], xmm1
cmovae eax, ecx
comiss xmm4, xmm1
movaps xmm1, xmm4
cmovae esi, eax
mov eax, dword [ebp - 0xb4]
movss xmm3, dword [esi]
subss xmm1, xmm3
movaps xmm0, xmm3
mulss xmm0, dword [eax + 0xb70]
push dword [eax + 0xa428]
movaps xmm2, xmm1
mulss xmm2, dword [edi + 0xb70]
push 0x10336318
addss xmm2, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [eax + 0xb74]
movss dword [ebp - 0xac], xmm2
movaps xmm2, xmm1
mulss xmm2, dword [edi + 0xb74]
mulss xmm1, dword [edi + 0xb78]
addss xmm2, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [eax + 0xb78]
addss xmm1, xmm0
movss dword [ebp - 0x98], xmm2
movss dword [ebp - 0xa4], xmm1
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [0x1033582c]
add esp, 0xc
movss xmm1, dword [ebp - 0x94]
movss xmm0, dword [eax + 0x20]
mov eax, dword [ebp - 0xb4]
addss xmm0, xmm0
comiss xmm1, xmm0
jbe 0x1004a816
mov ecx, dword [ebp - 0x9c]
mov eax, dword [0x10337b20]
cmp eax, dword [ecx + 4]
jle 0x1004a722
push 0x10337b20
call fcn.1014bbcf
add esp, 4
cmp dword [0x10337b20], 0xffffffff
jne 0x1004a722
push 0x10337b20
call fcn.1014bb7e
add esp, 4
movss xmm3, dword [esi]
mov ecx, 0x10337b1c
mov esi, dword [ebp - 0xb4]
movss xmm1, dword [edi + 0xb54]
movss xmm2, dword [esi + 0xb54]
call fcn.10048fb0
movss xmm1, dword [edi + 0xb54]
mov edi, esi
movss xmm4, dword [0x1022c360]
comiss xmm4, xmm1
mov dword [ebp - 0xa8], edi
movss xmm2, dword [0x1022c25c]
jbe 0x1004a77a
mov dword [ebp - 0xa8], esi
addss xmm1, xmm2
comiss xmm4, xmm1
ja 0x1004a771
movss xmm3, dword [0x1022c1f4]
comiss xmm1, xmm3
jbe 0x1004a790
subss xmm1, xmm2
comiss xmm1, xmm3
ja 0x1004a787
subss xmm0, xmm1
comiss xmm4, xmm0
jbe 0x1004a7a9
nop dword [eax]
addss xmm0, xmm2
comiss xmm4, xmm0
ja 0x1004a7a0
comiss xmm0, xmm3
jbe 0x1004a7b9
nop
subss xmm0, xmm2
comiss xmm0, xmm3
ja 0x1004a7b0
xorps xmm0, xmmword [0x1022c580]
movss dword [ebp - 0xb8], xmm0
call fcn.100151f0
comiss xmm0, dword [0x1022c0c4]
jbe 0x1004a810
mov eax, dword [edi + 0xb70]
sub esp, 0xc
mov ecx, dword [edi + 0xa428]
mov esi, esp
movss xmm2, dword [ebp - 0xb8]
mov edx, 0x10336318
mov dword [esi], eax
mov eax, dword [edi + 0xb74]
mov dword [esi + 4], eax
mov eax, dword [edi + 0xb78]
mov dword [esi + 8], eax
call fcn.100a9510
add esp, 0xc
mov eax, dword [ebp - 0xa8]
movss xmm0, dword [ebp - 0xac]
subss xmm0, dword [eax + 0xb70]
movss xmm2, dword [ebp - 0x98]
movss xmm1, dword [ebp - 0xa4]
subss xmm2, dword [eax + 0xb74]
subss xmm1, dword [eax + 0xb78]
movss dword [ebp - 0xac], xmm0
xor eax, eax
addss xmm0, dword [eax + 0x10336324]
movss dword [eax + 0x10336324], xmm0
movaps xmm0, xmm2
addss xmm0, dword [eax + 0x10336334]
movss dword [eax + 0x10336334], xmm0
movaps xmm0, xmm1
addss xmm0, dword [eax + 0x10336344]
movss dword [eax + 0x10336344], xmm0
add eax, 0x30
movss xmm0, dword [ebp - 0xac]
cmp eax, 0x1800
jb 0x1004a850
mov edi, dword [ebp - 0xb0]
mov ecx, edi
mov eax, dword [0x103361f0]
push str.head_0
mov dword [ebp - 0x98], 0x3f800000
mov dword [ebp - 0x94], 0
call eax
mov esi, dword [edi + 0x2914]
mov ecx, edi
push str.head_0
lea eax, [eax + eax*2]
shl eax, 4
movss xmm0, dword [eax + 0x10336324]
movss dword [ebp - 0xa4], xmm0
movss xmm0, dword [eax + 0x10336334]
movss dword [ebp - 0xb8], xmm0
movss xmm0, dword [eax + 0x10336344]
mov eax, dword [0x103361f0]
movss dword [ebp - 0xa0], xmm0
call eax
movss xmm1, dword [ebp - 0xa4]
movss xmm2, dword [ebp - 0xb8]
movss xmm0, dword [ebp - 0xa0]
lea eax, [eax + eax*2]
add eax, eax
subss xmm2, dword [esi + eax*8 + 0x1c]
subss xmm1, dword [esi + eax*8 + 0xc]
subss xmm0, dword [esi + eax*8 + 0x2c]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm0, xmm2
call fcn.10030000
mulss xmm0, dword [0x1022bf14]
lea eax, [ebp - 0xa4]
mov esi, dword [ebp - 0x90]
lea ecx, [ebp - 0x94]
xorps xmm1, xmm1
comiss xmm0, xmm1
movss xmm1, dword [0x1022c018]
movss dword [ebp - 0xa4], xmm0
cmovae ecx, eax
lea eax, [ebp - 0x98]
comiss xmm1, xmm0
push ecx
cmovae eax, ecx
mov ecx, esi
movss xmm0, dword [eax]
mov eax, dword [0x10335fb8]
movss dword [esp], xmm0
add eax, 0x13e2
push 0x10336318
push 1
push eax
call fcn.10049680
jmp 0x1004a9bc
mov esi, dword [ebp - 0x90]
mov eax, dword [0x10335fb8]
push ecx
mov dword [esp], 0x3f800000
add eax, 0x125f
push 0
push 1
push eax
mov ecx, esi
call fcn.10049680
push ecx
mov ecx, dword [0x10335fb8]
mov dword [esp], 0x3f800000
add ecx, 0x11de
push 0
push 0
push ecx
mov ecx, esi
mov byte [ebp - 0x89], al
call fcn.10049680
test al, al
jne 0x1004aa10
cmp byte [ebp - 0x89], al
je 0x1004ac41
mov al, 1
jmp 0x1004ac43
mov eax, dword [ebp - 0x9c]
push str.arms
mov eax, dword [eax + 0x20]
add eax, 4
push eax
call dword [sym.imp.VCRUNTIME140.dll_strstr]
add esp, 8
test eax, eax
je 0x1004aa59
mov eax, dword [0x10335fb8]
push ecx
mov dword [esp], 0x3f800000
add eax, 0x14e4
push 0
push 0
push eax
mov ecx, edi
call fcn.10049680
jmp 0x1004ac43
mov eax, dword [ebp - 0x9c]
push str.models_weapons_v_
mov eax, dword [eax + 0x20]
add eax, 4
push eax
call dword [sym.imp.VCRUNTIME140.dll_strstr]
add esp, 8
test eax, eax
je 0x1004aa9b
mov eax, dword [0x10335fb8]
push ecx
mov dword [esp], 0x3f800000
add eax, 0x1565
push 0
push 0
push eax
mov ecx, edi
call fcn.10049680
jmp 0x1004ac43
mov eax, dword [0x103357d4]
mov ecx, dword fs:[0x2c]
mov edi, dword [ecx + eax*4]
mov eax, dword [0x103358cc]
cmp eax, dword [edi + 4]
jle 0x1004aafd
push 0x103358cc
call fcn.1014bbcf
add esp, 4
cmp dword [0x103358cc], 0xffffffff
jne 0x1004aafd
push ecx
push 0x354c38f0
mov byte [ebp - 4], 6
mov ecx, dword [0x10336104]
push 0xaf3beedc
call fcn.100bb0f0
push 0x103358cc
mov dword [0x103358c4], eax
mov byte [ebp - 4], 0
call fcn.1014bb7e
add esp, 4
mov ecx, dword [0x10335890]
mov eax, dword [0x103358c4]
mov edx, dword [ecx]
push dword [eax + esi]
mov edx, dword [edx + 0x10]
call edx
test eax, eax
je 0x1004ac41
mov ecx, dword [0x10336270]
mov esi, dword [ecx + 8]
cmp eax, esi
jne 0x1004ac41
mov eax, dword [0x10335fb8]
cmp byte [eax + 0x1690], 0
je 0x1004abc6
mov eax, dword [0x103358bc]
cmp eax, dword [edi + 4]
jle 0x1004ab90
push 0x103358bc
call fcn.1014bbcf
add esp, 4
cmp dword [0x103358bc], 0xffffffff
jne 0x1004ab90
push ecx
push 0x41bce941
mov byte [ebp - 4], 7
mov ecx, dword [0x10336104]
push 0x22558ba9
call fcn.100bb0f0
push 0x103358bc
mov dword [0x103358b8], eax
mov byte [ebp - 4], 0
call fcn.1014bb7e
add esp, 4
mov eax, dword [0x103358b8]
cmp byte [esi + eax], 0
je 0x1004abc6
mov eax, dword [0x10335fb8]
mov ecx, dword [0x103358b4]
push ecx
movd xmm0, dword [eax + 0x1691]
mov edx, dword [ecx]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x10]
mulss xmm0, dword [0x1022bf14]
movss dword [esp], xmm0
call eax
mov eax, dword [0x10336270]
mov ecx, dword [0x103358b4]
lea esi, [eax + 0x10]
lea edi, [eax + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xa4], eax
call dword [ebp - 0xa4]
movss xmm0, dword [edi]
comiss xmm0, dword [esi]
mov ecx, dword [0x103358b4]
push ecx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
fstp dword [ebp - 0xa4]
movss xmm0, dword [ebp - 0xa4]
cmova edi, esi
mulss xmm0, dword [edi]
movss dword [esp], xmm0
call eax
mov eax, dword [0x10335fb8]
push ecx
mov ecx, dword [ebp - 0x90]
add eax, 0x15e6
mov dword [esp], 0x3f800000
push 0
push 0
push eax
call fcn.10049680
test al, al
je 0x1004ac41
mov al, 1
jmp 0x1004ac43
xor al, al
mov byte [ebp - 0x89], al
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x1004ac67
mov esi, dword [ecx]
lea eax, [ebx + 0x10]
cmp ecx, eax
setne dl
movzx edx, dl
push edx
call dword [esi + 0x10]
mov al, byte [ebp - 0x89]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1014b7c5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x30