Function at 0x431ec0
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, 0x2c8
mov eax, dword [0x4b3080]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebx + 0xc]
mov eax, edx
push edi
mov edi, dword [ebx + 8]
mov edx, edi
imul edx, esi
mov dword [ebp - 0x12c], ecx
mov ecx, eax
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x128], edi
call fcn.0042f170
push 0x80
lea eax, [ebp - 0x88]
movsd qword [ebp - 0x138], xmm0
push 0
push eax
call fcn.00467a60
add esp, 0xc
lea eax, [edi*4]
mov dword [ebp - 0x10c], eax
test esi, esi
jle 0x431ff6
mov edx, dword [ebx + 0x14]
mov eax, esi
mov ecx, dword [ebp - 0x124]
inc edx
mov esi, dword [ebp - 0x10c]
mov dword [ebp - 0x11c], edx
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x118], eax
cmp edx, 1
jle 0x431fd7
mov eax, dword [ebp - 0x128]
lea edi, [ecx + 4]
mov edx, dword [ebx + 0x14]
lea esi, [ebp - 0x88]
dec eax
mov dword [ebp - 0x114], edx
mov dword [ebp - 0x120], eax
nop dword [eax]
push eax
mov edx, edi
call fcn.00430bd0
addsd xmm0, qword [esi]
mov eax, dword [ebp - 0x120]
add esp, 4
mov ecx, dword [ebp - 0x110]
dec eax
add edi, 4
mov dword [ebp - 0x120], eax
movsd qword [esi], xmm0
add esi, 8
sub dword [ebp - 0x114], 1
jne 0x431f90
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x11c]
mov esi, dword [ebp - 0x10c]
add ecx, esi
sub eax, 1
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x118], eax
jne 0x431f65
mov eax, dword [ebp - 0x10c]
jmp 0x431ffc
mov dword [ebp - 0x10c], eax
movss xmm1, dword [ebx + 0x10]
lea esi, [ebp - 0x88]
movsd xmm0, qword [ebp - 0x138]
lea edi, [ebp - 0x108]
cvtps2pd xmm1, xmm1
xor edx, edx
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
mulsd xmm1, xmm0
movaps xmm2, xmm1
movsd qword [ebp - 0x138], xmm1
addsd xmm2, xmm0
addsd xmm2, qword [0x4a76a0]
movsd qword [ebp - 0x1c0], xmm2
movsd qword [ebp - 0x248], xmm2
cmp dword [ebx + 0x14], edx
jle 0x4324a2
mov edi, 0xfffffff8
mov ecx, 0xfffffffc
mov dword [ebp - 0x114], edi
mov dword [ebp - 0x110], ecx
nop dword [eax + eax]
cmp dword [ebx + 0xc], 0
jle 0x4321eb
mov esi, dword [ebx + 0xc]
sub eax, ecx
mov edi, dword [ebp - 0x124]
sub eax, 4
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], esi
nop dword [eax]
nop dword [eax + eax]
movss xmm6, dword [edi + ecx + 4]
lea esi, [edi + ecx]
movss xmm5, dword [esi + eax]
xor eax, eax
cvtps2pd xmm4, xmm6
cvtps2pd xmm5, xmm5
cmp ecx, 0xfffffffc
jle 0x432147
mov ecx, dword [ebp - 0x10c]
add ecx, edi
movss xmm7, dword [ecx - 4]
nop dword [eax]
movss xmm3, dword [esi]
sub esi, 4
movsd xmm1, qword [ebp + eax*8 - 0x88]
movaps xmm0, xmm3
movss xmm2, dword [ecx]
add ecx, 4
mulss xmm0, xmm6
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, xmm2
cvtss2sd xmm0, xmm0
movsd qword [ebp + eax*8 - 0x88], xmm1
movsd xmm1, qword [ebp + eax*8 - 0x108]
subsd xmm1, xmm0
cvtps2pd xmm0, xmm3
movsd qword [ebp + eax*8 - 0x108], xmm1
movsd xmm1, qword [ebp + eax*8 - 0x2c8]
inc eax
mulsd xmm0, xmm1
addsd xmm4, xmm0
cvtps2pd xmm0, xmm2
mulsd xmm0, xmm1
addsd xmm5, xmm0
cmp eax, edx
jl 0x4320d0
xor eax, eax
jmp 0x43214e
xor eax, eax
cmp ecx, 0xfffffffc
jl 0x4321c3
mov ecx, dword [ebp - 0x10c]
mov esi, dword [ebp - 0x110]
add ecx, 0xfffffffc
add esi, 4
add ecx, edi
add esi, edi
nop dword [eax]
nop dword [eax + eax]
movss xmm1, dword [esi]
sub esi, 4
movsd xmm0, qword [ebp + eax*8 - 0x1c0]
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm4
subsd xmm0, xmm1
movss xmm1, dword [ecx]
cvtps2pd xmm1, xmm1
add ecx, 4
movsd qword [ebp + eax*8 - 0x1c0], xmm0
movsd xmm0, qword [ebp + eax*8 - 0x248]
mulsd xmm1, xmm5
subsd xmm0, xmm1
movsd qword [ebp + eax*8 - 0x248], xmm0
inc eax
cmp eax, edx
jle 0x432170
mov ecx, dword [ebp - 0x110]
mov esi, dword [ebp - 0x128]
lea eax, [esi*4]
add edi, eax
sub dword [ebp - 0x118], 1
mov eax, dword [ebp - 0x11c]
jne 0x4320a0
mov edi, dword [ebp - 0x114]
movsd xmm2, qword [ebp + edx*8 - 0x88]
xor ecx, ecx
movsd xmm3, qword [ebp + edx*8 - 0x108]
test edx, edx
je 0x4322ab
mov eax, edi
nop dword [eax]
movsd xmm1, qword [ebp + ecx*8 - 0x2c8]
inc ecx
movaps xmm0, xmm1
mulsd xmm1, qword [ebp + eax - 0x88]
mulsd xmm0, qword [ebp + eax - 0x108]
sub eax, 8
addsd xmm3, xmm1
addsd xmm2, xmm0
cmp ecx, edx
jl 0x432210
lea ecx, [ebp - 0x248]
movsd qword [ebp + edx*8 - 0x1b8], xmm2
movsd xmm2, qword [ebp - 0x1c0]
lea ecx, [ecx + edx*8]
movsd qword [ebp + edx*8 - 0x240], xmm3
xor eax, eax
movsd xmm4, qword [ebp - 0x248]
nop dword [eax + eax]
movsd xmm1, qword [ebp + eax*8 - 0x2c8]
movaps xmm0, xmm1
mulsd xmm0, qword [ecx]
sub ecx, 8
addsd xmm3, xmm0
movaps xmm0, xmm1
mulsd xmm0, qword [ebp + eax*8 - 0x240]
mulsd xmm1, qword [ebp + eax*8 - 0x1b8]
inc eax
addsd xmm4, xmm0
addsd xmm2, xmm1
cmp eax, edx
jl 0x432270
jmp 0x4322cd
movsd qword [ebp + edx*8 - 0x1b8], xmm2
movsd xmm2, qword [ebp - 0x1c0]
movsd qword [ebp + edx*8 - 0x240], xmm3
movsd xmm4, qword [ebp - 0x248]
mulsd xmm3, qword [0x4a7bb0]
addsd xmm2, xmm4
lea esi, [edx + 1]
xor eax, eax
sar esi, 1
divsd xmm3, xmm2
movaps xmm4, xmm3
unpcklpd xmm4, xmm4
test esi, esi
jle 0x432338
lea ecx, [ebp - 0x2c8]
add ecx, edi
nop word [eax + eax]
movsd xmm1, qword [ecx]
movaps xmm0, xmm3
movsd xmm2, qword [ebp + eax*8 - 0x2c8]
mulsd xmm0, xmm1
addsd xmm0, xmm2
movsd qword [ebp + eax*8 - 0x2c8], xmm0
movaps xmm0, xmm3
mulsd xmm0, xmm2
inc eax
addsd xmm0, xmm1
movsd qword [ecx], xmm0
sub ecx, 8
cmp eax, esi
jl 0x432300
lea eax, [edx + 1]
movsd qword [ebp + edx*8 - 0x2c8], xmm3
xor ecx, ecx
test eax, eax
js 0x432402
lea eax, [edx + 2]
cmp eax, 2
jb 0x4323b9
lea esi, [edx + 1]
and eax, 0x80000001
jns 0x432365
dec eax
or eax, 0xfffffffe
inc eax
sub esi, eax
lea eax, [ebp - 0x248]
lea eax, [eax + edx*8]
movsd xmm1, qword [eax + 8]
movhpd xmm1, qword [eax]
movups xmm2, xmmword [ebp + ecx*8 - 0x1c0]
movaps xmm0, xmm1
mulpd xmm0, xmm4
addpd xmm0, xmm2
movups xmmword [ebp + ecx*8 - 0x1c0], xmm0
add ecx, 2
movaps xmm0, xmm4
mulpd xmm0, xmm2
addpd xmm0, xmm1
movlpd qword [eax + 8], xmm0
movhpd qword [eax], xmm0
sub eax, 0x10
cmp ecx, esi
jle 0x432370
lea eax, [edx + 1]
cmp ecx, eax
jg 0x432402
mov eax, edx
lea esi, [ebp - 0x240]
sub eax, ecx
lea eax, [esi + eax*8]
lea esi, [edx + 1]
nop dword [eax]
movsd xmm0, qword [eax]
movsd xmm2, qword [ebp + ecx*8 - 0x1c0]
mulsd xmm0, xmm3
addsd xmm0, xmm2
mulsd xmm2, xmm3
addsd xmm2, qword [eax]
movsd qword [ebp + ecx*8 - 0x1c0], xmm0
inc ecx
movsd qword [eax], xmm2
sub eax, 8
cmp ecx, esi
jle 0x4323d0
mov eax, dword [ebp - 0x10c]
inc edx
mov ecx, dword [ebp - 0x110]
sub eax, 4
mov esi, dword [ebx + 0x14]
add ecx, 4
add edi, 8
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x114], edi
cmp edx, esi
jl 0x432070
movsd xmm2, qword [ebp - 0x1c0]
xor eax, eax
movsd xmm3, qword [0x4a7930]
movsd xmm4, qword [0x4a7e10]
mov ecx, dword [ebp - 0x12c]
nop word [eax + eax]
movsd xmm1, qword [ebp + eax*8 - 0x2c8]
movaps xmm0, xmm1
mulsd xmm0, qword [ebp + eax*8 - 0x1b8]
addsd xmm2, xmm0
movaps xmm0, xmm1
mulsd xmm0, xmm1
xorps xmm1, xmm4
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [ecx + eax*4], xmm0
inc eax
cmp eax, esi
jl 0x432460
movsd xmm1, qword [ebp - 0x138]
jmp 0x4324aa
movsd xmm3, qword [0x4a7930]
mov ecx, dword [ebp - 4]
mulsd xmm1, xmm3
xor ecx, ebp
pop edi
pop esi
subsd xmm2, xmm1
cvtpd2ps xmm0, xmm2
call fcn.004661fb
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret