Function at 0x424630
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x30
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], ecx
mov dword [edx], ecx
mov dword [edx + 4], 1
push esi
push edi
mov edi, dword [ebx + 8]
cmp ecx, 2
jle 0x424935
movsd xmm0, qword [0x45b8b8]
mov esi, ecx
shr esi, 1
mov dword [ebp - 0x14], esi
call fcn.0044b030
movaps xmm1, xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
mulsd xmm0, xmm1
movsd qword [ebp - 0x20], xmm1
call fcn.0044b320
movsd xmm2, qword [0x45b8a0]
movaps xmm1, xmm0
movsd xmm0, qword [0x45b8b8]
movsd qword [ebp - 0x28], xmm1
movsd qword [edi], xmm0
movsd qword [edi + 8], xmm1
cmp esi, 4
jne 0x424700
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, xmm0
movsd qword [ebp - 0x20], xmm0
call fcn.0044b320
movsd qword [edi + 0x10], xmm0
movsd xmm0, qword [ebp - 0x20]
call fcn.0044c850
movsd xmm2, qword [0x45b8a0]
xor ecx, ecx
movsd xmm1, qword [ebp - 0x28]
movsd qword [edi + 0x18], xmm0
movsd xmm0, qword [0x45b8b8]
jmp 0x424880
jbe 0x42486e
mov edx, dword [ebp - 4]
mov ecx, 2
mov eax, dword [ebp - 0xc]
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0x10
cmp eax, 0x20
jle 0x424772
lea edi, [ecx + ecx]
mov dword [ebp - 0xc], eax
cmp ecx, edi
jge 0x424762
lea eax, [edi + ecx]
lea edx, [edx + eax*4]
mov eax, dword [ebp - 4]
lea esi, [eax + ecx*8]
nop word [eax + eax]
mov eax, dword [eax + ecx*4]
lea esi, [esi + 4]
shl eax, 2
lea edx, [edx + 4]
mov dword [esi - 4], eax
inc ecx
lea eax, [eax + edi*8]
mov dword [edx - 4], eax
mov eax, dword [ebp - 4]
cmp ecx, edi
jl 0x424740
mov edx, eax
mov eax, dword [ebp - 0xc]
shr eax, 2
mov ecx, edi
cmp eax, 0x20
ja 0x424724
mov edi, dword [ebx + 8]
mov esi, dword [ebp - 0x14]
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, xmm0
call fcn.0044b320
movsd xmm1, qword [0x45b8a0]
divsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x20]
mulsd xmm0, qword [0x45b8e8]
movsd qword [edi + 0x10], xmm1
call fcn.0044b320
movsd xmm1, qword [0x45b8a0]
lea eax, [edi + 0x30]
divsd xmm1, xmm0
mov ecx, 4
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x14], ecx
movsd qword [edi + 0x18], xmm1
mov edi, eax
movsd xmm1, qword [ebp - 0x20]
movaps xmm0, xmm1
mulsd xmm0, qword [0x45b8d8]
movsd qword [ebp - 0x30], xmm0
nop dword [eax]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x10], xmm0
mulsd xmm0, xmm1
movsd qword [ebp - 8], xmm0
call fcn.0044b320
movsd qword [edi - 0x10], xmm0
movsd xmm0, qword [ebp - 8]
call fcn.0044c850
movsd qword [edi - 8], xmm0
movsd xmm0, qword [ebp - 0x10]
mulsd xmm0, qword [ebp - 0x30]
movsd qword [ebp - 0x10], xmm0
call fcn.0044b320
movsd qword [edi], xmm0
movsd xmm0, qword [ebp - 0x10]
call fcn.0044c850
mov ecx, dword [ebp - 0x14]
lea edi, [edi + 0x20]
xorps xmm0, xmmword [0x45b9e0]
add ecx, 4
movsd xmm1, qword [ebp - 0x20]
movsd qword [edi - 0x18], xmm0
mov dword [ebp - 0x14], ecx
cmp ecx, esi
jl 0x4247e0
movsd xmm2, qword [0x45b8a0]
xor ecx, ecx
movsd xmm0, qword [0x45b8b8]
movsd xmm1, qword [ebp - 0x28]
mov edi, dword [ebx + 8]
jmp 0x424880
xor ecx, ecx
cmp esi, 2
jbe 0x424935
nop dword [eax]
lea edx, [ecx + esi]
sar esi, 1
mov dword [ebp - 0x14], esi
movsd qword [edi + edx*8], xmm0
movsd qword [edi + edx*8 + 8], xmm1
cmp esi, 4
jne 0x4248b3
movups xmm0, xmmword [edi + ecx*8 + 0x20]
mov ecx, edx
movsd xmm1, qword [ebp - 0x28]
movups xmmword [edi + edx*8 + 0x10], xmm0
movsd xmm0, qword [0x45b8b8]
jmp 0x424880
jle 0x42492a
movaps xmm0, xmm2
movsd xmm1, qword [edi + ecx*8 + 0x30]
divsd xmm0, qword [edi + ecx*8 + 0x20]
add ecx, 0xa
lea eax, [edx + 6]
add esi, 0xfffffffb
lea eax, [edi + eax*8]
shr esi, 2
inc esi
lea ecx, [edi + ecx*8]
movsd qword [edi + edx*8 + 0x10], xmm0
movaps xmm0, xmm2
divsd xmm0, xmm1
movsd qword [edi + edx*8 + 0x18], xmm0
nop word [eax + eax]
lea eax, [eax + 0x20]
lea ecx, [ecx + 0x40]
movups xmm0, xmmword [ecx - 0x50]
movups xmm2, xmmword [ecx - 0x40]
movups xmmword [eax - 0x30], xmm0
movups xmmword [eax - 0x20], xmm2
sub esi, 1
jne 0x4248f0
movsd xmm2, qword [0x45b8a0]
mov ecx, edx
movsd xmm0, qword [0x45b8b8]
movsd xmm1, qword [ebp - 0x28]
mov esi, dword [ebp - 0x14]
jmp 0x424880
mov ecx, edx
cmp esi, 2
jg 0x424880
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret