Function at 0x100cb430
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [0x1024b8c0]
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 0x100cb894
mov eax, dword [0x1025767c]
cmp byte [eax + 0x1c], 0
jne 0x100cb480
cmp byte [eax + 0x1d], 0
je 0x100cb480
cmp dword [eax + 0x20], 0
jg 0x100cb480
cmp dword [eax + 4], 1
jne 0x100cb480
mov ecx, dword [eax + 0x30]
jmp 0x100cb482
xor ecx, ecx
mov eax, dword [0x1018c020]
sub eax, ecx
push edi
push eax
call fcn.10064c30
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 [0x10167658]
jbe 0x100cb4de
push dword [ebx]
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.100cb0c0
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10103042
mov esp, ebp
pop ebp
ret
movss xmm0, dword [edi + 0x18]
ucomiss xmm0, dword [0x101676d4]
lahf
test ah, 0x44
jnp 0x100cb893
mov edx, dword [edi + 0x20]
test edx, edx
je 0x100cb893
cmp dword [edi + 8], 0xffffffff
jne 0x100cb893
cmp byte [edi], 0
je 0x100cb893
cmp byte [edi + 1], 0
je 0x100cb893
mov ecx, dword [0x1024c6c4]
push esi
push edx
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, eax
test esi, esi
je 0x100cb885
mov ecx, dword [esi]
mov edx, dword [ecx + 0x278]
mov ecx, esi
call edx
test al, al
je 0x100cb885
cmp dword [edi + 0x50], esi
jne 0x100cb885
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
call dword [eax + 0x20]
mov ecx, dword [0x1024c710]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x80]
call edx
test eax, eax
je 0x100cb885
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.100d6370
add esp, 0x18
test al, al
jne 0x100cb713
movss xmm0, dword [edi + 0x30]
sub esp, 0x10
subss xmm0, dword [edi + 0x24]
movsd xmm1, qword [0x1016d578]
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 [0x1016d578]
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 [0x1016d578]
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 [0x1016d578]
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 [0x1016d578]
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 [0x1016d578]
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 [0x102576ac]
lea eax, [ebp - 0x1c]
add esp, 8
fstp dword [ebp - 0x20]
movss xmm0, dword [ebp - 0x20]
comiss xmm0, dword [ebp - 0x34]
push eax
jbe 0x100cb702
mov ecx, 0x10246d10
call fcn.10050860
mov ecx, esi
jmp 0x100cb870
mov ecx, 0x10246d30
call fcn.100513c0
mov ecx, esi
jmp 0x100cb870
mov eax, dword [0x1024c85c]
test al, 1
jne 0x100cb730
or eax, 1
mov dword [0x1024c85c], eax
mov eax, dword [0x1024c854]
mov dword [0x1024c858], eax
jmp 0x100cb735
mov eax, dword [0x1024c858]
cmp dword [eax + esi], 0
jne 0x100cb7a0
mov eax, dword [0x1024c864]
test al, 1
jne 0x100cb758
or eax, 1
mov dword [0x1024c864], eax
mov eax, dword [0x1024c850]
mov dword [0x1024c860], eax
jmp 0x100cb75d
mov eax, dword [0x1024c860]
cmp dword [eax + esi], 0
jle 0x100cb7a0
mov esi, dword [0x102576ac]
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x10246d48
call fcn.10050ba0
push 0
push 1
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
call fcn.100f2e90
lea ecx, [ebp - 0x1c]
call fcn.10045300
mov eax, dword [edi + 0x20]
mov ecx, dword [ebp - 0x2c]
inc dword [ecx + eax*4 + 0x13fc]
jmp 0x100cb885
cmp byte [0x10246d68], 0
mov edi, dword [0x102576ac]
je 0x100cb806
cmp byte [0x10246d69], 0
jne 0x100cb858
mov byte [0x10246d69], 1
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x10246d84]
xor ebx, dword [0x10246d80]
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 + 0x10246d6a], al
inc esi
cmp esi, 0x14
jb 0x100cb7c5
jmp 0x100cb855
xor esi, esi
nop dword [eax + eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x10246d84]
xor ebx, dword [0x10246d80]
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 + 0x10246d6a]
xor al, bl
mov byte [esi + 0x10246d6a], al
inc esi
cmp esi, 0x14
jb 0x100cb810
mov ebx, dword [ebp - 0x34]
lea eax, [ebp - 0x25]
push eax
push 0x10246d7d
push 0x10246d6a
lea ecx, [ebp - 0x1c]
call fcn.1004f960
mov ecx, edi
push 0
push 1
lea eax, [ebp - 0x1c]
push eax
call fcn.100f2e90
lea ecx, [ebp - 0x1c]
call fcn.10045300
push dword [ebx]
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.100cb0c0
pop esi
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.10103042
mov esp, ebp
pop ebp
ret