Function at 0x100abe6f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi + 8]
mov ebx, eax
test eax, eax
jns 0x100abe8b
neg ebx
mov dword [ebp - 4], ebx
jmp 0x100abe8e
mov dword [ebp - 4], eax
xor ecx, ecx
test eax, eax
sets cl
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x100abec8
push ebx
call sym.extension.dll__PyLong_New
mov edi, eax
pop ecx
test edi, edi
jne 0x100abeb0
xor eax, eax
jmp 0x100ac11e
push ebx
lea eax, [esi + 0xc]
push eax
lea eax, [edi + 0xc]
push eax
call fcn.100abe23
mov esi, edi
add esp, 0xc
mov dword [ebp + 8], esi
jmp 0x100abeca
inc dword [esi]
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 8]
mov ebx, eax
test eax, eax
jns 0x100abed8
neg ebx
xor edx, edx
test eax, eax
sets dl
mov dword [ebp - 0x14], edx
test edx, edx
je 0x100abf1d
push ebx
call sym.extension.dll__PyLong_New
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
test ecx, ecx
jne 0x100abf04
dec dword [esi]
jne 0x100abea9
mov eax, dword [esi + 4]
push esi
call dword [eax + 0x18]
pop ecx
jmp 0x100abea9
push ebx
lea eax, [edi + 0xc]
push eax
lea eax, [ecx + 0xc]
push eax
call fcn.100abe23
mov edi, dword [ebp - 0x10]
add esp, 0xc
mov edx, dword [ebp - 0x14]
jmp 0x100abf1f
inc dword [edi]
mov ecx, dword [ebp - 4]
cmp ecx, ebx
jge 0x100abf40
mov eax, esi
mov esi, edi
mov edi, eax
mov dword [ebp + 8], esi
mov eax, ecx
mov ecx, ebx
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [ebp - 8], edx
mov edx, eax
mov dword [ebp - 0x14], edx
cmp dword [ebp + 0xc], 0x26
je 0x100abf75
cmp dword [ebp + 0xc], 0x5e
je 0x100abf6b
cmp dword [ebp + 0xc], 0x7c
je 0x100abf5c
call sym.extension.dll_PyErr_BadArgument
jmp 0x100abea9
mov eax, edx
or eax, dword [ebp - 8]
test edx, edx
mov dword [ebp - 0x10], eax
cmovne ecx, ebx
jmp 0x100abf89
mov eax, edx
xor eax, dword [ebp - 8]
mov dword [ebp - 0x10], eax
jmp 0x100abf89
mov eax, edx
and eax, dword [ebp - 8]
test edx, edx
mov dword [ebp - 0x10], eax
mov eax, ebx
cmovne eax, ecx
mov ecx, eax
mov eax, dword [ebp - 0x10]
add eax, ecx
mov dword [ebp - 4], ecx
push eax
call sym.extension.dll__PyLong_New
mov edx, eax
mov dword [ebp - 8], edx
pop ecx
test edx, edx
jne 0x100abfbb
dec dword [esi]
jne 0x100abfaa
mov eax, dword [esi + 4]
push esi
call dword [eax + 0x18]
pop ecx
dec dword [edi]
jne 0x100abea9
mov eax, dword [edi + 4]
push edi
jmp 0x100abefe
cmp dword [ebp + 0xc], 0x26
je 0x100ac07d
cmp dword [ebp + 0xc], 0x5e
je 0x100ac005
cmp dword [ebp + 0xc], 0x7c
jne 0x100abf52
xor ecx, ecx
test ebx, ebx
jle 0x100ac0b1
mov dword [ebp - 0x14], esi
mov eax, edx
sub esi, edi
mov dword [ebp - 0xc], ebx
sub eax, edi
lea edx, [edi + 0xc]
mov dword [ebp - 0x14], eax
mov ecx, eax
mov ax, word [esi + edx]
or ax, word [edx]
mov word [ecx + edx], ax
lea edx, [edx + 2]
dec ebx
jne 0x100abfef
jmp 0x100ac0a8
xor ecx, ecx
test ebx, ebx
jle 0x100ac039
mov dword [ebp - 0xc], esi
mov eax, edx
sub esi, edi
mov dword [ebp - 0xc], ebx
sub eax, edi
lea edx, [edi + 0xc]
mov dword [ebp - 0x18], eax
mov ecx, eax
mov ax, word [edx + esi]
xor ax, word [edx]
mov word [edx + ecx], ax
lea edx, [edx + 2]
dec ebx
jne 0x100ac01f
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
cmp dword [ebp - 0x14], 0
je 0x100ac0b1
mov ebx, dword [ebp - 4]
cmp ecx, ebx
jge 0x100ac0d8
lea eax, [ecx + 6]
lea eax, [edx + eax*2]
mov dword [ebp + 8], eax
mov eax, esi
sub eax, edx
sub ebx, ecx
mov ecx, dword [ebp + 8]
mov edx, ebx
mov dword [ebp - 0x18], ebx
mov ebx, eax
mov dword [ebp - 0x14], eax
mov eax, 0x7fff
xor ax, word [ebx + ecx]
mov word [ecx], ax
lea ecx, [ecx + 2]
dec edx
jne 0x100ac066
mov ebx, dword [ebp - 4]
jmp 0x100ac0d5
xor ecx, ecx
test ebx, ebx
jle 0x100ac0b1
mov dword [ebp - 0x18], esi
mov eax, edx
sub esi, edi
mov dword [ebp - 0xc], ebx
sub eax, edi
lea edx, [edi + 0xc]
mov dword [ebp - 0x18], eax
mov ecx, eax
mov ax, word [edx + esi]
and ax, word [edx]
mov word [edx + ecx], ax
lea edx, [edx + 2]
dec ebx
jne 0x100ac097
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 4]
cmp ecx, ebx
jge 0x100ac0d8
mov eax, ebx
sub eax, ecx
add eax, eax
push eax
lea eax, [ecx + 6]
lea eax, [esi + eax*2]
push eax
lea eax, [edx + 0xc]
lea eax, [eax + ecx*2]
push eax
call fcn.101b8700
add esp, 0xc
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x100ac0fd
neg dword [edx + 8]
lea ecx, [edx + 0xc]
mov eax, 0x7fff
mov word [edx + ebx*2 + 0xc], ax
lea eax, [ebx + 1]
push eax
push ecx
push ecx
call fcn.100abe23
add esp, 0xc
dec dword [esi]
jne 0x100ac109
mov eax, dword [esi + 4]
push esi
call dword [eax + 0x18]
pop ecx
dec dword [edi]
jne 0x100ac115
mov eax, dword [edi + 4]
push edi
call dword [eax + 0x18]
pop ecx
push dword [ebp - 8]
call fcn.100a9584
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret