Function at 0x1004fbe0
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 0x103162d5
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x98
mov eax, dword [0x1043900c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp byte [0x1060f584], 0
je 0x1005061a
test edi, edi
je 0x1005022e
mov eax, dword [0x1060b290]
movss xmm0, dword [eax]
subss xmm0, dword [0x104bf588]
mov eax, dword [edi + 0xcc]
mov dword [ebp - 0x30], eax
movss dword [ebp - 0x80], xmm0
movq xmm0, qword [edi + 0xc4]
movq qword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x38]
call fcn.10127310
movss dword [ebp - 0x90], xmm0
movss xmm0, dword [ebp - 0x34]
call fcn.10127310
lea eax, [ebp - 0x20]
movss dword [ebp - 0x78], xmm0
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x30], 0
push eax
lea edx, [ebp - 0x50]
mov dword [ebp - 0x34], 0
lea ecx, [edi + 0xc4]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
call fcn.101276d0
movq xmm0, qword [edi + 0xb8]
add esp, 8
movss xmm1, dword [0x104bf594]
movss xmm2, dword [0x104bf598]
mov eax, dword [edi + 0xc0]
movss xmm3, dword [0x104bf59c]
movq qword [ebp - 0x20], xmm0
movss xmm5, dword [ebp - 0x20]
movss xmm6, dword [ebp - 0x1c]
subss xmm1, xmm5
mov edx, dword [0x1060b5e0]
subss xmm2, xmm6
mov dword [ebp - 0x18], eax
movss xmm7, dword [ebp - 0x18]
subss xmm3, xmm7
movaps xmm0, xmm1
mulss xmm0, xmm1
movaps xmm4, xmm2
mulss xmm4, xmm2
addss xmm4, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm4, xmm0
movss xmm0, dword [ebp - 0x80]
comiss xmm4, dword [0x1041f0d8]
jbe 0x1004fd8d
comiss xmm0, dword [0x1041ed50]
jb 0x1004fd8d
mov dword [edx + 0x7ef8], 0
mov dword [edx + 0x7efc], 0
mov dword [edx + 0x7f00], 0
mov dword [edx + 0x7f04], 0
jmp 0x100501a5
comiss xmm0, dword [0x1041ecc4]
jbe 0x1004fdc3
mov dword [edx + 0x7ef8], 0
mov dword [edx + 0x7efc], 0
mov dword [edx + 0x7f00], 0
mov dword [edx + 0x7f04], 0
jmp 0x100501a5
comiss xmm4, dword [0x1041f0e8]
jbe 0x1004fdea
mov eax, dword [0x1060b290]
movss xmm0, dword [eax]
addss xmm0, dword [0x1041edc4]
movss dword [0x104bf5d0], xmm0
jmp 0x100501a5
movss xmm5, dword [edi + 0xb0]
xorps xmm4, xmm4
movss xmm0, dword [edi + 0xe0]
movaps xmm6, xmm5
comiss xmm4, xmm0
movss dword [ebp - 0x84], xmm5
jae 0x1004fe11
divss xmm6, xmm0
cmp byte [0x1060f585], 0
movss xmm0, dword [ebp - 0x50]
movss xmm5, dword [ebp - 0x4c]
mulss xmm0, xmm1
mulss xmm5, xmm2
addss xmm5, xmm0
movss xmm0, dword [ebp - 0x48]
mulss xmm0, xmm3
addss xmm5, xmm0
je 0x1004fe45
movss dword [edx + 0x7f00], xmm5
mulss xmm2, dword [ebp - 0x34]
mulss xmm1, dword [ebp - 0x38]
mulss xmm3, dword [ebp - 0x30]
movss xmm0, dword [ebp - 0x78]
addss xmm1, xmm2
movss xmm7, dword [0x1041f224]
addss xmm1, xmm3
movss xmm3, dword [0x104bf590]
movaps xmm2, xmm3
subss xmm2, xmm0
comiss xmm2, dword [0x1041f028]
movss dword [ebp - 0x94], xmm2
ja 0x1004fe96
comiss xmm7, xmm2
movaps xmm0, xmm2
jbe 0x1004feba
movss xmm0, dword [ebp - 0x78]
addss xmm3, xmm0
movaps xmm0, xmm2
comiss xmm3, xmm7
jbe 0x1004feba
movss xmm2, dword [0x1041f028]
comiss xmm2, xmm3
jbe 0x1004feba
movss dword [ebp - 0x94], xmm3
movaps xmm0, xmm3
comiss xmm4, xmm0
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x88], 0
mulss xmm1, dword [0x1041ed28]
addss xmm1, xmm0
movss dword [ebp - 0x98], xmm1
jbe 0x1004fefa
comiss xmm1, xmm0
lea eax, [ebp - 0x94]
cmovae eax, ecx
lea ecx, [ebp - 0x88]
comiss xmm4, xmm1
jmp 0x1004ff0f
comiss xmm1, xmm4
lea eax, [ebp - 0x88]
cmovae eax, ecx
lea ecx, [ebp - 0x94]
comiss xmm0, xmm1
movss xmm7, dword [ebp - 0x90]
cmovae ecx, eax
andps xmm7, xmmword [0x1041f450]
movss xmm3, dword [0x1041edc4]
movaps xmm0, xmm7
mulss xmm0, dword [0x1041ec84]
movaps xmm1, xmm3
movss xmm2, dword [ecx]
movss dword [ebp - 0x98], xmm2
divss xmm2, dword [ebp - 0x84]
subss xmm1, xmm0
movss dword [ebp - 0x9c], xmm0
movaps xmm0, xmm3
mulss xmm1, xmm2
movss dword [ebp - 0x7c], xmm1
movss dword [edx + 0x7ef8], xmm1
movss xmm1, dword [ebp - 0x48]
andps xmm1, xmmword [0x1041f450]
subss xmm0, xmm1
movss xmm1, dword [0x104bf58c]
subss xmm1, dword [ebp - 0x90]
mulss xmm0, xmm0
movss dword [ebp - 0x84], xmm1
subss xmm3, xmm0
movss xmm0, dword [ebp - 0x90]
comiss xmm0, xmm4
mulss xmm3, xmm5
movaps xmm0, xmm1
mulss xmm3, dword [0x1041ed50]
jbe 0x1004ffbd
subss xmm0, xmm3
jmp 0x1004ffc1
addss xmm0, xmm3
comiss xmm4, xmm1
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x8c], 0
movss dword [ebp - 0xa0], xmm0
jbe 0x1004fff5
comiss xmm0, xmm1
lea eax, [ebp - 0x84]
cmovae eax, ecx
lea ecx, [ebp - 0x8c]
comiss xmm4, xmm0
jmp 0x1005000a
comiss xmm0, xmm4
lea eax, [ebp - 0x8c]
cmovae eax, ecx
lea ecx, [ebp - 0x84]
comiss xmm1, xmm0
mulss xmm2, dword [ebp - 0x9c]
cmovae ecx, eax
movss xmm1, dword [ebp - 0x80]
comiss xmm1, xmm4
movss xmm0, dword [ecx]
mulss xmm2, dword [0x1041ec54]
divss xmm0, xmm6
movss xmm6, dword [0x1041eca4]
mulss xmm7, xmm7
movss dword [ebp - 0x84], xmm0
movss dword [edx + 0x7efc], xmm0
mulss xmm2, xmm7
movss dword [edx + 0x7f04], xmm2
jbe 0x10050070
movaps xmm0, xmm6
divss xmm0, xmm1
mulss xmm0, dword [edx + 0x7f00]
movss dword [edx + 0x7f00], xmm0
jmp 0x1005007a
mov dword [edx + 0x7f00], 0
movss xmm3, dword [edx + 0x7f00]
comiss xmm3, xmm4
movss xmm7, dword [0x1041edc4]
jb 0x10050094
movaps xmm5, xmm7
jmp 0x1005009c
movss xmm5, dword [0x1041f198]
movss xmm0, dword [0x1060f58c]
lea eax, [ebp - 0x8c]
subss xmm0, dword [0x1060f588]
andps xmm3, xmmword [0x1041f450]
lea ecx, [ebp - 0x9c]
subss xmm3, dword [0x1060f588]
movss xmm1, dword [0x1041ece8]
mov dword [ebp - 0x88], 0x3f800000
mov dword [ebp - 0x9c], 0
divss xmm3, xmm0
comiss xmm3, xmm4
movss dword [ebp - 0x8c], xmm3
cmovae ecx, eax
lea eax, [ebp - 0x88]
comiss xmm7, xmm3
movss xmm7, dword [ebp - 0x18]
cmovae eax, ecx
mulss xmm5, dword [eax]
mulss xmm5, xmm6
movss xmm6, dword [ebp - 0x1c]
movss dword [edx + 0x7f00], xmm5
movss xmm0, dword [0x1060f594]
mulss xmm0, xmm1
mulss xmm0, dword [0x1060f598]
mulss xmm0, dword [ebp - 0x7c]
movss dword [edx + 0x7ef8], xmm0
movss xmm0, dword [0x1060f594]
mulss xmm0, xmm1
mulss xmm0, dword [0x1060f598]
mulss xmm0, dword [ebp - 0x84]
movss dword [edx + 0x7efc], xmm0
movss xmm0, dword [0x1060f594]
mulss xmm0, xmm1
mulss xmm0, dword [0x1060f598]
mulss xmm0, xmm5
movss xmm5, dword [ebp - 0x20]
movss dword [edx + 0x7f00], xmm0
movss xmm0, dword [0x1060f590]
mulss xmm0, xmm1
mulss xmm0, dword [0x1060f598]
mulss xmm0, xmm2
movss dword [edx + 0x7f04], xmm0
mov eax, dword [0x1060b290]
movss xmm0, dword [0x104bf5d0]
comiss xmm0, dword [eax]
jbe 0x100501d7
mov dword [edx + 0x7ef8], 0
mov dword [edx + 0x7efc], 0
mov dword [edx + 0x7f04], 0
jmp 0x100501e1
mov dword [0x104bf5d0], 0
movss xmm0, dword [ebp - 0x90]
mov eax, dword [0x1060b290]
movss dword [0x104bf58c], xmm0
movss xmm0, dword [ebp - 0x78]
movss dword [0x104bf594], xmm5
movss dword [0x104bf598], xmm6
movss dword [0x104bf59c], xmm7
movss dword [0x104bf590], xmm0
movss xmm0, dword [eax]
mov al, 1
movss dword [0x104bf588], xmm0
jmp 0x1005061c
cmp byte [0x104a1820], 0
jne 0x1005029e
mov byte [0x104a1820], 1
xor edi, edi
xor edx, edx
mov eax, edi
xor eax, dword [0x104a1830]
xor edx, dword [0x104a1834]
xor eax, 0x1de26cd5
xor edx, 0xd28f2c5
mov dword [ebp - 0x78], eax
mov esi, dword [ebp - 0x78]
mov ecx, edx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
shr ecx, 7
xor esi, eax
xor edx, ecx
mov dword [ebp - 0x78], esi
mov ecx, esi
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [edi + 0x104a1821]
xor cl, byte [ebp - 0x78]
mov byte [edi + 0x104a1821], cl
inc edi
cmp edi, 0xe
jb 0x10050240
push ecx
push 0x104a182e
push 0x104a1821
lea ecx, [ebp - 0x2c]
call fcn.1001a620
mov dword [ebp - 4], 0
lea eax, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
cmovae eax, dword [ebp - 0x2c]
cmp byte [0x104a03f0], 0
mov dword [ebp - 0x7c], eax
jne 0x1005033e
mov byte [0x104a03f0], 1
xor edi, edi
nop dword [eax + eax]
xor edx, edx
mov eax, edi
xor eax, dword [0x104a0408]
xor edx, dword [0x104a040c]
xor eax, 0x1de26cd5
xor edx, 0xd28f2c5
mov dword [ebp - 0x78], eax
mov esi, dword [ebp - 0x78]
mov ecx, edx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
shr ecx, 7
xor esi, eax
xor edx, ecx
mov dword [ebp - 0x78], esi
mov ecx, esi
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [edi + 0x104a03f1]
xor cl, byte [ebp - 0x78]
mov byte [edi + 0x104a03f1], cl
inc edi
cmp edi, 0x10
jb 0x100502e0
push ecx
push 0x104a0400
push 0x104a03f1
lea ecx, [ebp - 0x44]
call fcn.1001a620
mov byte [ebp - 4], 1
lea edx, [ebp - 0x44]
mov ecx, dword [0x1060b2a8]
cmp dword [ebp - 0x30], 0x10
push 0
cmovae edx, dword [ebp - 0x44]
mov eax, dword [ecx]
push 0
push dword [ebp - 0x7c]
mov eax, dword [eax + 0x150]
push edx
call eax
mov edi, eax
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x80], edi
call fcn.10019dd0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0xffffffff
call fcn.10019dd0
test edi, edi
je 0x1005061a
mov ecx, dword [0x1060b288]
lea edx, [ebp - 0xa8]
push edx
lea edx, [ebp - 0xa4]
push edx
mov eax, dword [ecx]
call dword [eax + 0x14]
cmp byte [0x104a0210], 0
mov eax, dword [edi]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x7c], eax
jne 0x10050431
mov byte [0x104a0210], 1
xor edi, edi
nop
xor edx, edx
mov eax, edi
xor eax, dword [0x104a0228]
xor edx, dword [0x104a022c]
xor eax, 0x1de26cd5
xor edx, 0xd28f2c5
mov dword [ebp - 0x78], eax
mov esi, dword [ebp - 0x78]
mov ecx, edx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
shr ecx, 7
xor esi, eax
xor edx, ecx
mov dword [ebp - 0x78], esi
mov ecx, esi
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [edi + 0x104a0211]
xor cl, byte [ebp - 0x78]
mov byte [edi + 0x104a0211], cl
inc edi
cmp edi, 0x14
jb 0x100503d0
mov edi, dword [ebp - 0x80]
push ecx
push 0x104a0224
push 0x104a0211
lea ecx, [ebp - 0x5c]
call fcn.1001a620
mov dword [ebp - 4], 2
lea eax, [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x10
mov ecx, edi
push 0
cmovae eax, dword [ebp - 0x5c]
push 0
push eax
call dword [ebp - 0x7c]
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 0xffffffff
mov esi, eax
call fcn.10019dd0
mov ecx, dword [0x1060b5e0]
push 0
movss xmm0, dword [ecx + 0x7ef8]
mov ecx, dword [esi]
push ecx
movss dword [esp], xmm0
mov edx, dword [ecx + 0x68]
mov ecx, esi
call edx
mov eax, dword [0x1060b5e0]
push 1
push ecx
mov ecx, esi
movss xmm0, dword [eax + 0x7efc]
mov eax, dword [esi]
movss dword [esp], xmm0
mov eax, dword [eax + 0x68]
call eax
mov eax, dword [0x1060b5e0]
push 2
push ecx
mov ecx, esi
movss xmm0, dword [eax + 0x7f00]
mov eax, dword [esi]
movss dword [esp], xmm0
mov eax, dword [eax + 0x68]
call eax
mov eax, dword [0x1060b5e0]
push 3
push ecx
mov ecx, esi
movss xmm0, dword [eax + 0x7f04]
mov eax, dword [esi]
movss dword [esp], xmm0
mov eax, dword [eax + 0x68]
call eax
cmp byte [0x104a94b0], 0
mov eax, dword [edi]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x7c], eax
jne 0x10050565
mov byte [0x104a94b0], 1
xor edi, edi
xor edx, edx
mov eax, edi
xor eax, dword [0x104a94d0]
xor edx, dword [0x104a94d4]
xor eax, 0x1de26cd5
xor edx, 0xd28f2c5
mov dword [ebp - 0x78], eax
mov esi, dword [ebp - 0x78]
mov ecx, edx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
shr ecx, 7
xor esi, eax
xor edx, ecx
mov dword [ebp - 0x78], esi
mov ecx, esi
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [edi + 0x104a94b1]
xor cl, byte [ebp - 0x78]
mov byte [edi + 0x104a94b1], cl
inc edi
cmp edi, 0x1c
jb 0x10050504
mov edi, dword [ebp - 0x80]
push ecx
push 0x104a94cc
push 0x104a94b1
lea ecx, [ebp - 0x74]
call fcn.1001a620
mov dword [ebp - 4], 3
lea eax, [ebp - 0x74]
cmp dword [ebp - 0x60], 0x10
mov ecx, edi
push 0
cmovae eax, dword [ebp - 0x74]
push 0
push eax
call dword [ebp - 0x7c]
lea ecx, [ebp - 0x74]
mov dword [ebp - 4], 0xffffffff
mov esi, eax
call fcn.10019dd0
mov eax, dword [esi]
push 0
push ecx
mov ecx, esi
mov dword [esp], 0
mov eax, dword [eax + 0x68]
call eax
mov eax, dword [esi]
push 1
push ecx
mov ecx, esi
mov dword [esp], 0
mov eax, dword [eax + 0x68]
call eax
mov eax, dword [esi]
push 2
push ecx
mov ecx, esi
mov dword [esp], 0x3f800000
mov eax, dword [eax + 0x68]
call eax
mov eax, dword [esi]
push 3
push ecx
mov ecx, esi
mov dword [esp], 0x3f800000
mov eax, dword [eax + 0x68]
call eax
mov eax, dword [0x1060b5e0]
mov eax, dword [eax + 0x7f70]
mov dword [ebp - 0x7c], eax
push dword [ebp - 0xa8]
push dword [ebp - 0xa4]
push 0
xor edx, edx
mov ecx, dword [ebp - 0x80]
call dword [ebp - 0x7c]
add esp, 0xc
jmp 0x1005061c
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.102bb91c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret