Function at 0x100a6790
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
mov eax, dword [0x1029ad64]
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.100afaf0
fstp dword [ebp - 0x38]
movss xmm0, dword [ebp - 0x38]
lea eax, [ebp - 0x24]
mulss xmm0, dword [0x1019e7f4]
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.1001a840
mov eax, dword [0x1029b530]
add esp, 8
mov dword [ebp - 0x3c], eax
and dword [eax + 0x1a34], 0xffffffef
mov ecx, dword [0x1029b530]
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 0x100a6f4d
push 0
push esi
mov ecx, ebx
call fcn.10013c40
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.10010ab0
movss xmm1, dword [ebx + 0xdc]
add esp, 0x10
movss xmm2, dword [ebx + 0xd8]
addss xmm1, dword [0x101aac7c]
mov eax, dword [ebp - 0x3c]
movaps xmm3, xmm2
addss xmm3, dword [0x101aac44]
movss dword [ebp - 0x58], xmm2
movss xmm0, dword [ebx + 0xdc]
movss dword [ebp - 0x4c], xmm1
addss xmm1, dword [0x1019e83c]
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.10015d10
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0xb4]
push esi
push eax
call fcn.100159a0
add esp, 0x14
test al, al
je 0x100a6f4d
push 0
lea eax, [ebp - 0x59]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x58]
push esi
push eax
call fcn.10036180
push esi
mov bh, al
call fcn.100158a0
push 1
push dword [ebp - 0x64]
mov bl, al
mov byte [ebp - 0x5d], bl
call fcn.100a31d0
add esp, 0x20
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x88]
lea ecx, [edi + 0x58]
push eax
call fcn.100a2b90
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.100adc50
movss xmm0, dword [esi]
mov cl, 0xd9
movaps xmm1, xmm0
mulss xmm0, dword [0x101aac18]
mulss xmm1, dword [0x101a2cdc]
cvttss2si eax, xmm0
addss xmm1, dword [0x1019e858]
sub cl, al
mulss xmm1, dword [ebp - 0x38]
cvttss2si edx, xmm1
cmp edx, 0xff
jle 0x100a6995
or al, 0xff
jmp 0x100a699f
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 + 0x14]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.10021e20
movss xmm0, dword [ebp - 0xbc]
comiss xmm0, dword [0x1019e7b8]
jbe 0x100a6a12
movss xmm0, dword [ebp - 0x58]
addss xmm0, dword [0x1019e850]
push 1
push 0
push dword [ebp - 0x64]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x54]
addss xmm0, dword [0x1019e854]
movss dword [ebp - 0x30], xmm0
push dword [ebp - 0x30]
push dword [ebp - 0x34]
call fcn.1001b440
add esp, 0x14
mov ecx, dword [ebp - 0x40]
test bh, bh
jne 0x100a6a24
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x1ae0], ecx
jne 0x100a6a48
test bl, bl
jne 0x100a6a48
mov eax, dword [ebp - 0x44]
cmp dword [eax + 0x140], 0
jne 0x100a6a3a
mov dword [eax + 0x314], ecx
push ecx
call fcn.10019e20
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.100adc50
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x100a6b38
push ecx
mov dword [esp], 0xbf800000
push 0
push 0
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.10010ab0
movss xmm0, dword [ebp - 0x34]
lea eax, [ebp - 0x70]
addss xmm0, dword [0x101aac38]
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.1001a840
movss xmm1, dword [0x101aacb8]
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 [0x101a3be0]
movss dword [ebp - 0x18], xmm0
call fcn.1001b500
push 1
call fcn.1001a360
add esp, 0x3c
movss xmm2, dword [ebp - 0x58]
movss xmm3, dword [ebp - 0x54]
movaps xmm1, xmm2
movaps xmm0, xmm3
addss xmm1, dword [0x101aacbc]
addss xmm0, dword [0x101aac20]
movss dword [ebp - 0x9c], xmm1
movss dword [ebp - 0x98], xmm0
addss xmm1, dword [0x101aacb8]
addss xmm0, dword [0x101aac34]
movss dword [ebp - 0x7c], xmm1
movss dword [ebp - 0x78], xmm0
test bl, bl
je 0x100a6c41
movss xmm0, dword [ebp - 0x38]
mulss xmm0, dword [esi]
push 3
push ecx
mov ecx, dword [edi + 0x14]
mulss xmm0, dword [0x101aacc0]
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.10021e20
movss xmm0, dword [ebp - 0x38]
mulss xmm0, dword [esi]
push ecx
movss xmm1, dword [ebp - 0x7c]
mov ecx, dword [edi + 0x14]
mulss xmm0, dword [0x101aacac]
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 [0x1019e820]
mov byte [ebp - 0x2d], al
lea eax, [ebp - 0x1c]
push dword [ebp - 0x30]
movss dword [ebp - 0x1c], xmm1
subss xmm1, dword [0x101aacb8]
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.10021220
movss xmm3, dword [ebp - 0x54]
movss xmm2, dword [ebp - 0x58]
movaps xmm0, xmm2
mov word [ebp - 0x30], 0xffff
addss xmm0, dword [0x101aacc4]
addss xmm2, dword [0x101aacc8]
push ecx
mov ecx, dword [edi + 0x14]
lea eax, [ebp - 0x94]
mov dword [esp], 0x3fc00000
movss dword [ebp - 0x84], xmm0
movaps xmm0, xmm3
addss xmm0, dword [0x101aacb0]
addss xmm3, dword [0x101aacb4]
mov byte [ebp - 0x2e], 0xff
movss dword [ebp - 0x94], xmm2
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [ebp - 0x38]
mulss xmm0, dword [0x1019e868]
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.10021220
movss xmm0, dword [ebp - 0x84]
lea eax, [ebp - 0x94]
addss xmm0, dword [0x101aac20]
push ecx
mov ecx, dword [edi + 0x14]
mov dword [esp], 0x3fc00000
mov word [ebp - 0x30], 0xffff
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x80]
subss xmm0, dword [0x1019e820]
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.10021220
cmp byte [ebp - 0x5d], 0
je 0x100a6f4d
cmp byte [0x10291b50], 0
mov ebx, dword [ebp - 0x3c]
mov edi, dword [ebx + 0x1acc]
je 0x100a6d9a
cmp byte [0x10291b51], 0
jne 0x100a6dee
mov byte [0x10291b51], 1
xor esi, esi
nop word [eax + eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x10291b64]
xor ebx, dword [0x10291b60]
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 + 0x10291b52]
xor al, bl
mov byte [esi + 0x10291b52], al
inc esi
cmp esi, 0xd
jb 0x100a6d50
jmp 0x100a6de8
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x10291b64]
xor ebx, dword [0x10291b60]
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 + 0x10291b52]
xor al, bl
mov byte [esi + 0x10291b52], al
inc esi
cmp esi, 0xd
jb 0x100a6da0
mov ebx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x40]
push 0xc
push 0x10291b52
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
call fcn.100464c0
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.10014460
mov edx, dword [ebp - 0x18]
add esp, 0x10
cmp edx, 0x10
jb 0x100a6e63
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100a6e59
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100a6e59
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10138f1a
add esp, 8
movss xmm0, dword [ebp - 0x58]
lea eax, [ebp - 0x1c]
addss xmm0, dword [0x101aacbc]
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 [0x101aa90c]
mov dword [ebp - 0x18], 0
movss dword [ebp - 0x44], xmm0
call fcn.1001d460
push dword [ebp + 0x14]
call fcn.100a6f90
movss xmm0, dword [0x101aac10]
add esp, 0x10
fstp dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x18]
comiss xmm1, xmm0
ja 0x100a6ecf
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x100a6ecf
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.1001d4b0
movss xmm0, dword [ebp - 0x38]
add esp, 4
mulss xmm0, dword [esi]
movss dword [esp], xmm0
call fcn.1001d430
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.1001a890
push 0x400010f
lea eax, [ebp - 0x14]
push 0
push eax
call fcn.1000d800
push 1
mov bl, al
call fcn.1001a3b0
add esp, 0x1c
test bl, bl
jne 0x100a6f62
call fcn.10012580
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10139242
mov esp, ebp
pop ebp
ret 0x10
push 1
call fcn.1001a360
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
mov al, 1
pop edi
pop esi
pop ebx
call fcn.10139242
mov esp, ebp
pop ebp
ret 0x10