Function at 0x1027c750
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [ebp + 8]
push ebx
add eax, 0xe0
push esi
mov esi, dword [ebp + 0x30]
push edi
mov ecx, dword [eax + 0x1a78]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [eax + 0x1008]
mov dword [ebp - 0x10], ecx
mov ebx, dword [eax + 0x8c]
mov eax, dword [ebp + 0x20]
push eax
mov eax, dword [ebp + 0x1c]
push eax
push dword [ebp + 0x18]
shr ebx, 3
push dword [ebp + 0x14]
and ebx, 1
push dword [ebp + 0x10]
push edi
push esi
push dword [ebp + 0x34]
push ebx
push ecx
call fcn.101e9300
push dword [ebp + 0x24]
push esi
push edi
push ebx
push dword [ebp - 0x10]
mov ebx, dword [ebp + 0x38]
push ebx
push 0
mov dword [ebp - 0x10], ebx
call fcn.10212550
movzx ecx, bl
add esp, 0x44
mov eax, ecx
xor edx, edx
shl eax, 7
mov esi, 1
lea ebx, [eax + 0x10442900]
mov eax, dword [ecx*4 + 0x1064f660]
mov dword [ebp - 0x14], ebx
mov cl, byte [eax + 0x1064f5c0]
mov eax, 2
shl esi, cl
mov ecx, dword [ebp - 0x10]
cmp cl, 3
mov dword [ebp + 0x38], esi
cmove eax, edx
mov dword [ebp - 8], eax
lea eax, [ebp - 0x34]
push eax
push edx
push edx
push edx
push ecx
call fcn.101e9210
mov ecx, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ecx + 0x10e8]
test byte [eax + 0x8c], 8
lea eax, [ebp - 0x34]
push eax
push ebx
lea eax, [ebp - 4]
push eax
je 0x1027c852
mov edi, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x28]
push edi
push ebx
mov ebx, dword [ebp + 0x24]
push ecx
push esi
push ebx
call fcn.101cbf00
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x44]
push dword [eax + 0x1b58]
push esi
push dword [ebp + 0x38]
push edi
push ebx
call dword [0x1075869c]
add esp, 0x34
jmp 0x1027c877
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x28]
mov edi, dword [ebp + 0x24]
push ebx
push eax
push ecx
push esi
push edi
call fcn.101cc9d0
mov esi, dword [ebp + 0x44]
push esi
push dword [ebp + 0x38]
push ebx
push edi
call dword [0x1075876c]
add esp, 0x30
mov edi, dword [ebp - 8]
mov ecx, edi
call fcn.10399140
mov ecx, eax
test edx, edx
jl 0x1027c88e
jg 0x1027c895
cmp ecx, 1
ja 0x1027c895
mov ecx, 1
xor edx, edx
mov eax, dword [ebp + 0x40]
mov dword [eax], ecx
mov ecx, edi
mov dword [eax + 4], edx
mov eax, dword [esi]
mov edx, dword [esi + 4]
call fcn.10399140
test edx, edx
jl 0x1027c8b4
jg 0x1027c8bb
cmp eax, 1
ja 0x1027c8bb
mov eax, 1
xor edx, edx
mov dword [esi], eax
mov edi, 1
mov dword [esi + 4], edx
movzx esi, word [ebp - 4]
test esi, esi
je 0x1027c92e
movsd xmm0, qword [0x103bfc08]
call fcn.103a6a20
mov ebx, dword [ebp - 0x14]
movsd qword [ebp - 0xc], xmm0
mov dword [ebp + 8], esi
mov ebx, dword [ebx]
mov ecx, dword [ebp + 0x28]
movsx eax, word [ebx]
mov eax, dword [ecx + eax*4]
cdq
mov esi, eax
xor esi, edx
sub esi, edx
movd xmm0, esi
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x103bfbf0]
call fcn.103a6a20
divsd xmm0, qword [ebp - 0xc]
xor eax, eax
test esi, esi
setg al
add ebx, 2
inc eax
add edi, eax
cvttsd2si ecx, xmm0
add edi, ecx
sub dword [ebp + 8], 1
jne 0x1027c8e7
movzx esi, word [ebp - 4]
mov eax, dword [ebp + 0x3c]
push 0
push esi
push dword [ebp + 0x20]
shl edi, 9
push dword [ebp + 0x1c]
mov dword [eax], edi
push dword [ebp - 0x10]
push 0
push 0
push dword [ebp + 0x2c]
push dword [ebp - 0x18]
call fcn.10187460
add esp, 0x24
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret