Function at 0x100b9db0
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
push 0xffffffffffffffff
push 0x101b0ce1
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x30
push esi
push edi
mov eax, dword [0x10249010]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [0x1039f500]
mov eax, dword [eax + 8]
movss xmm7, dword [eax + 0x138]
movss xmm5, dword [eax + 0x13c]
subss xmm7, dword [edi]
subss xmm5, dword [edi + 4]
movss xmm0, dword [eax + 0x11c]
movss xmm2, dword [eax + 0x114]
movss xmm4, dword [eax + 0x118]
movss dword [ebp - 0x1c], xmm0
movaps xmm0, xmm7
movaps xmm1, xmm5
mulss xmm0, xmm7
mulss xmm1, xmm5
movss dword [ebp - 0x14], xmm2
movss dword [ebp - 0x18], xmm4
addss xmm0, xmm1
movss dword [ebp - 0x20], xmm7
call fcn.1002f5d0
mov eax, dword [0x1039f244]
movaps xmm6, xmm0
mov esi, dword [ebx + 8]
movss dword [ebp - 0x24], xmm6
cmp byte [eax + 0x18a7], 0
je 0x100b9e7a
cmp byte [edi + 0xc], 0
jne 0x100b9e7a
cmp byte [edi + 0x20], 0
jne 0x100b9f08
mov eax, dword [0x1039ea98]
movss xmm3, dword [0x10232e44]
movss xmm0, dword [eax + 0x20]
mulss xmm0, xmm3
movaps xmm1, xmm0
mulss xmm0, xmm4
mulss xmm1, xmm2
xorps xmm0, xmmword [0x10233610]
mulss xmm0, xmm0
xorps xmm1, xmmword [0x10233610]
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1002f5d0
comiss xmm0, xmm6
jbe 0x100ba04e
mov ecx, dword [ebx + 0xc]
movss xmm3, dword [0x10232e8c]
push 0
sub esp, 0xc
mov eax, dword [ecx]
mov edx, esp
push esi
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
call fcn.100ba730
test al, al
je 0x100b9f08
mov byte [edi + 0x1c], 1
mov dword [esi + 0x2c], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x24], 0
movss xmm3, dword [0x10232e44]
comiss xmm3, dword [ebp - 0x24]
jb 0x100ba2cc
movss xmm1, dword [edi + 0x18]
ucomiss xmm1, dword [0x102330dc]
mov byte [edi + 0x1c], 1
lahf
test ah, 0x44
jnp 0x100b9f72
mov eax, dword [0x1039ea98]
movss xmm0, dword [eax + 0x10]
subss xmm0, xmm1
call fcn.10015090
movss xmm1, dword [eax + 0x20]
mulss xmm1, xmm3
subss xmm0, xmm1
xorps xmm1, xmm1
maxss xmm0, xmm1
divss xmm0, dword [eax + 0x20]
mov dword [edi + 0x18], 0xbf800000
addss xmm0, dword [0x10232d64]
cvttss2si eax, xmm0
mov dword [edi + 0x14], eax
mov eax, dword [0x1039f570]
cmp byte [eax], 0
jne 0x100ba2b7
mov eax, dword [0x1039f500]
mov ecx, dword [0x1039ea44]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1039eaa0]
cmp eax, dword [ecx + 4]
jle 0x100b9fec
push 0x1039eaa0
call fcn.10151b0d
add esp, 4
cmp dword [0x1039eaa0], 0xffffffff
jne 0x100b9fec
push ecx
push 0xe200e77e
mov dword [ebp - 4], 0
mov ecx, dword [0x1039f394]
push 0x9be3441b
call fcn.100bc2f0
push 0x1039eaa0
mov dword [0x1039ea94], eax
call fcn.10151ac3
add esp, 4
mov eax, dword [0x1039ea94]
mov ecx, dword [ebp - 0x24]
movss xmm0, dword [ecx + eax]
mov eax, dword [0x1039ea98]
divss xmm0, dword [eax + 0x20]
mov eax, dword [0x1039f500]
addss xmm0, dword [0x10232d64]
cvttss2si ecx, xmm0
sub ecx, dword [eax + 0x58]
mov eax, 0
cmovs ecx, eax
cmp ecx, 3
jg 0x100ba2b7
mov eax, dword [0x1039f318]
cmp byte [eax + 0x2f2], 0
je 0x100ba045
mov eax, dword [0x1039f570]
cmp byte [eax + 0xc], 0
je 0x100ba2b7
mov byte [edi + 0xc], 0
jmp 0x100ba2cc
comiss xmm6, xmm3
jbe 0x100b9f10
divss xmm5, xmm7
movaps xmm0, xmm5
call fcn.100a9140
movss xmm1, dword [ebp - 0x20]
xorps xmm6, xmm6
comiss xmm1, xmm6
mulss xmm0, dword [0x10232ef0]
movss xmm2, dword [0x10232fa8]
jb 0x100ba084
addss xmm0, xmm2
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1039ea44]
mov edx, dword [ebx + 0xc]
mov ecx, dword [eax + ecx*4]
movss dword [edx + 4], xmm0
mov eax, dword [0x103a259c]
cmp eax, dword [ecx + 4]
jle 0x100ba135
push 0x103a259c
call fcn.10151b0d
add esp, 4
cmp dword [0x103a259c], 0xffffffff
jne 0x100ba127
mov eax, dword [0x1039ead8]
mov edi, dword [eax + 0x30]
test edi, edi
je 0x100ba112
nop
mov edx, dword [edi + 0xc]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100ba0d8
sub ecx, esi
mov esi, 0x4fa38bcd
add ecx, 1
je 0x100ba10b
nop dword [eax + eax]
movsx eax, byte [edx]
lea edx, [edx + 1]
xor eax, esi
imul esi, eax, 0xf1546419
sub ecx, 1
jne 0x100ba0f0
cmp esi, 0x5fc6b781
je 0x100ba114
mov edi, dword [edi + 4]
test edi, edi
jne 0x100ba0d0
xor edi, edi
push 0x103a259c
mov dword [0x103a25a4], edi
call fcn.10151ac3
add esp, 4
mov edx, dword [ebx + 0xc]
xorps xmm6, xmm6
movss xmm2, dword [0x10232fa8]
mov ecx, dword [0x103a25a4]
movss xmm3, dword [ebp - 0x18]
mov esi, dword [ebx + 8]
movss xmm1, dword [ebp - 0x14]
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0x38], 0
mov eax, dword [eax + 0x2c]
xor eax, ecx
mov dword [esi + 0x2c], 0
ucomiss xmm3, xmm6
mov dword [ebp - 0x20], eax
mov dword [esi + 0x28], 0
movss xmm0, dword [ebp - 0x20]
movss dword [esi + 0x24], xmm0
lahf
test ah, 0x44
jp 0x100ba1ba
ucomiss xmm1, xmm6
lahf
test ah, 0x44
jp 0x100ba1ba
movss xmm0, dword [ebp - 0x1c]
xorps xmm2, xmm2
comiss xmm0, xmm6
jbe 0x100ba19b
movss xmm0, dword [0x10233004]
jmp 0x100ba1a3
movss xmm0, dword [0x10232f2c]
mulss xmm3, xmm3
mulss xmm1, xmm1
movss dword [ebp - 0x18], xmm3
movss dword [ebp - 0x14], xmm1
jmp 0x100ba257
movaps xmm0, xmm3
call fcn.1007b000
movsd xmm7, qword [0x10232de8]
movss xmm5, dword [0x10233010]
mulss xmm0, xmm2
xorps xmm2, xmm2
cvtss2sd xmm0, xmm0
mulsd xmm0, xmm7
cvtsd2ss xmm2, xmm0
comiss xmm6, xmm2
jbe 0x100ba1ee
addss xmm2, xmm5
movaps xmm4, xmm3
mulss xmm4, xmm3
movaps xmm3, xmm1
mulss xmm3, xmm1
movss dword [ebp - 0x18], xmm4
movaps xmm0, xmm3
movss dword [ebp - 0x14], xmm3
addss xmm0, xmm4
call fcn.1002f5d0
movss xmm1, dword [ebp - 0x1c]
xorps xmm1, xmmword [0x10233610]
movss dword [ebp - 0x1c], xmm1
movaps xmm1, xmm0
movss xmm0, dword [ebp - 0x1c]
call fcn.1007b000
mulss xmm0, dword [0x10232fa8]
cvtss2sd xmm0, xmm0
mulsd xmm0, xmm7
cvtsd2ss xmm0, xmm0
comiss xmm6, xmm0
jbe 0x100ba257
addss xmm0, xmm5
movss dword [ebp - 0x18], xmm4
movss dword [ebp - 0x14], xmm3
movss xmm1, dword [edx + 4]
lea ecx, [ebp - 0x30]
subss xmm1, xmm2
movss dword [ebp - 0x30], xmm0
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x28], 0
movss dword [ebp - 0x2c], xmm1
call fcn.100a9600
movss xmm0, dword [ebp - 0x14]
addss xmm0, dword [ebp - 0x18]
call fcn.1002f5d0
movaps xmm1, xmm0
movss xmm0, dword [ebp - 0x38]
xorps xmm1, xmmword [0x10233610]
mulss xmm0, xmm1
movss dword [esi + 0x28], xmm0
call fcn.10015090
movss xmm1, dword [0x10232e6c]
comiss xmm1, xmm0
jbe 0x100ba2cc
jmp 0x100ba2c5
mov dword [esi + 0x2c], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8