Function at 0x10059540
Capabilities:
Encode data using xor

Disassembly:
push ecx
push 0
lea eax, [esp + 4]
mov dword [esp + 4], 0
push eax
push 0
push 0x10189750
call dword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
cmp dword [esp], 0
je 0x10057d48
call fcn.10057d60
push 0
push 0
push 0x10189750
call dword [sym.imp.KERNEL32.dll_InitOnceComplete]
pop ecx
ret
sub esp, 0x90
push ebx
push ebp
push esi
xor ecx, ecx
mov ebp, 1
push edi
mov dword [esp + 0x10], ecx
mov ebx, 0x1019205c
nop word [eax + eax]
xor edi, edi
add ecx, 2
bts edi, ecx
mov eax, ebp
rol eax, 2
xor esi, esi
dec eax
cmp ecx, 0x20
cdq
cmovae esi, edi
xor edi, esi
cmp ecx, 0x40
push edx
cmovae esi, edi
shld esi, edi, 0x17
push eax
push esi
shl edi, 0x17
push edi
call fcn.1006ae60
mov ecx, dword [esp + 0x10]
inc ecx
rol ebp, 1
mov dword [esp + 0x10], ecx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movaps xmm0, xmm1
addss xmm0, xmm1
cvttss2si eax, xmm0
movaps xmm0, xmm1
mulss xmm1, dword [0x100adfcc]
mov dword [ebx - 4], eax
mulss xmm0, dword [0x100adfd0]
cvttss2si eax, xmm0
mov dword [ebx], eax
cvttss2si eax, xmm1
mov dword [ebx + 4], eax
add ebx, 0xc
cmp ebx, 0x10192110
jl 0x10059560
movsd xmm0, qword [0x100adf78]
xor esi, esi
movsd qword [esp + 0x18], xmm0
nop word [eax + eax]
movd xmm0, esi
sub esp, 8
cvtdq2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_cbrt]
fmul qword [esp + 0x18]
add esp, 8
fstp qword [esp + esi*8 + 0x20]
inc esi
cmp esi, 0x10
jl 0x100595f0
movsd xmm2, qword [0x100adbb8]
lea edi, [esp + 0x20]
xor edx, edx
lea ebx, [esp + 0x40]
lea ebp, [esp + 0x50]
mov esi, 0x10189f5c
nop dword [eax + eax]
movsd xmm1, qword [esp + 0x18]
test edx, edx
je 0x1005965c
test dl, 3
jne 0x1005965c
movaps xmm0, xmm1
addsd xmm1, xmm0
movsd qword [esp + 0x18], xmm1
mov eax, edx
lea ecx, [esi + 4]
and eax, 3
mulsd xmm1, qword [eax*8 + 0x100adcc8]
xor eax, eax
mulsd xmm1, xmm2
unpcklpd xmm1, xmm1
nop word [eax + eax]
movups xmm0, xmmword [edi + eax*8]
lea ecx, [ecx + 0x20]
mulpd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movsd qword [ecx - 0x28], xmm0
movups xmm0, xmmword [esp + eax*8 + 0x30]
mulpd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movsd qword [ecx - 0x20], xmm0
movups xmm0, xmmword [ebx + eax*8]
mulpd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movsd qword [ecx - 0x18], xmm0
movups xmm0, xmmword [ebp + eax*8]
add eax, 8
mulpd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movsd qword [ecx - 0x10], xmm0
cmp eax, 0x10
jl 0x10059680
mov eax, dword [esi]
add esi, 0x40
mov dword [edx*4 + 0x10189758], eax
inc edx
cmp esi, 0x10191f5c
jl 0x10059640
xor edi, edi
nop dword [eax]
lea eax, [edi + 1]
mov ebx, edi
and ebx, 1
mov dword [esp + 0x18], eax
mov ebp, eax
xor esi, esi
mov eax, ebx
sar ebp, 1
xor eax, 1
mov dword [esp + 0x10], eax
nop dword [eax + eax]
mov eax, esi
sub esp, 8
not eax
imul eax, ebp
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x100adfd8]
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_exp2]
mov eax, dword [esp + 0x18]
add esp, 8
lea eax, [eax + esi*2]
shl eax, 4
add eax, edi
fstp dword [eax*4 + 0x10191f58]
lea eax, [ebx + esi*2]
inc esi
shl eax, 4
add eax, edi
mov dword [eax*4 + 0x10191f58], 0x3f800000
cmp esi, 2
jl 0x10059710
mov edi, dword [esp + 0x18]
cmp edi, 0x10
jl 0x100596f0
call fcn.1005e2c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
jmp 0x10057d20