Function at 0x10071600
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x30
mov eax, dword [esp + 0x38]
movss xmm2, dword [0x103f9378]
dec eax
movaps xmm1, xmm2
mov dword [esp + 0x20], edx
push esi
push edi
movd xmm0, eax
mov edi, ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x1c], eax
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
mulss xmm1, xmm1
divss xmm2, xmm1
movss dword [esp + 0x14], xmm2
test edi, edi
je 0x10071665
mov esi, dword [edi]
cmp dword [esi + 0x128], 0
je 0x10071653
mov esi, dword [esi + 0x12c]
jmp 0x10071667
push edi
call sym.FreeImage.dll__FreeImage_GetLine_4
mov edx, dword [esp + 0x28]
lea esi, [eax + 3]
and esi, 0xfffffffc
jmp 0x10071667
xor esi, esi
shr esi, 2
test edx, edx
je 0x1007168f
mov eax, dword [edx]
cmp dword [eax + 0x128], 0
je 0x10071681
mov eax, dword [eax + 0x12c]
jmp 0x10071691
push edx
call sym.FreeImage.dll__FreeImage_GetLine_4
add eax, 3
and eax, 0xfffffffc
jmp 0x10071691
xor eax, eax
shr eax, 2
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x100716c1
mov ecx, dword [eax]
cmp dword [ecx + 0x128], 0
je 0x100716b3
mov eax, dword [ecx + 0x12c]
jmp 0x100716c3
push eax
call sym.FreeImage.dll__FreeImage_GetLine_4
add eax, 3
and eax, 0xfffffffc
jmp 0x100716c3
xor eax, eax
shr eax, 2
push edi
mov dword [esp + 0x28], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
push dword [esp + 0x28]
mov edi, eax
lea eax, [esi*4]
mov dword [esp + 0x1c], eax
add eax, edi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
shl eax, 2
mov dword [esp + 0xc], edi
mov dword [esp + 0x34], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
push dword [esp + 0x3c]
mov esi, eax
mov eax, dword [esp + 0x28]
add esi, dword [esp + 0x34]
shl eax, 2
mov dword [esp + 0x28], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
add eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
cmp ecx, 1
jle 0x100717f5
movss xmm3, dword [0x103f9be0]
lea eax, [ecx - 1]
movss xmm4, dword [0x103f9698]
movss xmm2, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
nop
lea ecx, [eax + 4]
mov edx, esi
mov eax, dword [esp + 0x30]
sub edx, dword [esp + 0x30]
add eax, esi
mov dword [esp + 0xc], eax
add edx, 4
lea edi, [eax + 4]
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], eax
nop dword [eax]
movss xmm1, dword [edi]
lea eax, [esi + 4]
addss xmm1, dword [edx]
movss xmm0, dword [eax]
add edx, 4
mulss xmm0, xmm4
add edi, 4
addss xmm1, dword [esi + 8]
addss xmm1, dword [esi]
mov esi, dword [esp + 0x14]
subss xmm1, xmm0
mulss xmm1, xmm2
xorps xmm1, xmm3
movss dword [ecx], xmm1
movss xmm0, dword [esi + ecx]
mov esi, eax
addss xmm0, xmm1
movss dword [ecx], xmm0
add ecx, 4
sub dword [esp + 0x28], 1
jne 0x10071780
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x3c], ecx
sub dword [esp + 0x20], 1
mov esi, dword [esp + 0xc]
mov dword [esp + 0x34], eax
jne 0x10071750
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x10071871
mov eax, dword [esi]
cmp dword [eax + 0x128], 0
je 0x10071810
mov eax, dword [eax + 0x12c]
jmp 0x10071854
lea esi, [eax + 0x130]
mov eax, 0x10
mov edx, esi
mov ecx, esi
and edx, 0xf
sub eax, edx
neg edx
sbb edx, edx
and ecx, 0xf
and edx, eax
mov eax, 0x10
sub eax, ecx
neg ecx
sbb ecx, ecx
and ecx, eax
movzx eax, word [ecx + esi + 0x16]
imul eax, dword [edx + esi + 0xc]
mov esi, dword [esp + 0x2c]
add eax, 7
shr eax, 3
add eax, 3
and eax, 0xfffffffc
mov ecx, dword [esi]
mov dword [esp + 0x3c], eax
cmp dword [ecx + 0x120], 0
je 0x10071873
push esi
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ecx, eax
mov eax, dword [esp + 0x3c]
jmp 0x10071875
xor eax, eax
xor ecx, ecx
push eax
push 0
push ecx
call fcn.1026e960
add esp, 0xc
test esi, esi
je 0x10071961
mov ecx, dword [esi]
mov dword [esp + 8], ecx
cmp dword [ecx + 0x128], 0
je 0x100718a0
mov eax, dword [ecx + 0x12c]
jmp 0x100718e4
lea esi, [ecx + 0x130]
mov eax, 0x10
mov edx, esi
mov ecx, esi
and edx, 0xf
sub eax, edx
neg edx
sbb edx, edx
and ecx, 0xf
and edx, eax
mov eax, 0x10
sub eax, ecx
neg ecx
sbb ecx, ecx
and ecx, eax
movzx eax, word [ecx + esi + 0x16]
imul eax, dword [edx + esi + 0xc]
mov ecx, dword [esp + 8]
add eax, 7
shr eax, 3
add eax, 3
and eax, 0xfffffffc
cmp dword [ecx + 0x120], 0
mov dword [esp + 0x3c], eax
je 0x10071963
cmp dword [ecx + 0x128], 0
je 0x10071902
mov esi, dword [ecx + 0x12c]
jmp 0x1007193f
lea edx, [ecx + 0x130]
mov esi, 0x10
mov eax, esi
mov ecx, edx
and ecx, 0xf
sub eax, ecx
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, edx
and eax, 0xf
sub esi, eax
neg eax
sbb eax, eax
and eax, esi
movzx esi, word [eax + edx + 0x16]
imul esi, dword [ecx + edx + 0xc]
add esi, 7
shr esi, 3
add esi, 3
and esi, 0xfffffffc
push dword [esp + 0x2c]
call sym.FreeImage.dll__FreeImage_GetBits_4
test eax, eax
je 0x1007195b
mov ecx, dword [esp + 0x1c]
imul ecx, esi
add ecx, eax
mov eax, dword [esp + 0x3c]
jmp 0x10071965
mov eax, dword [esp + 0x3c]
jmp 0x10071963
xor eax, eax
xor ecx, ecx
push eax
push 0
push ecx
call fcn.1026e960
mov ecx, dword [esp + 0x4c]
add esp, 0xc
lea eax, [ecx - 1]
lea eax, [edi + eax*4]
test ecx, ecx
jle 0x100719a4
mov edx, dword [esp + 0x18]
sub eax, edi
nop word [eax + eax]
mov dword [edi], 0
mov dword [eax + edi], 0
add edi, edx
sub ecx, 1
jne 0x10071990
pop edi
pop esi
add esp, 0x30
ret