Function at 0x1003e6c0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b8
mov eax, dword [0x10206f54]
xor eax, ebp
mov dword [ebp - 4], eax
movss xmm1, dword [ebp + 0xc]
xorps xmm0, xmm0
comiss xmm0, xmm1
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x1b8], esi
jb 0x1003e70d
mov dword [eax], 0
xor eax, eax
mov word [esi], ax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101a8b60
mov esp, ebp
pop ebp
ret
mulss xmm1, dword [0x101b2278]
movaps xmm0, xmm1
call fcn.101a8b70
mov edx, eax
movsd xmm3, qword [0x101b21f8]
mov ecx, edx
xorps xmm2, xmm2
shr ecx, 0x1f
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [ecx*8 + 0x101f2780]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x101b2260]
mulss xmm0, dword [0x101b2264]
comiss xmm2, xmm0
jbe 0x1003e763
movsd xmm1, qword [0x101b2280]
jmp 0x1003e766
movaps xmm1, xmm3
movss xmm4, dword [0x101b2278]
mulss xmm0, xmm4
cvtps2pd xmm0, xmm0
addsd xmm0, xmm1
cvttsd2si eax, xmm0
movzx eax, ax
inc eax
shr eax, 1
movzx ecx, ax
mov word [esi], cx
mov dword [ebp - 0x1a0], ecx
lea eax, [ecx*2 + 1]
mov ecx, 0x65
movzx eax, ax
mov dword [ebp - 0x1ac], eax
cmp cx, ax
jge 0x1003e7c3
mov eax, 0x32
mov dword [ebp - 0x1a0], 0x32
mov word [esi], ax
mov eax, ecx
mov dword [ebp - 0x1ac], eax
movss xmm0, dword [0x101f265c]
xor eax, eax
movd xmm1, edx
cvtdq2pd xmm1, xmm1
shr edx, 0x1f
push edi
lea edi, [ebp - 0x198]
movss dword [ebp - 0x19c], xmm0
addsd xmm1, qword [edx*8 + 0x101f2780]
movsd xmm0, qword [0x101b2270]
rep stosd dword es:[edi], eax
divsd xmm0, xmm1
mov eax, dword [ebp - 0x1a0]
mov edi, dword [ebp - 0x1ac]
movsx esi, di
movzx eax, ax
mov dword [ebp - 0x1b4], esi
mov dword [ebp - 0x1b0], eax
cvtpd2ps xmm1, xmm0
movss dword [ebp - 0x1a4], xmm1
cmp eax, esi
jge 0x1003e8d9
mov edi, dword [ebp - 0x1b0]
xor eax, eax
mov dword [ebp - 0x1a0], eax
nop
movd xmm0, eax
cvtdq2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm3
mulsd xmm0, xmm1
mulsd xmm0, xmm0
xorps xmm0, xmmword [0x101b2250]
mulsd xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_exp_precise
movsd xmm3, qword [0x101b21f8]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mov eax, esi
sub eax, edi
movaps xmm0, xmm1
addss xmm0, dword [ebp - 0x19c]
movss dword [ebp - 0x19c], xmm1
movss xmm1, dword [ebp - 0x1a4]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
movss dword [ebp + edi*4 - 0x198], xmm0
inc edi
movss dword [ebp + eax*4 - 0x19c], xmm0
mov eax, dword [ebp - 0x1a0]
inc eax
mov dword [ebp - 0x1a0], eax
cmp edi, esi
jl 0x1003e840
movss xmm4, dword [0x101b2278]
xorps xmm2, xmm2
mov edi, dword [ebp - 0x1ac]
xor eax, eax
cmp esi, 4
jl 0x1003e90e
lea ecx, [esi - 3]
addss xmm2, dword [ebp + eax*4 - 0x198]
addss xmm2, dword [ebp + eax*4 - 0x194]
addss xmm2, dword [ebp + eax*4 - 0x190]
addss xmm2, dword [ebp + eax*4 - 0x18c]
add eax, 4
cmp eax, ecx
jl 0x1003e8e3
cmp eax, esi
jge 0x1003e920
addss xmm2, dword [ebp + eax*4 - 0x198]
inc eax
cmp eax, esi
jl 0x1003e912
mov dword [ebp - 0x1a0], 0x100
test esi, esi
jle 0x1003eabc
mov edi, dword [ebp - 0x1a8]
lea eax, [ebp - 0x198]
movss xmm1, dword [0x101b2268]
sub eax, edi
mov edx, esi
mov dword [ebp - 0x1a4], eax
mov esi, dword [ebp - 0x1a0]
nop word [eax + eax]
movss xmm0, dword [eax + edi]
mov eax, esi
divss xmm0, xmm2
mulss xmm0, xmm1
mulss xmm0, xmm4
cvtps2pd xmm0, xmm0
addsd xmm0, xmm3
cvttsd2si ecx, xmm0
cmp ecx, eax
cmovl eax, ecx
mov dword [edi], eax
add edi, 4
mov eax, dword [ebp - 0x1a4]
sub edx, 1
jne 0x1003e960
mov esi, dword [ebp - 0x1b4]
xor ecx, ecx
mov edx, dword [ebp - 0x1a8]
mov edi, dword [ebp - 0x1ac]
mov dword [ebp - 0x19c], 0
cmp esi, 8
jb 0x1003ea1c
mov eax, esi
and eax, 0x80000007
jns 0x1003e9c4
dec eax
or eax, 0xfffffff8
inc eax
mov dword [ebp - 0x19c], esi
xorps xmm2, xmm2
sub dword [ebp - 0x19c], eax
xorps xmm1, xmm1
mov eax, dword [ebp - 0x19c]
nop dword [eax]
movups xmm0, xmmword [edx + ecx*4]
paddd xmm2, xmm0
movups xmm0, xmmword [edx + ecx*4 + 0x10]
add ecx, 8
paddd xmm1, xmm0
cmp ecx, eax
jl 0x1003e9e0
paddd xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [ebp - 0x19c], xmm1
mov dword [ebp - 0x1a8], 0
cmp ecx, esi
jge 0x1003eac6
mov eax, esi
sub eax, ecx
cmp eax, 2
jl 0x1003eaa7
lea eax, [esi - 1]
xor edi, edi
mov dword [ebp - 0x1a4], eax
xor esi, esi
nop dword [eax]
nop dword [eax + eax]
lea eax, [ecx*4]
add ecx, 2
add edi, dword [eax + edx]
add esi, dword [eax + edx + 4]
mov eax, ecx
mov dword [ebp - 0x1b0], eax
cmp ecx, dword [ebp - 0x1a4]
jl 0x1003ea50
mov dword [ebp - 0x1a4], edi
mov eax, edi
mov edi, esi
mov dword [ebp - 0x1a8], esi
mov esi, dword [ebp - 0x1b4]
mov dword [ebp - 0x1a8], edi
mov edi, dword [ebp - 0x1ac]
cmp ecx, esi
jl 0x1003eaa9
mov esi, dword [ebp - 0x19c]
add eax, dword [ebp - 0x1a8]
add esi, eax
jmp 0x1003eacc
xor eax, eax
mov esi, dword [ebp - 0x19c]
add esi, dword [edx + ecx*4]
add eax, dword [ebp - 0x1a8]
add esi, eax
jmp 0x1003eacc
mov edx, dword [ebp - 0x1a8]
xor esi, esi
jmp 0x1003eacc
mov esi, dword [ebp - 0x19c]
mov ecx, dword [ebp - 0x1b8]
sub dword [ebp - 0x1a0], esi
mov esi, dword [ebp - 0x1a0]
movzx eax, word [ecx]
add dword [edx + eax*4], esi
cmp dword [edx], 0
lea eax, [edx + eax*4]
jne 0x1003eb24
nop dword [eax]
movzx eax, word [ecx]
test ax, ax
je 0x1003eb24
dec eax
sub edi, 2
mov word [ecx], ax
movsx ecx, di
mov dword [ebp - 0x1ac], edi
test ecx, ecx
jle 0x1003eb19
lea esi, [edx + 4]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x1ac]
cmp dword [edx], 0
mov ecx, dword [ebp - 0x1b8]
je 0x1003eaf0
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.101a8b60
mov esp, ebp
pop ebp
ret