Function at 0x1000a710
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10098015
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp - 0x18], ebx
mov eax, dword [ebx + 8]
mov edx, dword [eax - 4]
test edx, edx
je 0x1000a7a6
sub eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x5c]
sar eax, 2
dec eax
mov byte [ebp - 0x10], 1
mov dword [ebp - 0x14], eax
test ecx, ecx
je 0x1000a96a
mov eax, dword [ecx]
push edx
lea edx, [ebp - 0x10]
push edx
mov eax, dword [eax + 8]
lea edx, [ebp - 0x14]
push edx
call eax
test al, al
jne 0x1000a7a6
lea eax, [ebx + 0x68]
push eax
lea ecx, [ebp - 0x30]
call fcn.1000b110
mov eax, dword [ebx + 8]
mov edi, dword [eax - 4]
mov al, byte [ebp - 0x30]
mov cl, byte [edi]
mov byte [edi], al
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x30], cl
mov ecx, dword [ebp - 0x24]
mov esi, dword [edi + 0xc]
mov edx, dword [edi + 8]
mov dword [edi + 0xc], ecx
lea ecx, [ebp - 0x30]
mov dword [edi + 8], eax
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], esi
call fcn.100026d0
add dword [ebx + 8], 0xfffffffc
lea ecx, [ebx + 0x10]
call fcn.1000ac90
mov eax, dword [ebx + 8]
cmp dword [ebx + 4], eax
je 0x1000a923
mov ebx, dword [eax - 4]
test ebx, ebx
je 0x1000a923
mov al, byte [ebx]
cmp al, 2
je 0x1000a7d7
cmp al, 1
jne 0x1000a923
movzx ecx, byte [ebx]
xor eax, eax
xor edi, edi
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x28], eax
mov esi, 0x80000000
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], eax
cmp ecx, 9
ja case.0x1000a7ff.0
movzx eax, byte [ecx + 0x1000a9b0]
jmp dword [eax*4 + 0x1000a9a4]
mov esi, 0x80000000
cmp ecx, 9
ja case.0x1000a817.3
movzx eax, byte [ecx + 0x1000a9cc]
jmp dword [eax*4 + 0x1000a9bc]
mov eax, dword [ebx + 8]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
jmp 0x1000a83d
mov edi, dword [ebx + 8]
mov edi, dword [edi]
mov dword [ebp - 0x24], edi
jmp 0x1000a83d
mov esi, 1
jmp 0x1000a83d
xor esi, esi
lea eax, [ebp - 0x48]
mov ecx, ebx
push eax
call fcn.1000b060
mov ecx, eax
cmp ebx, dword [ecx]
jne 0x1000a96f
movzx edx, byte [ebx]
cmp edx, 9
ja case.0x1000a861.0
movzx eax, byte [edx + 0x1000a9e4]
jmp dword [eax*4 + 0x1000a9d8]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ecx + 4]
jmp 0x1000a87b
cmp edi, dword [ecx + 8]
jmp 0x1000a878
cmp esi, dword [ecx + 0xc]
mov eax, dword [ebp - 0x28]
setne cl
test cl, cl
je 0x1000a923
cmp edx, 9
ja case.0x1000a892.0
movzx ecx, byte [edx + 0x1000a9fc]
jmp dword [ecx*4 + 0x1000a9f0]
lea ecx, [eax + 0x28]
jmp 0x1000a8ac
mov ecx, edi
jmp 0x1000a8ac
test esi, esi
jne 0x1000a936
mov ecx, ebx
cmp byte [ecx], 9
je 0x1000a8fd
cmp edx, 9
ja case.0x1000a8bd.0
movzx ecx, byte [edx + 0x1000aa14]
jmp dword [ecx*4 + 0x1000aa08]
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], eax
call fcn.100038f0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
jmp 0x1000a8e0
add edi, 0x10
mov dword [ebp - 0x24], edi
jmp 0x1000a8e0
inc esi
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x48]
push ecx
mov eax, dword [eax + 8]
mov ecx, dword [eax - 4]
call fcn.1000b060
mov ecx, eax
cmp ebx, dword [ecx]
jne 0x1000a96f
jmp 0x1000a852
mov eax, dword [ebp - 0x18]
sub esp, 0x10
movq xmm0, qword [ebp - 0x28]
mov eax, dword [eax + 8]
mov ecx, dword [eax - 4]
mov eax, esp
movq qword [eax + 4], xmm0
mov dword [eax], ebx
mov dword [eax + 0xc], esi
lea eax, [ebp - 0x48]
push eax
call fcn.1000c250
mov ecx, dword [ebp - 0xc]
mov al, 1
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
push str.cannot_get_value
lea ecx, [ebp - 0x50]
call fcn.10002550
push ecx
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 1
push eax
mov edx, 0xd6
lea ecx, [ebp - 0x38]
call fcn.1000cfa0
push 0x100b6208
lea eax, [ebp - 0x38]
push eax
call fcn.10062e8d
call fcn.1005f1ce
push str.cannot_compare_iterators_of_different_containers
lea ecx, [ebp - 0x34]
call fcn.10002550
push ecx
lea eax, [ebp - 0x34]
mov dword [ebp - 4], 0
cld
add byte [eax], al
add byte [eax], al
push eax
mov edx, 0xd4
lea ecx, [ebp - 0x6c]
call fcn.1000cfa0
push 0x100b6208
lea eax, [ebp - 0x6c]
push eax
call fcn.10062e8d
nop
push es
test al, 0
adc byte [esi], bl
test al, 0
adc byte [edx], ch
test al, 0
adc byte [eax], al
add dword [edx], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi - 112], ah
xor al, 168
add byte [eax], dl
push ds
test al, 0
adc byte [edx], ch
test al, 0
adc byte [ebx], bh
test al, 0
adc byte [eax], al
add dword [edx], eax
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add esp, dword [esi - 112]
jne 268478850
add byte [eax], dl
push 0x701000a8
test al, 0
adc byte [eax], al
add dword [edx], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi - 112], ah
mov byte [2567962792], al
test al, 0
adc byte [esi + 0x1000a8], bl
add dword [edx], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi - 112], ah
fild qword [eax - 1463545856]
add byte [eax], dl
xlatb
test al, 0
adc byte [eax], al
add dword [edx], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add ah, cl
int3