Function at 0x1009fb70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x10266a40]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x10259e3c], 0
mov ecx, dword [0x10267acc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
jne 0x1009fbbb
call eax
test eax, eax
je 0x1009fe8d
mov ecx, dword [0x10267acc]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1010c1a2
mov esp, ebp
pop ebp
ret
call eax
test eax, eax
jne 0x1009fbd0
mov ecx, dword [0x10267acc]
push 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x10267ad0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
mov edx, dword [0x10259e40]
cmp eax, edx
je 0x1009fbf5
mov ecx, dword [0x10267ad0]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x10267ad4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
mov edx, dword [0x10259e44]
cmp eax, edx
je 0x1009fc1a
mov ecx, dword [0x10267ad4]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
movd xmm0, dword [0x10259e48]
mov ecx, dword [0x10267ad8]
cvtdq2ps xmm0, xmm0
mov eax, dword [ecx]
mulss xmm0, dword [0x101758e8]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x48], eax
movss dword [ebp - 0x4c], xmm0
call dword [ebp - 0x48]
movss xmm1, dword [ebp - 0x4c]
fstp dword [ebp - 0x48]
movss xmm0, dword [ebp - 0x48]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1009fc6c
mov ecx, dword [0x10267ad8]
push ecx
movss dword [esp], xmm1
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
movss xmm1, dword [0x1017170c]
movss xmm0, dword [0x10259f54]
mulss xmm0, xmm1
push ebx
push esi
push edi
cvttss2si edx, xmm0
movss xmm0, dword [0x10259f50]
mulss xmm0, xmm1
movzx ebx, dl
cvttss2si ecx, xmm0
movss xmm0, dword [0x10259f4c]
mulss xmm0, xmm1
movzx edi, cl
mov ecx, 0x1025d1f0
cvttss2si eax, xmm0
movzx esi, al
lea eax, [ebp - 0x40]
push eax
call fcn.1004f5b0
cmp dword [ebp - 0x2c], 0xf
lea eax, [ebp - 0x40]
push ebx
cmova eax, dword [ebp - 0x40]
push edi
push esi
push eax
lea eax, [ebp - 0x10]
push 0xc
push eax
call fcn.100a0380
mov ecx, dword [ebp - 0x2c]
add esp, 0x18
cmp ecx, 0xf
jbe 0x1009fd11
mov edx, dword [ebp - 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009fd07
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1009fd07
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010be7a
add esp, 8
mov edx, dword [0x10267adc]
test dword [edx + 0x14], 0x1000
je 0x1009fe41
cmp byte [0x1025d1d0], 0
je 0x1009fd8a
cmp byte [0x1025d1d1], 0
jne 0x1009fdd5
mov byte [0x1025d1d1], 1
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x1025d1ec]
xor ebx, dword [0x1025d1e8]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov eax, ebx
shrd eax, edx, 7
xor al, byte [esi + 0x1025d1d2]
xor al, bl
mov byte [esi + 0x1025d1d2], al
inc esi
cmp esi, 0x16
jb 0x1009fd43
jmp 0x1009fdd5
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x1025d1ec]
xor ebx, dword [0x1025d1e8]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov eax, ebx
shrd eax, edx, 7
xor al, byte [esi + 0x1025d1d2]
xor al, bl
mov byte [esi + 0x1025d1d2], al
inc esi
cmp esi, 0x16
jb 0x1009fd90
lea eax, [ebp - 0x41]
push eax
push 0x1025d1e7
push 0x1025d1d2
lea ecx, [ebp - 0x28]
call fcn.1004ef20
mov edx, dword [ebp - 0x14]
lea esi, [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
cmp edx, 0xf
cmova esi, ecx
jbe 0x1009fe27
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1009fe1d
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1009fe1d
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1010be7a
add esp, 8
mov edx, dword [0x10267adc]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
jmp 0x1009fe51
mov eax, dword [edx + 0x1c]
mov esi, 0x10171472
mov eax, dword [eax + 0x24]
test eax, eax
cmovne esi, eax
lea eax, [ebp - 0x10]
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x1009fe74
test cl, cl
je 0x1009fe70
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x1009fe74
add esi, 2
add eax, 2
test cl, cl
jne 0x1009fe54
xor eax, eax
jmp 0x1009fe79
sbb eax, eax
or eax, 1
pop edi
pop esi
pop ebx
test eax, eax
je 0x1009fe8d
mov eax, dword [edx]
lea ecx, [ebp - 0x10]
push ecx
mov ecx, edx
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1010c1a2
mov esp, ebp
pop ebp
ret