Function at 0x431101
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push esi
mov esi, ecx
push edi
mov dword [ebp - 4], esi
mov edi, 0xffffff00
lea eax, [esi + 0x9ffc]
mov esi, eax
lea eax, [edi + 0xd2]
sub esp, 0x10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x6e0348]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x56df08]
movsd qword [esp], xmm0
call fcn.00534ad0
add esp, 0x10
inc edi
fstp dword [esi]
add esi, 4
cmp edi, 0x7a
jl 0x43111b
mov eax, dword [ebp - 4]
xor edi, edi
add eax, 0x1b00
mov esi, eax
movsd xmm0, qword [0x6e02f8]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.00534ad0
add esp, 0x10
inc edi
fstp dword [esi]
add esi, 4
cmp edi, 0x200f
jl 0x431166
mov eax, dword [ebp - 4]
mov edi, str.333333
add eax, 0x9b3c
mov esi, eax
movsd xmm0, qword [edi]
mulsd xmm0, xmm0
push ecx
push ecx
addsd xmm0, qword [0x56def0]
movsd qword [esp], xmm0
call fcn.00534b20
movsd xmm0, qword [0x56def0]
fstp qword [ebp - 0x34]
divsd xmm0, qword [ebp - 0x34]
pop ecx
pop ecx
cvtpd2ps xmm0, xmm0
movss dword [esi + 0x20], xmm0
movsd xmm0, qword [edi]
add edi, 8
divsd xmm0, qword [ebp - 0x34]
cvtpd2ps xmm0, xmm0
movss dword [esi], xmm0
add esi, 4
cmp edi, 0x731d28
jl 0x4311a9
mov eax, dword [ebp - 4]
push 0x13
add eax, 0x9b7c
pop edi
mov esi, eax
lea eax, [edi - 0x12]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
push ecx
push ecx
mulsd xmm0, qword [0x6e02c8]
movsd qword [esp], xmm0
call fcn.0052ea40
movd xmm0, edi
cvtdq2pd xmm0, xmm0
fmul qword [0x571678]
mulsd xmm0, qword [0x571688]
fstp qword [ebp - 0x34]
divsd xmm0, qword [0x6e0318]
movsd qword [esp], xmm0
call fcn.0052ed50
fdivr qword [ebp - 0x34]
lea eax, [edi + 0x12]
fstp dword [ebp - 0x28]
movss xmm0, dword [ebp - 0x28]
movss dword [esi + 0x90], xmm0
movss dword [esi], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x6e02c8]
movsd qword [esp], xmm0
call fcn.0052ea40
lea eax, [edi + 0x24]
fmul qword [0x571678]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
fstp qword [ebp - 0x34]
mulsd xmm0, qword [0x571688]
divsd xmm0, qword [0x6e0318]
movsd qword [esp], xmm0
call fcn.0052ed50
fdivr qword [ebp - 0x34]
lea esi, [esi + 4]
add edi, 2
pop ecx
pop ecx
fstp dword [ebp - 0x28]
movss xmm0, dword [ebp - 0x28]
movss dword [esi + 0x1f4], xmm0
movss dword [esi + 0x44], xmm0
cmp edi, 0x37
jl 0x43120c
mov eax, dword [ebp - 4]
push 0x2b
add eax, 0x9d5c
pop edi
mov esi, eax
xorps xmm0, xmm0
lea eax, [edi + 0xc]
cvtsi2sd xmm0, eax
push ecx
push ecx
mulsd xmm0, qword [0x6e02c8]
movsd qword [esp], xmm0
call fcn.0052ed50
fdivr qword [0x571678]
xorps xmm0, xmm0
cvtsi2sd xmm0, edi
fstp dword [esi - 0x108]
mulsd xmm0, qword [0x6e02c8]
movsd qword [esp], xmm0
call fcn.0052ed50
fdivr qword [0x571678]
lea eax, [edi - 0x1e]
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
fstp dword [esi]
mulsd xmm0, qword [0x6e02d8]
movsd qword [esp], xmm0
call fcn.0052ea40
fmul qword [0x571678]
lea eax, [edi + 0x18]
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
fstp qword [ebp - 0x34]
mulsd xmm0, qword [0x6e02c8]
movsd qword [esp], xmm0
call fcn.0052ed50
fdivr qword [ebp - 0x34]
lea eax, [edi - 0x2a]
and dword [esi - 0x30], 0
and dword [esi - 0xd8], 0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
fstp dword [esi - 0xf0]
mulsd xmm0, qword [0x6e02d8]
movsd qword [esp], xmm0
call fcn.0052ea40
fmul qword [0x571678]
lea eax, [edi - 0xc]
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
fstp qword [ebp - 0x34]
mulsd xmm0, qword [0x6e02c8]
movsd qword [esp], xmm0
call fcn.0052ed50
fdivr qword [ebp - 0x34]
add edi, 2
pop ecx
pop ecx
fstp dword [esi - 0x18]
add esi, 4
cmp edi, 0x37
jl 0x4312ee
mov eax, dword [ebp - 4]
push 7
add eax, 0x9c9c
pop edi
mov esi, eax
lea eax, [edi - 6]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
push ecx
push ecx
mulsd xmm0, qword [0x6e02d8]
movsd qword [esp], xmm0
call fcn.0052ea40
movd xmm0, edi
cvtdq2pd xmm0, xmm0
fmul qword [0x571678]
mulsd xmm0, qword [0x571688]
fstp qword [ebp - 0x34]
divsd xmm0, qword [0x5716a0]
movsd qword [esp], xmm0
call fcn.0052ed50
fdivr qword [ebp - 0x34]
add edi, 2
pop ecx
pop ecx
fstp dword [esi]
add esi, 4
cmp edi, 0x1f
jl 0x4313f3
mov edi, dword [ebp - 4]
mov ecx, 0x6dee80
add edi, 0x9dc0
mov eax, dword [ecx]
xor esi, esi
test eax, eax
jle 0x43147c
lea edx, [edi - 4]
mov eax, dword [edx - 0x240]
add esi, 2
mov dword [edx], eax
lea edx, [edx + 8]
mov eax, dword [ecx]
cmp esi, eax
jl 0x431468
xor edx, edx
inc edx
cmp eax, edx
jle 0x4314a2
mov eax, edi
movss xmm0, dword [eax - 0x240]
add edx, 2
xorps xmm0, xmmword [0x56e210]
movss dword [eax], xmm0
lea eax, [eax + 8]
cmp edx, dword [ecx]
jl 0x431485
add ecx, 4
add edi, 0x90
cmp ecx, 0x6dee90
jl 0x43145d
mov esi, dword [ebp - 4]
xor eax, eax
mov dword [ebp - 8], eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
push ecx
push ecx
mulsd xmm0, qword [0x571688]
divsd xmm0, qword [0x571698]
movsd qword [esp], xmm0
call fcn.00534b30
movsd xmm3, qword [0x56def0]
fstp qword [ebp - 0x34]
movsd xmm1, qword [ebp - 0x34]
movaps xmm2, xmm1
mov eax, dword [ebp - 8]
addsd xmm2, xmm3
movsd xmm4, qword [0x571680]
movaps xmm0, xmm1
and dword [ebp - 0x28], 0
mulsd xmm1, xmm4
lea edi, [eax + 0x2b26]
pop ecx
divsd xmm0, xmm2
lea edi, [esi + edi*4]
pop ecx
divsd xmm1, xmm2
cvtpd2ps xmm0, xmm0
movss dword [esi + eax*4 + 0xab18], xmm0
movaps xmm0, xmm3
divsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [esi + eax*4 + 0xab58], xmm0
cvtpd2ps xmm0, xmm1
movss dword [esi + eax*4 + 0xab98], xmm0
movaps xmm0, xmm4
divsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [esi + eax*4 + 0xabd8], xmm0
mov esi, dword [ebp - 0x28]
movaps xmm2, xmm3
movaps xmm1, xmm3
movsd qword [ebp - 0x24], xmm2
movsd qword [ebp - 0x2c], xmm1
test eax, eax
jle 0x431637
lea eax, [esi + 1]
sub esp, 0x10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x6e0348]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x56df08]
movsd qword [esp], xmm0
call fcn.00534ad0
mov eax, dword [ebp - 8]
add esp, 0x10
sub esp, 0x10
fstp qword [ebp - 0x34]
test al, 1
je 0x4315ef
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x571678]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x34]
movsd qword [esp], xmm0
call fcn.00534ad0
movsd xmm1, qword [ebp - 0x2c]
fstp qword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x34]
jmp 0x431621
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x571678]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x34]
movsd qword [esp], xmm0
call fcn.00534ad0
movsd xmm2, qword [ebp - 0x24]
fstp qword [ebp - 0x34]
movsd xmm1, qword [ebp - 0x34]
mov eax, dword [ebp - 8]
add esp, 0x10
movsd xmm4, qword [0x571680]
movsd xmm3, qword [0x56def0]
xorps xmm0, xmm0
inc esi
cvtsd2ss xmm0, xmm2
mulsd xmm2, xmm4
movss dword [edi - 0x80], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
mulsd xmm1, xmm4
movss dword [edi], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm2
movss dword [edi + 0x80], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [edi + 0x100], xmm0
add edi, 0x40
cmp esi, 2
jl 0x431564
mov esi, dword [ebp - 4]
inc eax
mov dword [ebp - 8], eax
cmp eax, 0x10
jl 0x4314bb
lea ecx, [esi + 0xeed4]
mov dword [ebp - 0x28], 9
mov dword [ebp - 0x18], ecx
lea edx, [esi + 0xae84]
mov eax, 0x57825e
mov dword [ebp - 0x1c], edx
lea ecx, [esi + 0xd8e4]
mov dword [ebp - 8], eax
lea edi, [esi + 0xc384]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x20], edi
mov dword [edx - 0x6c], edi
mov ecx, edi
xor edi, edi
mov edx, eax
xor esi, esi
movsx eax, word [edx]
sar eax, 1
mov dword [ecx], eax
push 4
pop eax
add ecx, eax
mov dword [ecx], edi
add ecx, eax
mov dword [ecx], 3
add ecx, eax
mov dword [ecx], esi
add ecx, eax
movsx eax, word [edx]
inc esi
add edi, eax
lea edx, [edx + 2]
cmp esi, 8
jl 0x4316cf
mov eax, dword [ebp - 8]
mov dword [ebp - 0xc], 3
add eax, 0x4e
movsx edx, word [eax]
add eax, 2
sar edx, 1
xor esi, esi
mov dword [ebp - 0x10], eax
mov dword [ecx], edx
lea eax, [esi + edi]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
add ecx, 0x10
inc esi
cmp esi, 3
jl 0x431713
imul eax, edx, 6
mov edx, dword [ebp - 0x1c]
add edi, eax
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, 0xd
mov eax, dword [ebp - 0x10]
jl 0x431706
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 8]
mov dword [edx], ecx
mov ecx, eax
mov dword [edx - 0x68], eax
xor eax, eax
and dword [ebp - 0x10], eax
add esi, 0x48
mov dword [ebp - 0xc], eax
movsx edx, word [esi]
add esi, 2
mov edi, dword [ebp - 0x10]
sar edx, 1
mov dword [ebp - 0x30], esi
xor esi, esi
add eax, esi
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edi
add ecx, 0x10
inc esi
cmp esi, 3
jl 0x43176c
mov esi, dword [ebp - 0x30]
imul eax, edx, 6
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, 0xd
mov eax, dword [ebp - 0xc]
jl 0x43175c
mov edx, dword [ebp - 0x1c]
xor esi, esi
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 8]
mov dword [edx + 4], ecx
mov ecx, eax
mov dword [edx - 0x64], eax
movsx eax, word [edi]
lea edi, [edi + 2]
sar eax, 1
mov dword [ecx], eax
mov dword [ecx + 4], esi
add ecx, 8
inc esi
cmp esi, 0x16
jl 0x4317b0
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x20]
add eax, 0x90
add dword [ebp - 0x14], 0x270
add edi, 0x260
add dword [ebp - 0x18], 0xb0
mov dword [edx + 8], ecx
add edx, 0xc
sub dword [ebp - 0x28], 1
mov dword [ebp - 8], eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], edx
jne 0x4316c4
mov esi, dword [ebp - 4]
mov edi, 0x57828a
push 0x12
mov dword [ebp - 0x1c], edi
pop ecx
lea eax, [esi + 0xa920]
mov dword [ebp - 0x20], eax
lea eax, [esi + 0xa5e4]
lea esi, [edi - 0x5a]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x28], 0x17
mov edi, eax
movsx eax, word [esi]
lea esi, [esi + 2]
add eax, 7
cdq
idiv ecx
push 0x20
pop ecx
inc eax
cmp eax, ecx
push 0x12
cmovl ecx, eax
mov dword [edi], ecx
add edi, 4
sub dword [ebp - 0x28], 1
pop ecx
jne 0x43182a
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x28], 0xe
movsx eax, word [edi]
lea edi, [edi + 2]
dec eax
push 0x12
pop ecx
cdq
idiv ecx
push 0x20
inc eax
pop ecx
cmp eax, ecx
cmovl ecx, eax
mov dword [esi], ecx
add esi, 4
sub dword [ebp - 0x28], 1
jne 0x43185d
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
add edi, 0x90
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], edi
push 0x12
pop ecx
cmp edi, 0x57879a
jl 0x43181b
mov esi, dword [ebp - 4]
and dword [ebp - 0x1c], 0
lea ecx, [esi + 0xb6f0]
xor edx, edx
xor edi, edi
mov eax, edi
or eax, 0xc0
shl eax, 3
or eax, edx
shl eax, 3
or eax, dword [ebp - 0x1c]
inc edi
mov dword [ecx], eax
add ecx, 4
cmp edi, 6
jl 0x4318ac
inc edx
cmp edx, 6
jl 0x4318aa
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 5
jl 0x4318a8
and dword [ebp - 0x1c], 0
lea ecx, [esi + 0xb9c0]
xor edx, edx
xor edi, edi
mov eax, edi
or eax, 0x100
shl eax, 3
or eax, edx
shl eax, 3
or eax, dword [ebp - 0x1c]
inc edi
mov dword [ecx], eax
add ecx, 4
cmp edi, 4
jl 0x4318e9
inc edx
cmp edx, 4
jl 0x4318e7
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 4
jl 0x4318e5
xor edx, edx
lea ecx, [esi + 0xb6c0]
xor edi, edi
mov eax, edi
or eax, 0xa00
shl eax, 3
or eax, edx
mov dword [ecx + 0x400], eax
mov eax, edi
or eax, 0x1400
shl eax, 3
or eax, edx
inc edi
mov dword [ecx], eax
add ecx, 4
cmp edi, 3
jl 0x431922
inc edx
cmp edx, 4
jl 0x431920
and dword [ebp - 0x18], 0
lea ecx, [esi + 0xaef0]
and dword [ebp - 0x1c], 0
xor edx, edx
xor edi, edi
mov eax, edi
shl eax, 3
or eax, edx
shl eax, 3
or eax, dword [ebp - 0x1c]
shl eax, 3
or eax, dword [ebp - 0x18]
inc edi
mov dword [ecx], eax
add ecx, 4
cmp edi, 4
jl 0x431963
inc edx
cmp edx, 4
jl 0x431961
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 5
jl 0x43195f
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 5
jl 0x43195b
xor edx, edx
add esi, 0xb530
xor ecx, ecx
xor edi, edi
mov eax, edi
or eax, 0x40
shl eax, 3
or eax, ecx
shl eax, 3
or eax, edx
inc edi
mov dword [esi], eax
add esi, 4
cmp edi, 4
jl 0x4319ab
inc ecx
cmp ecx, 5
jl 0x4319a9
inc edx
cmp edx, 5
jl 0x4319a7
pop edi
pop esi
leave
ret