Function at 0x100ccab0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [0x10273240]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, ecx
push ebx
lea ebx, [eax + 8]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], ebx
mov byte [eax + 0xcac99], 0
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
je 0x100ccf14
mov eax, dword [0x102782dc]
cmp byte [eax + 0x18], 0
jne 0x100ccb00
cmp byte [eax + 0x19], 0
je 0x100ccb00
cmp dword [eax + 0x1c], 0
jg 0x100ccb00
cmp dword [eax + 4], 1
jne 0x100ccb00
mov ecx, dword [eax + 0x28]
jmp 0x100ccb02
xor ecx, ecx
mov eax, dword [0x101ac020]
sub eax, ecx
push edi
push eax
call fcn.100651a0
mov edi, dword [ebx]
fstp dword [ebp - 0x20]
movss xmm0, dword [ebp - 0x20]
push ecx
subss xmm0, dword [edi + 0x14]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_fabs
fstp dword [ebp - 0x20]
movss xmm0, dword [ebp - 0x20]
add esp, 8
comiss xmm0, dword [0x1016a658]
jbe 0x100ccb5e
push dword [ebx]
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.100cc740
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10106b52
mov esp, ebp
pop ebp
ret
movss xmm0, dword [edi + 0x18]
ucomiss xmm0, dword [0x1016a6d4]
lahf
test ah, 0x44
jnp 0x100ccf13
mov edx, dword [edi + 0x20]
test edx, edx
je 0x100ccf13
cmp dword [edi + 8], 0xffffffff
jne 0x100ccf13
cmp byte [edi], 0
je 0x100ccf13
cmp byte [edi + 1], 0
je 0x100ccf13
mov ecx, dword [0x10274044]
push esi
push edx
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, eax
test esi, esi
je 0x100ccf05
mov ecx, dword [esi]
mov edx, dword [ecx + 0x278]
mov ecx, esi
call edx
test al, al
je 0x100ccf05
cmp dword [edi + 0x50], esi
jne 0x100ccf05
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
call dword [eax + 0x20]
mov ecx, dword [0x10274090]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x80]
call edx
test eax, eax
je 0x100ccf05
mov eax, dword [edi + 0x38]
lea ecx, [edi + 0x24]
movq xmm0, qword [edi + 0x30]
push 0
mov dword [ebp - 0x44], eax
lea eax, [edi + 0x48]
push eax
push dword [edi + 0x10]
lea eax, [ebp - 0x4c]
movq qword [ebp - 0x4c], xmm0
push dword [edi + 0x50]
push eax
push ecx
call fcn.100d7ae0
add esp, 0x18
test al, al
jne 0x100ccd93
movss xmm0, dword [edi + 0x30]
sub esp, 0x10
subss xmm0, dword [edi + 0x24]
movsd xmm1, qword [0x10170468]
movsd qword [esp + 8], xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movss xmm0, dword [edi + 0x34]
subss xmm0, dword [edi + 0x28]
movsd xmm1, qword [0x10170468]
movsd qword [esp + 8], xmm1
fstp qword [ebp - 0x24]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movss xmm0, dword [edi + 0x38]
subss xmm0, dword [edi + 0x2c]
movsd xmm1, qword [0x10170468]
movsd qword [esp + 8], xmm1
fstp qword [ebp - 0x30]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm0, qword [ebp - 0x30]
add esp, 8
addsd xmm0, qword [ebp - 0x24]
fstp qword [ebp - 0x38]
addsd xmm0, qword [ebp - 0x38]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movss xmm0, dword [edi + 0x3c]
subss xmm0, dword [edi + 0x24]
movsd xmm1, qword [0x10170468]
movsd qword [esp], xmm1
sub esp, 8
fstp dword [ebp - 0x34]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movss xmm0, dword [edi + 0x40]
subss xmm0, dword [edi + 0x28]
movsd xmm1, qword [0x10170468]
movsd qword [esp + 8], xmm1
fstp qword [ebp - 0x24]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movss xmm0, dword [edi + 0x44]
subss xmm0, dword [edi + 0x2c]
movsd xmm1, qword [0x10170468]
movsd qword [esp + 8], xmm1
fstp qword [ebp - 0x30]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm0, qword [ebp - 0x30]
add esp, 8
addsd xmm0, qword [ebp - 0x24]
fstp qword [ebp - 0x40]
addsd xmm0, qword [ebp - 0x40]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
mov esi, dword [0x10278314]
lea eax, [ebp - 0x1c]
add esp, 8
fstp dword [ebp - 0x20]
movss xmm0, dword [ebp - 0x20]
comiss xmm0, dword [ebp - 0x34]
push eax
jbe 0x100ccd82
mov ecx, 0x1026e4b0
call fcn.100508c0
mov ecx, esi
jmp 0x100ccef0
mov ecx, 0x1026e4d0
call fcn.10051420
mov ecx, esi
jmp 0x100ccef0
mov eax, dword [0x102741dc]
test al, 1
jne 0x100ccdb0
or eax, 1
mov dword [0x102741dc], eax
mov eax, dword [0x102741d4]
mov dword [0x102741d8], eax
jmp 0x100ccdb5
mov eax, dword [0x102741d8]
cmp dword [eax + esi], 0
jne 0x100cce20
mov eax, dword [0x102741e4]
test al, 1
jne 0x100ccdd8
or eax, 1
mov dword [0x102741e4], eax
mov eax, dword [0x102741d0]
mov dword [0x102741e0], eax
jmp 0x100ccddd
mov eax, dword [0x102741e0]
cmp dword [eax + esi], 0
jle 0x100cce20
mov esi, dword [0x10278314]
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x1026e4e8
call fcn.10050c00
push 0
push 1
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
call fcn.100f6880
lea ecx, [ebp - 0x1c]
call fcn.10045360
mov eax, dword [edi + 0x20]
mov ecx, dword [ebp - 0x2c]
inc dword [ecx + eax*4 + 0x13fc]
jmp 0x100ccf05
cmp byte [0x1026e508], 0
mov edi, dword [0x10278314]
je 0x100cce86
cmp byte [0x1026e509], 0
jne 0x100cced8
mov byte [0x1026e509], 1
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x1026e524]
xor ebx, dword [0x1026e520]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov eax, ebx
shrd eax, edx, 7
xor al, bl
xor byte [esi + 0x1026e50a], al
inc esi
cmp esi, 0x14
jb 0x100cce45
jmp 0x100cced5
xor esi, esi
nop dword [eax + eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x1026e524]
xor ebx, dword [0x1026e520]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov eax, ebx
shrd eax, edx, 7
xor al, byte [esi + 0x1026e50a]
xor al, bl
mov byte [esi + 0x1026e50a], al
inc esi
cmp esi, 0x14
jb 0x100cce90
mov ebx, dword [ebp - 0x34]
lea eax, [ebp - 0x25]
push eax
push 0x1026e51d
push 0x1026e50a
lea ecx, [ebp - 0x1c]
call fcn.1004f9c0
mov ecx, edi
push 0
push 1
lea eax, [ebp - 0x1c]
push eax
call fcn.100f6880
lea ecx, [ebp - 0x1c]
call fcn.10045360
push dword [ebx]
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.100cc740
pop esi
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.10106b52
mov esp, ebp
pop ebp
ret