Function at 0x1005cba3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xac
mov eax, dword [0x100c77f4]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [0x100c8bcc]
mov eax, ecx
imul ecx, ecx, 0xe
imul eax, eax, 0x24
push ebx
mov ebx, dword [0x100c8aec]
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 [0x100c8be8]
push edi
mov edi, dword [0x100c8af0]
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.10061d6b
push 1
push dword [ebp - 0x60]
push ebx
push dword [ebp - 0x60]
push dword [ebp - 0x6c]
call fcn.100628a9
add esp, 0x14
push 1
push edi
push dword [ebp - 0x5c]
push dword [ebp - 0x64]
push dword [ebp - 0x5c]
call fcn.100628a9
mov ecx, dword [0x100edde0]
xor edi, edi
inc edi
sub edi, ecx
lea eax, [ecx - 1]
add esp, 0x14
cmp edi, eax
jg 0x1005cca3
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.10061e4a
mov eax, dword [ebp - 0x60]
add dword [ebp - 0x5c], eax
dec dword [ebp - 0x70]
pop ecx
jne 0x1005cc75
mov ecx, dword [0x100edde0]
inc edi
lea eax, [ecx - 1]
cmp edi, eax
jle 0x1005cc57
mov dword [ebp - 0x5c], 1
fld qword [0x100edef0]
push ecx
fadd qword [0x100b4970]
push ecx
fstp qword [esp]
call fcn.1007d620
mov eax, dword [ebp - 0x5c]
fstp qword [ebp - 0x80]
dec eax
pop ecx
pop ecx
je 0x1005ccf5
dec eax
je 0x1005cce3
dec eax
jne 0x1005cd0a
fld qword [0x100b63b0]
xor edi, edi
mov dword [ebp - 0x60], str.INTE
inc edi
jmp 0x1005cd04
fld qword [0x100b6a58]
push 3
mov dword [ebp - 0x60], str.EMOT
pop edi
jmp 0x1005cd04
fld qword [0x100b6a50]
mov dword [ebp - 0x60], str.PHYS
xor edi, edi
fstp qword [ebp - 0x90]
mov esi, dword [edi*4 + 0x100faf74]
call fcn.10061d6b
fild dword [0x100edde0]
mov esi, dword [0x100edde0]
mov edi, esi
fsubr qword [ebp - 0x80]
neg edi
fstp qword [ebp - 0x80]
cmp edi, esi
jg 0x1005cdf9
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 [0x100b4f30]
add eax, dword [ebp - 0x6c]
mov dword [ebp - 0x70], eax
call fcn.1007d350
fld qword [0x100b4a38]
fmul st(1), st(0)
fsubrp st(1)
fmul qword [ebp - 0xa8]
fdiv qword [0x100b6de8]
call fcn.1007d440
mov ecx, dword [ebp - 0x64]
sub ecx, eax
neg esi
mov dword [ebp - 0x9c], ecx
cmp edi, esi
jle 0x1005cdac
push 0
push ecx
push dword [ebp - 0x70]
push dword [ebp - 0x98]
push dword [ebp - 0x94]
call fcn.100628a9
add esp, 0x14
jmp 0x1005cdc9
mov eax, dword [0x100c8bc8]
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.10063581
pop ecx
pop ecx
fld qword [ebp - 0x80]
mov eax, dword [ebp - 0x70]
fadd qword [0x100b49b0]
mov esi, dword [0x100edde0]
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 0x1005cd3d
inc dword [ebp - 0x5c]
cmp dword [ebp - 0x5c], 3
jle 0x1005ccaa
mov esi, dword [0x100c8be4]
call fcn.10061d6b
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.100675d6
mov eax, dword [ebp - 0x68]
cdq
mov ecx, 0xc8
idiv ecx
mov ecx, dword [0x100c8bcc]
push 0x20
add eax, dword [ebp - 0x78]
lea eax, [eax + ecx*2]
push eax
mov eax, dword [0x100c8aec]
add eax, ebx
cdq
sub eax, edx
sar eax, 1
lea ecx, [ebp - 0x58]
call fcn.10063581
add dword [ebp - 0x68], edi
add esi, 0xa
add esp, 0x18
cmp esi, 0x64
jle 0x1005ce25
mov ecx, dword [0x100edde0]
mov eax, ecx
push 7
cdq
pop esi
idiv esi
xor edx, edx
inc edx
mov dword [ebp - 0x64], eax
cmp eax, edx
jg 0x1005ce9e
mov dword [ebp - 0x64], edx
mov eax, ecx
cdq
idiv dword [ebp - 0x64]
mov esi, eax
imul esi, dword [ebp - 0x64]
neg esi
jmp 0x1005cf06
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.100675d6
mov eax, dword [0x100c8bcc]
mov ecx, dword [ebp - 0x78]
add eax, eax
sub ecx, eax
push 0x24
push ecx
mov eax, edi
lea ecx, [ebp - 0x58]
call fcn.10063581
mov ecx, dword [0x100edde0]
add esp, 0x18
add esi, dword [ebp - 0x64]
cmp esi, ecx
jl 0x1005ceae
mov eax, dword [0x100c8bc8]
mov esi, dword [ebp - 0x6c]
push eax
push eax
push dword [ebp - 0x84]
mov eax, dword [ebp - 0x78]
push ebx
call fcn.10062346
mov ecx, dword [ebp - 4]
add esp, 0x10
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10067574
leave
ret