Function at 0x4032dc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x44
mov ebx, edx
mov esi, eax
mov edi, ebx
sar edi, 1
mov dword [esp + 0x14], edi
shr edi, 0x1e
add edi, ebx
sar edi, 2
mov dword [esp + 8], edi
push 0x10
shl edi, 2
push edi
call fcn.0041dc33
mov dword [esp + 8], eax
push 0x10
lea eax, [edi + ebx*4]
push eax
call fcn.0041dc33
add esp, 0x10
mov ecx, eax
mov edi, ebx
test ebx, 0xffff0000
jne 0x403a31
xor edx, edx
mov dword [esp + 0x20], edx
test edi, 0xff00
je 0x403343
add dword [esp + 0x20], 8
shr edi, 8
movzx edx, byte [edi + 0x437480]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], edx
lea edx, [edx + edi]
mov dword [esi + 0x34], edx
mov edx, dword [esp]
mov dword [esi + 0x30], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0x28], edx
mov edx, dword [esp + 8]
test edx, edx
jle 0x42e1fe
fld dword [0x438ff8]
mov eax, dword [esp + 0x14]
fld1
fld dword [0x438ff8]
mov edx, ecx
mov dword [esp + 0x38], ebx
fild dword [esp + 0x38]
fdivp st(2)
fmul st(1)
lea edi, [ebx + ebx]
mov dword [esp + 0x18], edi
mov dword [esp + 0x38], edi
fild dword [esp + 0x38]
fdivp st(3)
mov dword [esp + 0xc], ecx
mov dword [esp + 0x2c], esi
mov edi, eax
mov dword [esp + 0x10], ebx
shl edi, 2
mov dword [esp + 0x34], edi
lea edi, [ecx + eax*4]
mov dword [esp + 0x30], edi
mov esi, edi
xor edi, edi
mov dword [esp + 4], edi
mov ebx, edi
mov dword [esp + 0x1c], edi
mov edi, 1
mov dword [esp + 0x28], edi
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x28]
lea edi, [ecx + edi*8]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 8], edi
jmp 0x4033f1
fstp dword [esi + ecx*4 - 8]
fstp dword [esi + ecx*4 - 4]
mov edi, dword [esp + 0xc]
mov dword [esp + 0x38], ebx
fild dword [esp + 0x38]
fmul st(1)
fsincos
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fmul st(5)
fsincos
fxch st(2)
fstp dword [edx]
fxch st(2)
fchs
fstp dword [edi + ecx*4 + 4]
mov edi, dword [esp + 8]
add ebx, 4
add ecx, 2
add eax, 2
add edx, 8
cmp edx, edi
jb 0x4033e9
fstp dword [esi + ecx*4 - 8]
fstp dword [esi + ecx*4 - 4]
fstp st(2)
fstp st(1)
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x10]
mov edi, ebx
sar edi, 2
mov eax, edi
shr eax, 0x1d
add eax, ebx
sar eax, 3
test eax, eax
jle 0x42e221
fld dword [0x438ffc]
fld st(1)
fmul dword [0x438ff8]
mov edx, ebx
mov dword [esp + 0x10], ebx
shl edx, 2
mov dword [esp + 0x1c], edx
lea edx, [ecx + ebx*4]
mov ecx, 2
mov dword [esp + 0x30], ecx
lea ecx, [edx + eax*8]
mov dword [esp + 4], ecx
mov ebx, ecx
mov ecx, dword [esp + 0x30]
jmp 0x403495
fstp dword [edx - 4]
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
fmul st(1)
fsincos
add ecx, 4
fmul st(3)
fstp dword [edx]
fchs
fmul st(2)
add edx, 8
cmp edx, ebx
jb 0x403492
fstp dword [edx - 4]
fstp st(1)
fstp st(0)
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x20]
lea ecx, [edx + esi + 0x1f]
mov dword [esp + 0x28], edi
mov edi, 1
shl edi, cl
lea ecx, [edx + esi + 0x1e]
mov esi, dword [esp + 0x2c]
add edi, 0xffffffff
mov dword [esp + 4], edi
mov edi, dword [esp + 0x28]
mov edx, 1
shl edx, cl
test eax, eax
jle 0x403564
mov dword [esp + 8], eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
mov esi, dword [esp]
mov dword [esp + 0x10], ebx
xor ecx, ecx
mov eax, ecx
test edx, edx
je 0x403a2a
xor edi, edi
xor ecx, ecx
mov ebx, edx
and ebx, eax
mov esi, 1
shl esi, cl
add ecx, 1
or esi, edi
test ebx, ebx
mov ebx, edx
je 0x403532
mov edi, esi
sar ebx, cl
test ebx, ebx
jne 0x40351c
mov esi, dword [esp]
mov dword [esi + eax*8 + 4], edi
mov ebx, edi
mov edi, dword [esp + 8]
not ebx
and ebx, dword [esp + 4]
add ebx, 0xffffffff
mov dword [esi + eax*8], ebx
add eax, 1
cmp eax, edi
jl 0x40350e
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x10]
fmul dword [0x439000]
mov edx, dword [esp + 0x14]
fst dword [esi + 0x2c]
fstp dword [esp + 0x38]
movss xmm0, dword [esp + 0x38]
unpcklps xmm0, xmm0
unpcklps xmm0, xmm0
movaps xmmword [esp], xmm0
mov eax, ebx
sar eax, 3
mov dword [esp + 0x24], eax
shl edx, 2
mov dword [esp + 0x20], edx
push 0x10
push edx
call fcn.0041dc33
add esp, 8
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0xc], eax
add ecx, dword [esi + 8]
test edi, edi
jle 0x4035ee
movaps xmm0, xmmword [0x437f80]
xor edx, edx
movaps xmm1, xmmword [ecx + edx*4]
movaps xmm3, xmmword [ecx + edx*4 + 0x10]
movaps xmmword [eax + edx*8], xmm1
movaps xmmword [eax + edx*8 + 0x20], xmm3
movaps xmm2, xmm1
movaps xmm4, xmm3
shufps xmm2, xmm1, 0xb1
xorps xmm2, xmm0
movaps xmmword [eax + edx*8 + 0x10], xmm2
shufps xmm4, xmm3, 0xb1
xorps xmm4, xmm0
movaps xmmword [eax + edx*8 + 0x30], xmm4
add edx, 8
cmp edx, edi
jl 0x4035b7
mov eax, dword [esp + 0x18]
push 0x10
shl eax, 2
push eax
call fcn.0041dc33
add esp, 8
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 8]
add dword [esp + 0x14], 0xfffffffc
mov dword [esi + 0x10], eax
mov dword [esp + 0x30], edx
test ecx, ecx
jle 0x403a23
movaps xmm1, xmmword [0x437f90]
movaps xmm0, xmmword [0x437fa0]
mov dword [esp + 0x28], edi
mov edi, ecx
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x10], ebx
xor ecx, ecx
mov ebx, edx
xor edx, edx
movaps xmm2, xmmword [ebx + ecx*4]
movaps xmm6, xmmword [ebx + esi*4]
movaps xmm4, xmm6
add ecx, 4
shufps xmm6, xmm2, 0xe4
movaps xmm5, xmm6
shufps xmm4, xmm2, 0x4e
movaps xmm3, xmm4
shufps xmm5, xmm6, 0xb1
xorps xmm5, xmm0
movaps xmmword [edx + eax + 0x20], xmm5
shufps xmm3, xmm4, 0xb1
xorps xmm3, xmm0
movaps xmmword [edx + eax], xmm3
xorps xmm4, xmm1
movaps xmmword [edx + eax + 0x10], xmm4
xorps xmm6, xmm1
movaps xmmword [edx + eax + 0x30], xmm6
add edx, 0x40
add esi, 0xfffffffc
cmp ecx, edi
jl 0x403641
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x2c]
cmp ecx, edi
jge 0x403710
movaps xmm1, xmmword [0x437fb0]
movaps xmm0, xmmword [0x437f90]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x14]
mov edx, ecx
shl edx, 4
add eax, edx
mov edx, dword [esp + 0x30]
movaps xmm2, xmmword [edx + ecx*4]
movaps xmm6, xmmword [edx + ebx*4]
movaps xmm4, xmm6
add ecx, 4
shufps xmm6, xmm2, 0xe4
movaps xmm5, xmm6
shufps xmm4, xmm2, 0x4e
movaps xmm3, xmm4
shufps xmm5, xmm6, 0xb1
xorps xmm5, xmm1
movaps xmmword [eax + 0x20], xmm5
shufps xmm3, xmm4, 0xb1
xorps xmm3, xmm1
movaps xmmword [eax], xmm3
xorps xmm4, xmm0
movaps xmmword [eax + 0x10], xmm4
xorps xmm6, xmm0
movaps xmmword [eax + 0x30], xmm6
add eax, 0x40
add ebx, 0xfffffffc
cmp ecx, edi
jl 0x4036c3
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 8]
add dword [esp + 0x34], edx
add eax, dword [esi + 0x10]
test edi, edi
jle 0x40376b
movaps xmm1, xmmword [esp]
mov ecx, dword [esp + 0x34]
xor edx, edx
movaps xmm2, xmmword [ecx + 0x10]
movaps xmm0, xmmword [ecx]
movaps xmm3, xmm2
add ecx, 0x20
shufps xmm2, xmm0, 0x22
mulps xmm2, xmm1
movaps xmmword [eax + 0x10], xmm2
shufps xmm3, xmm0, 0x77
mulps xmm3, xmm1
movaps xmmword [eax], xmm3
shufps xmm2, xmm2, 0x1b
movaps xmmword [eax + 0x20], xmm2
shufps xmm3, xmm3, 0x1b
movaps xmmword [eax + 0x30], xmm3
add eax, 0x40
add edx, 4
cmp edx, edi
jl 0x40372c
mov edx, dword [esi + 8]
push 0x10
mov eax, ebx
shl eax, 3
push eax
mov dword [esp + 0x38], edx
call fcn.0041dc33
mov edx, dword [esp + 0x38]
add esp, 8
mov dword [esi + 0x14], eax
test edi, edi
jle 0x40380e
movaps xmm1, xmmword [0x437f80]
movaps xmm0, xmmword [0x437fc0]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x1c]
xor ecx, ecx
movaps xmm2, xmmword [edx]
movaps xmm4, xmmword [edx + 0x10]
movaps xmm3, xmmword [edx + 0x20]
movaps xmm5, xmmword [edx + 0x30]
movaps xmm6, xmm4
movaps xmm7, xmm5
movlhps xmm4, xmm2
shufps xmm6, xmm2, 0x11
movaps xmmword [eax + 0x20], xmm6
shufps xmm7, xmm3, 0x11
movaps xmmword [eax + 0x30], xmm7
movlhps xmm5, xmm3
xorps xmm4, xmm1
movaps xmmword [eax], xmm4
xorps xmm5, xmm1
movaps xmmword [eax + 0x10], xmm5
xorps xmm4, xmm0
movaps xmmword [ebx + eax], xmm4
xorps xmm5, xmm0
movaps xmmword [ebx + eax + 0x10], xmm5
xorps xmm6, xmm0
movaps xmmword [ebx + eax + 0x20], xmm6
xorps xmm7, xmm0
movaps xmmword [ebx + eax + 0x30], xmm7
add edx, 0x40
add eax, 0x40
add ecx, 4
cmp ecx, edi
jl 0x4037a6
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov dword [esp + 0x30], eax
push 0x10
mov edx, dword [esp + 0x24]
push edx
call fcn.0041dc33
add esp, 8
mov dword [esi + 0x18], eax
test ebx, ebx
jle 0x403880
movaps xmm0, xmmword [0x437f80]
mov ecx, dword [esp + 0x30]
xor edx, edx
movaps xmm4, xmmword [ecx + 0x60]
movaps xmm1, xmmword [ecx + 0x40]
movaps xmm6, xmmword [ecx + 0x20]
movaps xmm2, xmmword [ecx]
movaps xmm3, xmm4
movaps xmm5, xmm6
movlhps xmm4, xmm1
shufps xmm3, xmm1, 0x11
movaps xmmword [eax], xmm3
shufps xmm5, xmm2, 0x11
movaps xmmword [eax + 0x20], xmm5
movlhps xmm6, xmm2
xorps xmm4, xmm0
movaps xmmword [eax + 0x10], xmm4
xorps xmm6, xmm0
movaps xmmword [eax + 0x30], xmm6
add ecx, 0x80
add eax, 0x40
add edx, 0x20
cmp edx, ebx
jl 0x403838
mov eax, dword [esi + 8]
mov dword [esp + 0x30], eax
push 0x10
shl edi, 2
push edi
call fcn.0041dc33
add esp, 8
mov dword [esi + 0x1c], eax
test ebx, ebx
jle 0x403a1a
movaps xmm0, xmmword [0x437f80]
mov ecx, dword [esp + 0x30]
xor edx, edx
movaps xmm4, xmmword [ecx + 0xc0]
movaps xmm1, xmmword [ecx + 0x80]
movaps xmm6, xmmword [ecx + 0x40]
movaps xmm2, xmmword [ecx]
movaps xmm3, xmm4
movaps xmm5, xmm6
add eax, 0x40
shufps xmm3, xmm1, 0x11
movaps xmmword [eax - 0x40], xmm3
movlhps xmm4, xmm1
shufps xmm5, xmm2, 0x11
movaps xmmword [eax - 0x20], xmm5
movlhps xmm6, xmm2
xorps xmm4, xmm0
movaps xmmword [eax - 0x30], xmm4
xorps xmm6, xmm0
movaps xmmword [eax - 0x10], xmm6
add ecx, 0x100
add edx, 0x40
cmp edx, ebx
jl 0x4038ad
cmp ebx, 0x80
jl 0x403a1a
mov eax, dword [esp + 0x24]
push 0x10
mov edi, dword [esi + 8]
shl eax, 2
push eax
call fcn.0041dc33
add esp, 8
movaps xmm0, xmmword [0x437f80]
mov dword [esi + 0x20], eax
xor edx, edx
movaps xmm4, xmmword [edi + 0x180]
movaps xmm1, xmmword [edi + 0x100]
movaps xmm6, xmmword [edi + 0x80]
movaps xmm2, xmmword [edi]
movaps xmm3, xmm4
movaps xmm5, xmm6
movlhps xmm4, xmm1
shufps xmm3, xmm1, 0x11
movaps xmmword [eax], xmm3
shufps xmm5, xmm2, 0x11
movaps xmmword [eax + 0x20], xmm5
movlhps xmm6, xmm2
xorps xmm4, xmm0
movaps xmmword [eax + 0x10], xmm4
xorps xmm6, xmm0
movaps xmmword [eax + 0x30], xmm6
add edi, 0x200
add eax, 0x40
add edx, 0x80
cmp edx, ebx
jl 0x403929
cmp ebx, 0x100
jl 0x403a09
push 0x10
mov edi, dword [esi + 8]
mov eax, ebx
sar eax, 4
shl eax, 2
push eax
call fcn.0041dc33
add esp, 8
movaps xmm0, xmmword [0x437f80]
mov dword [esi + 0x24], eax
xor edx, edx
movaps xmm4, xmmword [edi + 0x300]
movaps xmm1, xmmword [edi + 0x200]
movaps xmm6, xmmword [edi + 0x100]
movaps xmm2, xmmword [edi]
movaps xmm3, xmm4
movaps xmm5, xmm6
movlhps xmm4, xmm1
shufps xmm3, xmm1, 0x11
movaps xmmword [eax], xmm3
shufps xmm5, xmm2, 0x11
movaps xmmword [eax + 0x20], xmm5
movlhps xmm6, xmm2
xorps xmm4, xmm0
movaps xmmword [eax + 0x10], xmm4
xorps xmm6, xmm0
movaps xmmword [eax + 0x30], xmm6
add edi, 0x400
add eax, 0x40
add edx, 0x100
cmp edx, ebx
jl 0x4039ab
add esp, 0x44
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x24], 0
add esp, 0x44
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x20], 0
jmp 0x403a09
xor ecx, ecx
jmp 0x40369e
xor edi, edi
jmp 0x40353b
mov edi, ebx
shr edi, 0x10
mov edx, 0x10
mov dword [esp + 0x20], edx
jmp 0x403333
mov edi, dword [esp + 0x14]
fld1
mov dword [esp + 0x38], ebx
fild dword [esp + 0x38]
fdivp st(1)
lea edx, [ebx + ebx]
mov dword [esp + 0x18], edx
shl edi, 2
mov dword [esp + 0x34], edi
jmp 0x403445
mov edx, ebx
shl edx, 2
mov dword [esp + 0x1c], edx
jmp 0x4034be