Function at 0x100a1b90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
mov eax, dword [0x1025ab04]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x74], eax
call fcn.100aac10
fstp dword [ebp - 0x38]
movss xmm0, dword [ebp - 0x38]
lea eax, [ebp - 0x24]
mulss xmm0, dword [0x10168670]
push eax
push 0
mov dword [ebp - 0x24], 0x3f800000
mov dword [ebp - 0x20], 0x3f800000
mov dword [ebp - 0x1c], 0x3f800000
movss dword [ebp - 0x18], xmm0
call fcn.1001a270
mov eax, dword [0x1025b460]
add esp, 8
mov dword [ebp - 0x3c], eax
and dword [eax + 0x1a34], 0xffffffef
mov ecx, dword [0x1025b460]
mov eax, dword [ecx + 0x19b0]
mov byte [eax + 0x8c], 1
mov ebx, dword [ecx + 0x19b0]
mov dword [ebp - 0x44], ebx
cmp byte [ebx + 0x8f], 0
jne 0x100a234d
push 0
push esi
mov ecx, ebx
call fcn.10013760
push ecx
mov dword [esp], 0xbf800000
mov esi, eax
push 1
push 0
push dword [ebp - 0x64]
lea eax, [ebp - 0xbc]
mov dword [ebp - 0x40], esi
push eax
call fcn.100105e0
movss xmm1, dword [ebx + 0xdc]
add esp, 0x10
movss xmm2, dword [ebx + 0xd8]
addss xmm1, dword [0x101732f4]
mov eax, dword [ebp - 0x3c]
movaps xmm3, xmm2
addss xmm3, dword [0x101732bc]
movss dword [ebp - 0x58], xmm2
movss xmm0, dword [ebx + 0xdc]
movss dword [ebp - 0x4c], xmm1
addss xmm1, dword [0x101686b8]
movss dword [ebp - 0x54], xmm0
movss dword [ebp - 0x50], xmm3
movss dword [ebp - 0xb4], xmm2
movss dword [ebp - 0xb0], xmm0
movss dword [ebp - 0xac], xmm3
movss dword [ebp - 0xa8], xmm1
movss xmm0, dword [eax + 0x154c]
lea eax, [ebp - 0xb4]
movss dword [esp], xmm0
push eax
call fcn.10015740
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0xb4]
push esi
push eax
call fcn.100153d0
add esp, 0x14
test al, al
je 0x100a234d
push 0
lea eax, [ebp - 0x59]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x58]
push esi
push eax
call fcn.10035bd0
push esi
mov bh, al
call fcn.100152d0
push 1
push dword [ebp - 0x64]
mov bl, al
mov byte [ebp - 0x5d], bl
call fcn.1009e5d0
add esp, 0x20
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x88]
lea ecx, [edi + 0x48]
push eax
call fcn.1009df90
push 4
push ecx
mov dword [esp], 0x3f800000
mov ecx, edi
push dword [ebp - 0x8c]
lea esi, [eax + 4]
mov dword [ebp - 0x18], eax
push esi
call fcn.100a9040
movss xmm0, dword [esi]
mov cl, 0xd9
movaps xmm1, xmm0
mulss xmm0, dword [0x10173290]
mulss xmm1, dword [0x1016cb44]
cvttss2si eax, xmm0
addss xmm1, dword [0x101686d4]
sub cl, al
mulss xmm1, dword [ebp - 0x38]
cvttss2si edx, xmm1
cmp edx, 0xff
jle 0x100a1d95
or al, 0xff
jmp 0x100a1d9f
xor esi, esi
movzx eax, dl
test edx, edx
cmovs eax, esi
push 0xf
push ecx
mov byte [ebp - 0x2d], al
lea eax, [ebp - 0x50]
mov dword [esp], 0x40800000
mov byte [ebp - 0x30], cl
mov byte [ebp - 0x2f], cl
mov byte [ebp - 0x2e], cl
push dword [ebp - 0x30]
mov ecx, dword [edi + 4]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.10021850
movss xmm0, dword [ebp - 0xbc]
comiss xmm0, dword [0x10168634]
jbe 0x100a1e12
movss xmm0, dword [ebp - 0x58]
addss xmm0, dword [0x101686cc]
push 1
push 0
push dword [ebp - 0x64]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x54]
addss xmm0, dword [0x101686d0]
movss dword [ebp - 0x30], xmm0
push dword [ebp - 0x30]
push dword [ebp - 0x34]
call fcn.1001ae70
add esp, 0x14
mov ecx, dword [ebp - 0x40]
test bh, bh
jne 0x100a1e24
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x1ae0], ecx
jne 0x100a1e48
test bl, bl
jne 0x100a1e48
mov eax, dword [ebp - 0x44]
cmp dword [eax + 0x140], 0
jne 0x100a1e3a
mov dword [eax + 0x314], ecx
push ecx
call fcn.10019850
mov bl, 1
add esp, 4
mov byte [ebp - 0x5d], bl
mov esi, dword [ebp - 0x18]
push 4
push ecx
mov dword [esp], 0x3f000000
mov ecx, edi
push dword [ebp - 0x5d]
mov byte [esi], bl
add esi, 8
push esi
mov dword [ebp - 0x40], esi
call fcn.100a9040
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x100a1f38
push ecx
mov dword [esp], 0xbf800000
push 0
push 0
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.100105e0
movss xmm0, dword [ebp - 0x34]
lea eax, [ebp - 0x70]
addss xmm0, dword [0x101732b0]
push eax
push 0
mov dword [ebp - 0x70], 0x3f800000
mov dword [ebp - 0x6c], 0x3f800000
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [esi]
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [ebp - 0x38]
mov dword [ebp - 0x68], 0x3f800000
movss dword [ebp - 0x64], xmm0
call fcn.1001a270
movss xmm1, dword [0x10173334]
lea eax, [ebp - 0x68]
subss xmm1, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x50]
push 0
push eax
mov eax, dword [ebp - 0x74]
mulss xmm1, dword [ebp - 0x44]
push 0
push 0
push eax
addss xmm1, dword [ebp - 0x18]
lea eax, [ebp - 0x50]
mov dword [ebp - 0x68], 0
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x64], 0
push eax
subss xmm0, xmm1
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x4c]
subss xmm0, dword [0x1016d94c]
movss dword [ebp - 0x18], xmm0
call fcn.1001af30
push 1
call fcn.10019d90
add esp, 0x3c
movss xmm2, dword [ebp - 0x58]
movss xmm3, dword [ebp - 0x54]
movaps xmm1, xmm2
movaps xmm0, xmm3
addss xmm1, dword [0x10173338]
addss xmm0, dword [0x10173298]
movss dword [ebp - 0x9c], xmm1
movss dword [ebp - 0x98], xmm0
addss xmm1, dword [0x10173334]
addss xmm0, dword [0x101732ac]
movss dword [ebp - 0x7c], xmm1
movss dword [ebp - 0x78], xmm0
test bl, bl
je 0x100a2041
movss xmm0, dword [ebp - 0x38]
mulss xmm0, dword [esi]
push 3
push ecx
mov ecx, dword [edi + 4]
mulss xmm0, dword [0x1017333c]
mov dword [esp], 0x40800000
mov word [ebp - 0x30], 0x505
mov byte [ebp - 0x2e], 5
cvttss2si eax, xmm0
mov byte [ebp - 0x2d], al
lea eax, [ebp - 0x7c]
push dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.10021850
movss xmm0, dword [ebp - 0x38]
mulss xmm0, dword [esi]
push ecx
movss xmm1, dword [ebp - 0x7c]
mov ecx, dword [edi + 4]
mulss xmm0, dword [0x10173328]
mov dword [esp], 0x3f800000
mov word [ebp - 0x30], 0xffff
mov byte [ebp - 0x2e], 0xff
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x78]
subss xmm0, dword [0x1016869c]
mov byte [ebp - 0x2d], al
lea eax, [ebp - 0x1c]
push dword [ebp - 0x30]
movss dword [ebp - 0x1c], xmm1
subss xmm1, dword [0x10173334]
push eax
lea eax, [ebp - 0x48]
movss dword [ebp - 0x18], xmm0
push eax
movss dword [ebp - 0x44], xmm0
movss dword [ebp - 0x48], xmm1
call fcn.10020c50
movss xmm3, dword [ebp - 0x54]
movss xmm2, dword [ebp - 0x58]
movaps xmm0, xmm2
mov word [ebp - 0x30], 0xffff
addss xmm0, dword [0x10173340]
addss xmm2, dword [0x10173344]
push ecx
mov ecx, dword [edi + 4]
lea eax, [ebp - 0x94]
mov dword [esp], 0x3fc00000
movss dword [ebp - 0x84], xmm0
movaps xmm0, xmm3
addss xmm0, dword [0x1017332c]
addss xmm3, dword [0x10173330]
mov byte [ebp - 0x2e], 0xff
movss dword [ebp - 0x94], xmm2
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [ebp - 0x38]
mulss xmm0, dword [0x101686e4]
movss dword [ebp - 0x90], xmm3
cvttss2si ebx, xmm0
mov byte [ebp - 0x2d], bl
push dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.10020c50
movss xmm0, dword [ebp - 0x84]
lea eax, [ebp - 0x94]
addss xmm0, dword [0x10173298]
push ecx
mov ecx, dword [edi + 4]
mov dword [esp], 0x3fc00000
mov word [ebp - 0x30], 0xffff
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x80]
subss xmm0, dword [0x1016869c]
mov byte [ebp - 0x2e], 0xff
mov byte [ebp - 0x2d], bl
push dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x1c]
movss dword [ebp - 0x18], xmm0
push eax
call fcn.10020c50
cmp byte [ebp - 0x5d], 0
je 0x100a234d
cmp byte [0x10251e00], 0
mov ebx, dword [ebp - 0x3c]
mov edi, dword [ebx + 0x1acc]
je 0x100a219a
cmp byte [0x10251e01], 0
jne 0x100a21ee
mov byte [0x10251e01], 1
xor esi, esi
nop word [eax + eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x10251e14]
xor ebx, dword [0x10251e10]
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 dword [ebp - 0x18], edx
mov eax, ebx
shrd eax, edx, 7
xor al, byte [esi + 0x10251e02]
xor al, bl
mov byte [esi + 0x10251e02], al
inc esi
cmp esi, 0xd
jb 0x100a2150
jmp 0x100a21e8
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x10251e14]
xor ebx, dword [0x10251e10]
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 dword [ebp - 0x18], edx
mov eax, ebx
shrd eax, edx, 7
xor al, byte [esi + 0x10251e02]
xor al, bl
mov byte [esi + 0x10251e02], al
inc esi
cmp esi, 0xd
jb 0x100a21a0
mov ebx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x40]
push 0xc
push 0x10251e02
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
call fcn.10045f20
cmp dword [ebp - 0x18], 0x10
lea eax, [ebp - 0x2c]
push edi
cmovae eax, dword [ebp - 0x2c]
push eax
lea eax, [ebp - 0x14]
push 0x10
push eax
call fcn.10013f70
mov edx, dword [ebp - 0x18]
add esp, 0x10
cmp edx, 0x10
jb 0x100a2263
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100a2259
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100a2259
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.101041fa
add esp, 8
movss xmm0, dword [ebp - 0x58]
lea eax, [ebp - 0x1c]
addss xmm0, dword [0x10173338]
push eax
lea eax, [ebp - 0x48]
mov dword [ebp - 0x1c], 0
push 0
push eax
movss dword [ebp - 0x48], xmm0
movss xmm0, dword [ebp - 0x54]
addss xmm0, dword [0x10172fb0]
mov dword [ebp - 0x18], 0
movss dword [ebp - 0x44], xmm0
call fcn.1001ce90
push dword [ebp + 0x14]
call fcn.100a2390
movss xmm0, dword [0x10173288]
add esp, 0x10
fstp dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x18]
comiss xmm1, xmm0
ja 0x100a22cf
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x100a22cf
movaps xmm0, xmm1
mulss xmm0, dword [esi]
lea eax, [ebp - 0xa4]
push 0
push eax
mov dword [ebp - 0xa4], 0x42f60000
movss dword [ebp - 0xa0], xmm0
call fcn.1001cee0
movss xmm0, dword [ebp - 0x38]
add esp, 4
mulss xmm0, dword [esi]
movss dword [esp], xmm0
call fcn.1001ce60
movss xmm0, dword [ebx + 0x1518]
lea eax, [ebp - 0x1c]
push eax
push 1
mov dword [ebp - 0x1c], 0x40e00000
movss dword [ebp - 0x18], xmm0
call fcn.1001a2c0
push 0x400010f
lea eax, [ebp - 0x14]
push 0
push eax
call fcn.1000d330
push 1
mov bl, al
call fcn.10019de0
add esp, 0x1c
test bl, bl
jne 0x100a2362
call fcn.100120b0
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10104522
mov esp, ebp
pop ebp
ret 0x10
push 1
call fcn.10019d90
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
mov al, 1
pop edi
pop esi
pop ebx
call fcn.10104522
mov esp, ebp
pop ebp
ret 0x10