Function at 0x1006cd10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
cmp byte [0x103bd0d8], 0
push ebx
push esi
push edi
je 0x1006cf87
mov edi, dword [ebp + 0xc]
mov eax, 0x1b4e81b5
imul edi
mov ebx, dword [ebp + 8]
sar edx, 4
mov eax, edx
mov esi, dword [0x103a0914]
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x96
sub edi, eax
mov eax, dword [0x103a5590]
shl edi, 7
mov eax, dword [eax + ebx]
mov dword [edi + 0x103a09f4], eax
mov eax, dword [0x103a559c]
mov eax, dword [eax + ebx]
mov dword [edi + 0x103a09e0], eax
mov eax, dword [0x103a55a0]
mov eax, dword [eax + ebx]
mov dword [edi + 0x103a09e4], eax
mov ecx, dword [0x103a54f4]
mov eax, dword [ecx + ebx]
mov dword [edi + 0x103a09fc], eax
mov eax, dword [ecx + ebx + 4]
mov dword [edi + 0x103a0a00], eax
mov eax, dword [ecx + ebx + 8]
mov dword [edi + 0x103a0a04], eax
mov ecx, dword [0x103a5500]
mov eax, dword [ecx + ebx]
mov dword [edi + 0x103a0a08], eax
mov eax, dword [ecx + ebx + 4]
mov dword [edi + 0x103a0a0c], eax
mov eax, dword [ecx + ebx + 8]
mov dword [edi + 0x103a0a10], eax
test esi, esi
jne 0x1006ce22
mov edx, 0x81cc9dc5
xor ecx, ecx
movsx eax, byte [ecx + str.m_vecBaseVelocity]
inc ecx
xor eax, edx
imul edx, eax, 0x1100192
cmp ecx, 0x11
jb 0x1006cdc6
mov eax, dword [ebx]
mov ecx, ebx
mov dword [ebp + 0xc], edx
mov eax, dword [eax + 0x44]
call eax
mov ebx, 0x81cc9dc5
xor esi, esi
nop
movsx ecx, byte [esi + str.m_vecBaseVelocity]
inc esi
xor ecx, ebx
imul ebx, ecx, 0x1100192
cmp esi, 0x11
jb 0x1006cdf0
mov edx, dword [ebp + 0xc]
mov ecx, eax
call fcn.1006cc50
lea ecx, [ebx + ebx*4]
mov esi, eax
mov ebx, dword [ebp + 8]
xor esi, ecx
rol esi, 0x20
mov dword [0x103a0914], esi
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 0x1006ce30
lea eax, [edx + edx*4]
ror esi, 0x20
xor esi, eax
mov eax, dword [esi + ebx]
mov dword [edi + 0x103a0a14], eax
mov eax, dword [esi + ebx + 4]
mov dword [edi + 0x103a0a18], eax
mov eax, dword [esi + ebx + 8]
mov dword [edi + 0x103a0a1c], eax
mov eax, dword [0x103a5548]
mov eax, dword [eax + ebx]
mov dword [edi + 0x103a09e8], eax
mov ecx, dword [0x103a5624]
mov eax, dword [ecx + ebx]
mov dword [edi + 0x103a0a20], eax
mov eax, dword [ecx + ebx + 4]
mov dword [edi + 0x103a0a24], eax
mov eax, dword [ecx + ebx + 8]
mov dword [edi + 0x103a0a28], eax
mov ecx, dword [0x103a5618]
mov eax, dword [ecx + ebx]
mov dword [edi + 0x103a0a38], eax
mov eax, dword [ecx + ebx + 4]
mov dword [edi + 0x103a0a3c], eax
mov eax, dword [ecx + ebx + 8]
mov dword [edi + 0x103a0a40], eax
mov ecx, dword [0x103a5620]
mov eax, dword [ecx + ebx]
mov dword [edi + 0x103a0a2c], eax
mov eax, dword [ecx + ebx + 4]
mov dword [edi + 0x103a0a30], eax
mov eax, dword [ecx + ebx + 8]
mov dword [edi + 0x103a0a34], eax
mov ecx, dword [0x103a561c]
mov eax, dword [ecx + ebx]
mov dword [edi + 0x103a0a44], eax
mov eax, dword [ecx + ebx + 4]
mov dword [edi + 0x103a0a48], eax
mov eax, dword [ecx + ebx + 8]
mov dword [edi + 0x103a0a4c], eax
mov eax, dword [0x103a5710]
mov eax, dword [eax + ebx]
mov dword [edi + 0x103a09ec], eax
mov ecx, dword [0x103bce24]
mov eax, dword [0x103a564c]
push ecx
mov edx, dword [ecx]
mov eax, dword [eax + ebx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
mov ecx, eax
test ecx, ecx
jne 0x1006cf4b
mov dword [edi + 0x103a09d8], eax
mov dword [edi + 0x103a09dc], eax
mov dword [edi + 0x103a09d4], eax
pop edi
pop esi
pop ebx
pop ebp
ret 8
mov eax, dword [0x103a56a4]
mov eax, dword [eax + ecx]
mov dword [edi + 0x103a09d8], eax
mov eax, dword [0x103a56a8]
mov eax, dword [eax + ecx]
mov dword [edi + 0x103a09dc], eax
mov eax, dword [0x103a56f4]
mov eax, dword [eax + ecx]
mov dword [edi + 0x103a09d4], eax
mov eax, dword [0x103a55a4]
cmp dword [eax + ebx], 0
je 0x1006cf87
mov dword [eax + ebx], 0
pop edi
pop esi
pop ebx
pop ebp
ret 8