Function at 0x1005abcc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xac
mov eax, dword [0x100ba2d8]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [0x100bb674]
mov eax, ecx
imul ecx, ecx, 0xe
imul eax, eax, 0x24
push ebx
mov ebx, dword [0x100bb594]
sub ebx, eax
mov dword [ebp - 0x6c], eax
mov edx, ebx
sub edx, eax
add eax, ebx
mov dword [ebp - 0x74], edx
cdq
sub eax, edx
sar eax, 1
push esi
mov esi, dword [0x100bb690]
push edi
mov edi, dword [0x100bb598]
mov dword [ebp - 0x5c], eax
sub edi, ecx
mov eax, edi
sub eax, ecx
mov dword [ebp - 0x68], eax
lea eax, [edi + ecx]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x60], eax
call fcn.1005fd93
push 1
push dword [ebp - 0x60]
push ebx
push dword [ebp - 0x60]
push dword [ebp - 0x6c]
call fcn.100608d1
add esp, 0x14
push 1
push edi
push dword [ebp - 0x5c]
push dword [ebp - 0x64]
push dword [ebp - 0x5c]
call fcn.100608d1
mov ecx, dword [0x100e0888]
xor edi, edi
inc edi
sub edi, ecx
lea eax, [ecx - 1]
add esp, 0x14
cmp edi, eax
jg 0x1005accc
mov eax, dword [ebp - 0x68]
imul eax, eax, 0xa
mov dword [ebp - 0x60], eax
lea eax, [ecx + edi]
imul eax, dword [ebp - 0x74]
cdq
add ecx, ecx
idiv ecx
mov dword [ebp - 0x70], 0x13
mov esi, eax
mov eax, dword [ebp - 0x60]
add esi, dword [ebp - 0x6c]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
cdq
mov ecx, 0xc8
idiv ecx
push esi
add eax, dword [ebp - 0x64]
call fcn.1005fe72
mov eax, dword [ebp - 0x60]
add dword [ebp - 0x5c], eax
dec dword [ebp - 0x70]
pop ecx
jne 0x1005ac9e
mov ecx, dword [0x100e0888]
inc edi
lea eax, [ecx - 1]
cmp edi, eax
jle 0x1005ac80
mov dword [ebp - 0x5c], 1
fld qword [0x100e0998]
push ecx
fadd qword [0x100a87a0]
push ecx
fstp qword [esp]
call fcn.10072490
mov eax, dword [ebp - 0x5c]
fstp qword [ebp - 0x80]
dec eax
pop ecx
pop ecx
je 0x1005ad1e
dec eax
je 0x1005ad0c
dec eax
jne 0x1005ad33
fld qword [0x100aa1e0]
xor edi, edi
mov dword [ebp - 0x60], str.INTE
inc edi
jmp 0x1005ad2d
fld qword [0x100aa888]
push 3
mov dword [ebp - 0x60], str.EMOT
pop edi
jmp 0x1005ad2d
fld qword [0x100aa880]
mov dword [ebp - 0x60], str.PHYS
xor edi, edi
fstp qword [ebp - 0x90]
mov esi, dword [edi*4 + 0x100ed374]
call fcn.1005fd93
fild dword [0x100e0888]
mov esi, dword [0x100e0888]
mov edi, esi
fsubr qword [ebp - 0x80]
neg edi
fstp qword [ebp - 0x80]
cmp edi, esi
jg 0x1005ae22
fild dword [ebp - 0x68]
fstp qword [ebp - 0xa8]
fld qword [ebp - 0x80]
lea eax, [esi + edi]
imul eax, dword [ebp - 0x74]
fdiv qword [ebp - 0x90]
cdq
lea ecx, [esi + esi]
idiv ecx
fmul qword [0x100a8d60]
add eax, dword [ebp - 0x6c]
mov dword [ebp - 0x70], eax
call fcn.100721c0
fld qword [0x100a8868]
fmul st(1), st(0)
fsubrp st(1)
fmul qword [ebp - 0xa8]
fdiv qword [0x100aac00]
call fcn.100722b0
mov ecx, dword [ebp - 0x64]
sub ecx, eax
neg esi
mov dword [ebp - 0x9c], ecx
cmp edi, esi
jle 0x1005add5
push 0
push ecx
push dword [ebp - 0x70]
push dword [ebp - 0x98]
push dword [ebp - 0x94]
call fcn.100608d1
add esp, 0x14
jmp 0x1005adf2
mov eax, dword [0x100bb670]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x60]
push 0x20
push eax
mov eax, dword [ebp - 0x6c]
cdq
sub eax, edx
sar eax, 1
call fcn.100615a9
pop ecx
pop ecx
fld qword [ebp - 0x80]
mov eax, dword [ebp - 0x70]
fadd qword [0x100a87e0]
mov esi, dword [0x100e0888]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x9c]
inc edi
fstp qword [ebp - 0x80]
mov dword [ebp - 0x98], eax
cmp edi, esi
jle 0x1005ad66
inc dword [ebp - 0x5c]
cmp dword [ebp - 0x5c], 3
jle 0x1005acd3
mov esi, dword [0x100bb68c]
call fcn.1005fd93
mov eax, dword [ebp - 0x68]
mov edi, eax
imul edi, edi, 0xfffffff6
imul eax, eax, 0xc8
push 0xffffffffffffff9c
pop esi
mov dword [ebp - 0x68], eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
xor eax, eax
test esi, esi
sets al
lea eax, [eax + eax + 0x2b]
push eax
lea eax, [ebp - 0x58]
push str._c_3d__
push eax
call fcn.10062ff4
mov eax, dword [ebp - 0x68]
cdq
mov ecx, 0xc8
idiv ecx
mov ecx, dword [0x100bb674]
push 0x20
add eax, dword [ebp - 0x78]
lea eax, [eax + ecx*2]
push eax
mov eax, dword [0x100bb594]
add eax, ebx
cdq
sub eax, edx
sar eax, 1
lea ecx, [ebp - 0x58]
call fcn.100615a9
add dword [ebp - 0x68], edi
add esi, 0xa
add esp, 0x18
cmp esi, 0x64
jle 0x1005ae4e
mov ecx, dword [0x100e0888]
mov eax, ecx
push 7
cdq
pop esi
idiv esi
xor edx, edx
inc edx
mov dword [ebp - 0x64], eax
cmp eax, edx
jg 0x1005aec7
mov dword [ebp - 0x64], edx
mov eax, ecx
cdq
idiv dword [ebp - 0x64]
mov esi, eax
imul esi, dword [ebp - 0x64]
neg esi
jmp 0x1005af2f
lea eax, [ecx + esi]
imul eax, dword [ebp - 0x74]
cdq
add ecx, ecx
idiv ecx
mov edi, eax
add edi, dword [ebp - 0x6c]
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
xor eax, eax
test esi, esi
sets al
lea eax, [eax + eax + 0x2b]
push eax
lea eax, [ebp - 0x58]
push str._c_d
push eax
call fcn.10062ff4
mov eax, dword [0x100bb674]
mov ecx, dword [ebp - 0x78]
add eax, eax
sub ecx, eax
push 0x24
push ecx
mov eax, edi
lea ecx, [ebp - 0x58]
call fcn.100615a9
mov ecx, dword [0x100e0888]
add esp, 0x18
add esi, dword [ebp - 0x64]
cmp esi, ecx
jl 0x1005aed7
mov eax, dword [0x100bb670]
mov esi, dword [ebp - 0x6c]
push eax
push eax
push dword [ebp - 0x84]
mov eax, dword [ebp - 0x78]
push ebx
call fcn.1006036e
mov ecx, dword [ebp - 4]
add esp, 0x10
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10062fe5
leave
ret