Function at 0x1006cf90
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x38
mov eax, dword [0x1039b040]
xor eax, esp
mov dword [esp + 0x34], eax
cmp byte [0x103bd0d8], 0
push esi
push edi
mov edi, dword [ebp + 8]
je 0x1006d831
mov ecx, dword [ebp + 0xc]
mov eax, 0x1b4e81b5
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x96
sub ecx, eax
shl ecx, 7
add ecx, 0x103a09d0
mov dword [esp + 8], ecx
mov eax, dword [esp + 8]
mov ecx, dword [0x103a5590]
mov eax, dword [eax + 0x24]
cmp eax, dword [edi + ecx]
jne 0x1006d831
mov eax, dword [0x103a5710]
xorps xmm1, xmm1
movss xmm0, dword [0x1038d99c]
mov esi, dword [0x103a5500]
comiss xmm0, dword [edi + eax]
jbe 0x1006d0a4
cmp dword [0x103bd128], 0
jle 0x1006d0a4
movss xmm0, dword [edi + esi]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006d04e
movss xmm0, dword [edi + esi + 4]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006d04e
movss xmm0, dword [edi + esi + 8]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1006d0a4
mov ecx, dword [0x103a54f4]
mov eax, dword [0x103a54f8]
movss xmm2, dword [edi + ecx]
movss xmm0, dword [edi + ecx + 4]
subss xmm0, dword [edi + eax + 4]
subss xmm2, dword [edi + eax]
movss xmm1, dword [edi + ecx + 8]
subss xmm1, dword [edi + eax + 8]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm0, xmm2
addss xmm0, xmm1
call fcn.10048260
comiss xmm0, dword [0x1038d99c]
mov byte [0x103bd0d9], 1
ja 0x1006d0ab
mov byte [0x103bd0d9], 0
mov eax, dword [edi + esi + 8]
movq xmm0, qword [edi + esi]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 8]
movq qword [esp + 0x18], xmm0
movss xmm2, dword [0x1038e2f0]
movss xmm3, dword [0x1038d8a4]
movq xmm0, qword [eax + 0x38]
mov eax, dword [eax + 0x40]
movq qword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0xc]
subss xmm0, dword [esp + 0x18]
mov dword [esp + 0x14], eax
xor eax, eax
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x10]
subss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x14]
subss xmm0, dword [esp + 0x20]
movss dword [esp + 0x38], xmm0
nop dword [eax]
movss xmm0, dword [esp + eax*4 + 0x30]
andps xmm0, xmm2
comiss xmm0, xmm3
ja 0x1006d154
inc eax
cmp eax, 3
jl 0x1006d120
mov ecx, dword [esp + 8]
mov edx, dword [0x103a5500]
mov eax, dword [ecx + 0x38]
mov dword [edi + edx], eax
mov eax, dword [ecx + 0x3c]
mov dword [edi + edx + 4], eax
mov eax, dword [ecx + 0x40]
mov dword [edi + edx + 8], eax
jmp 0x1006d15b
mov byte [0x103bd0d9], 1
mov edx, dword [0x103a0914]
test edx, edx
jne 0x1006d1e8
mov esi, 0x81cc9dc5
xor ecx, ecx
movsx eax, byte [ecx + str.m_vecBaseVelocity]
inc ecx
xor eax, esi
imul esi, eax, 0x1100192
cmp ecx, 0x11
jb 0x1006d170
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x44]
call eax
mov dword [esp + 0x2c], eax
mov edx, 0x81cc9dc5
xor ecx, ecx
nop dword [eax]
movsx eax, byte [ecx + str.m_vecBaseVelocity]
inc ecx
xor eax, edx
imul edx, eax, 0x1100192
cmp ecx, 0x11
jb 0x1006d1a0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], edx
mov edx, esi
call fcn.1006cc50
mov ecx, dword [esp + 0x28]
mov edx, eax
movss xmm2, dword [0x1038e2f0]
movss xmm3, dword [0x1038d8a4]
lea ecx, [ecx + ecx*4]
xor edx, ecx
rol edx, 0x20
mov dword [0x103a0914], edx
mov esi, 0x81cc9dc5
xor ecx, ecx
nop
movsx eax, byte [ecx + str.m_vecBaseVelocity]
inc ecx
xor eax, esi
imul esi, eax, 0x1100192
cmp ecx, 0x11
jb 0x1006d1f0
ror edx, 0x20
lea eax, [esi + esi*4]
xor edx, eax
mov eax, dword [edx + edi + 8]
movq xmm0, qword [edx + edi]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
movq qword [esp + 0xc], xmm0
movq xmm0, qword [eax + 0x44]
mov eax, dword [eax + 0x4c]
movq qword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x18]
subss xmm0, dword [esp + 0xc]
mov dword [esp + 0x20], eax
xor eax, eax
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x1c]
subss xmm0, dword [esp + 0x10]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x20]
subss xmm0, dword [esp + 0x14]
movss dword [esp + 0x38], xmm0
nop
movss xmm0, dword [esp + eax*4 + 0x30]
andps xmm0, xmm2
comiss xmm0, xmm3
ja 0x1006d358
inc eax
cmp eax, 3
jl 0x1006d270
mov edx, dword [0x103a0914]
test edx, edx
jne 0x1006d31a
mov edx, 0x81cc9dc5
xor ecx, ecx
nop dword [eax]
movsx eax, byte [ecx + str.m_vecBaseVelocity]
inc ecx
xor eax, edx
imul edx, eax, 0x1100192
cmp ecx, 0x11
jb 0x1006d2a0
mov eax, dword [edi]
mov ecx, edi
mov dword [esp + 0x28], edx
mov eax, dword [eax + 0x44]
call eax
mov dword [esp + 0x2c], eax
xor esi, esi
mov eax, 0x81cc9dc5
nop dword [eax]
movsx ecx, byte [esi + str.m_vecBaseVelocity]
inc esi
xor ecx, eax
imul eax, ecx, 0x1100192
cmp esi, 0x11
jb 0x1006d2d0
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
call fcn.1006cc50
movss xmm2, dword [0x1038e2f0]
mov edx, eax
mov eax, dword [esp + 0x24]
movss xmm3, dword [0x1038d8a4]
lea ecx, [eax + eax*4]
xor edx, ecx
rol edx, 0x20
mov dword [0x103a0914], edx
mov esi, 0x81cc9dc5
xor ecx, ecx
movsx eax, byte [ecx + str.m_vecBaseVelocity]
inc ecx
xor eax, esi
imul esi, eax, 0x1100192
cmp ecx, 0x11
jb 0x1006d321
mov ecx, dword [esp + 8]
lea eax, [esi + esi*4]
ror edx, 0x20
xor edx, eax
mov eax, dword [ecx + 0x44]
mov dword [edx + edi], eax
mov eax, dword [ecx + 0x48]
mov dword [edx + edi + 4], eax
mov eax, dword [ecx + 0x4c]
mov dword [edx + edi + 8], eax
jmp 0x1006d35f
mov byte [0x103bd0d9], 1
mov eax, dword [0x103a5624]
movq xmm0, qword [edi + eax]
mov eax, dword [edi + eax + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
movq qword [esp + 0xc], xmm0
movq xmm0, qword [eax + 0x50]
mov eax, dword [eax + 0x58]
movq qword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x18]
subss xmm0, dword [esp + 0xc]
mov dword [esp + 0x20], eax
xor eax, eax
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x1c]
subss xmm0, dword [esp + 0x10]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x20]
subss xmm0, dword [esp + 0x14]
movss dword [esp + 0x38], xmm0
nop word [eax + eax]
movss xmm0, dword [esp + eax*4 + 0x30]
andps xmm0, xmm2
comiss xmm0, xmm3
ja 0x1006d404
inc eax
cmp eax, 3
jl 0x1006d3d0
mov ecx, dword [esp + 8]
mov edx, dword [0x103a5624]
mov eax, dword [ecx + 0x50]
mov dword [edi + edx], eax
mov eax, dword [ecx + 0x54]
mov dword [edi + edx + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [edi + edx + 8], eax
jmp 0x1006d40b
mov byte [0x103bd0d9], 1
mov eax, dword [0x103a5618]
movq xmm0, qword [edi + eax]
mov eax, dword [edi + eax + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
movq qword [esp + 0xc], xmm0
movq xmm0, qword [eax + 0x68]
mov eax, dword [eax + 0x70]
movq qword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x18]
subss xmm0, dword [esp + 0xc]
mov dword [esp + 0x20], eax
xor eax, eax
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x1c]
subss xmm0, dword [esp + 0x10]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x20]
subss xmm0, dword [esp + 0x14]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [esp + eax*4 + 0x30]
andps xmm0, xmm2
comiss xmm0, xmm3
ja 0x1006d4a5
inc eax
cmp eax, 3
jl 0x1006d471
mov ecx, dword [esp + 8]
mov edx, dword [0x103a5618]
mov eax, dword [ecx + 0x68]
mov dword [edi + edx], eax
mov eax, dword [ecx + 0x6c]
mov dword [edi + edx + 4], eax
mov eax, dword [ecx + 0x70]
mov dword [edi + edx + 8], eax
jmp 0x1006d4ac
mov byte [0x103bd0d9], 1
mov eax, dword [0x103a5620]
movq xmm0, qword [edi + eax]
mov eax, dword [edi + eax + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
movq qword [esp + 0xc], xmm0
movq xmm0, qword [eax + 0x5c]
mov eax, dword [eax + 0x64]
movq qword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x18]
subss xmm0, dword [esp + 0xc]
mov dword [esp + 0x20], eax
xor eax, eax
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x1c]
subss xmm0, dword [esp + 0x10]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x20]
subss xmm0, dword [esp + 0x14]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [esp + eax*4 + 0x30]
andps xmm0, xmm2
comiss xmm0, xmm3
ja 0x1006d546
inc eax
cmp eax, 3
jl 0x1006d512
mov ecx, dword [esp + 8]
mov edx, dword [0x103a5620]
mov eax, dword [ecx + 0x5c]
mov dword [edi + edx], eax
mov eax, dword [ecx + 0x60]
mov dword [edi + edx + 4], eax
mov eax, dword [ecx + 0x64]
mov dword [edi + edx + 8], eax
jmp 0x1006d54d
mov byte [0x103bd0d9], 1
mov eax, dword [0x103a561c]
movq xmm0, qword [edi + eax]
mov eax, dword [edi + eax + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
movq qword [esp + 0xc], xmm0
movq xmm0, qword [eax + 0x74]
mov eax, dword [eax + 0x7c]
movq qword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x18]
subss xmm0, dword [esp + 0xc]
mov dword [esp + 0x20], eax
xor eax, eax
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x1c]
subss xmm0, dword [esp + 0x10]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x20]
subss xmm0, dword [esp + 0x14]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [esp + eax*4 + 0x30]
andps xmm0, xmm2
comiss xmm0, xmm3
ja 0x1006d5e7
inc eax
cmp eax, 3
jl 0x1006d5b3
mov ecx, dword [esp + 8]
mov edx, dword [0x103a561c]
mov eax, dword [ecx + 0x74]
mov dword [edi + edx], eax
mov eax, dword [ecx + 0x78]
mov dword [edi + edx + 4], eax
mov eax, dword [ecx + 0x7c]
mov dword [edi + edx + 8], eax
jmp 0x1006d5ee
mov byte [0x103bd0d9], 1
mov eax, dword [0x103a5548]
movss xmm0, dword [edi + eax]
mov eax, dword [esp + 8]
movss xmm1, dword [eax + 0x18]
subss xmm1, xmm0
andps xmm1, xmm2
comiss xmm3, xmm1
jb 0x1006d622
mov eax, dword [esp + 8]
movss xmm0, dword [eax + 0x18]
mov eax, dword [0x103a5548]
movss dword [edi + eax], xmm0
jmp 0x1006d629
mov byte [0x103bd0d9], 1
mov eax, dword [0x103a559c]
movss xmm0, dword [edi + eax]
mov eax, dword [esp + 8]
movss xmm1, dword [eax + 0x10]
subss xmm1, xmm0
andps xmm1, xmm2
comiss xmm3, xmm1
jb 0x1006d65d
mov eax, dword [esp + 8]
movss xmm0, dword [eax + 0x10]
mov eax, dword [0x103a559c]
movss dword [edi + eax], xmm0
jmp 0x1006d664
mov byte [0x103bd0d9], 1
mov eax, dword [0x103a55a0]
movss xmm0, dword [edi + eax]
mov eax, dword [esp + 8]
movss xmm1, dword [eax + 0x14]
subss xmm1, xmm0
andps xmm1, xmm2
comiss xmm3, xmm1
jb 0x1006d698
mov eax, dword [esp + 8]
movss xmm0, dword [eax + 0x14]
mov eax, dword [0x103a55a0]
movss dword [edi + eax], xmm0
jmp 0x1006d69f
mov byte [0x103bd0d9], 1
mov ecx, dword [0x103bce24]
mov eax, dword [0x103a564c]
push ecx
mov edx, dword [ecx]
mov eax, dword [edi + eax]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
test eax, eax
je 0x1006d7d3
mov ecx, dword [0x103bce24]
mov eax, dword [0x103a564c]
push ecx
mov edx, dword [ecx]
mov eax, dword [edi + eax]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
mov ecx, dword [0x103a56a8]
movss xmm0, dword [ecx + eax]
mov eax, dword [esp + 8]
movss xmm1, dword [eax + 0xc]
subss xmm1, xmm0
movss xmm0, dword [0x1038d8a4]
andps xmm1, xmmword [0x1038e2f0]
comiss xmm0, xmm1
jb 0x1006d743
mov eax, dword [esp + 8]
mov ecx, dword [0x103bce24]
push ecx
movss xmm0, dword [eax + 0xc]
mov edx, dword [ecx]
mov eax, dword [0x103a564c]
movss dword [esp + 0x28], xmm0
mov esi, dword [edx + 0x10]
mov edx, esp
mov eax, dword [edi + eax]
mov dword [edx], eax
call esi
mov ecx, dword [0x103a56a8]
movss xmm0, dword [esp + 0x24]
movss dword [eax + ecx], xmm0
jmp 0x1006d74a
mov byte [0x103bd0d9], 1
mov ecx, dword [0x103bce24]
mov eax, dword [0x103a564c]
push ecx
mov edx, dword [ecx]
mov eax, dword [edi + eax]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
mov ecx, dword [0x103a56a4]
movss xmm0, dword [ecx + eax]
mov eax, dword [esp + 8]
movss xmm1, dword [eax + 8]
subss xmm1, xmm0
movss xmm0, dword [0x1038d8a4]
andps xmm1, xmmword [0x1038e2f0]
comiss xmm0, xmm1
jb 0x1006d7cc
mov eax, dword [esp + 8]
mov ecx, dword [0x103bce24]
push ecx
movss xmm0, dword [eax + 8]
mov edx, dword [ecx]
mov eax, dword [0x103a564c]
movss dword [esp + 0x28], xmm0
mov esi, dword [edx + 0x10]
mov edx, esp
mov eax, dword [edi + eax]
mov dword [edx], eax
call esi
mov ecx, dword [0x103a56a4]
movss xmm0, dword [esp + 0x24]
movss dword [eax + ecx], xmm0
jmp 0x1006d7d3
mov byte [0x103bd0d9], 1
mov eax, dword [0x103a5710]
movss xmm0, dword [edi + eax]
mov eax, dword [esp + 8]
movss xmm1, dword [eax + 0x1c]
subss xmm1, xmm0
movss xmm0, dword [0x1038d888]
andps xmm1, xmmword [0x1038e2f0]
comiss xmm0, xmm1
jb 0x1006d813
mov eax, dword [esp + 8]
movss xmm0, dword [eax + 0x1c]
mov eax, dword [0x103a5710]
movss dword [edi + eax], xmm0
jmp 0x1006d81a
mov byte [0x103bd0d9], 1
mov eax, dword [0x103a5544]
test byte [edi + eax], 1
je 0x1006d831
mov eax, dword [0x103a5548]
mov dword [edi + eax], 0
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
xor ecx, esp
call fcn.1012583c
mov esp, ebp
pop ebp
ret 8