Function at 0x1007dd10
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10
call fcn.10084230
push ebx
push ebp
push esi
mov esi, dword [esp + 0x20]
push edi
mov ecx, dword [esi + 0x174]
mov eax, dword [esi + 0x170]
mov ebx, dword [esi + 0x38]
mov edi, dword [esi + 0x3c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x14], eax
xor eax, eax
add ecx, ebx
adc eax, edi
cmp eax, 0xf
ja 0x1007e00c
jb 0x1007dd5a
cmp ecx, 0xffffffe0
ja 0x1007e00c
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x16c]
test eax, eax
je 0x1007dd84
lea edx, [esi + 0x60]
lea eax, [esi + 0x40]
push edx
push eax
call fcn.1007d4c0
add esp, 8
mov dword [esi + 0x16c], 0
xor ebx, ebx
mov ebp, dword [esi + 0x168]
mov bh, byte [esi + 0xc]
xor ecx, ecx
mov bl, byte [esi + 0xd]
mov cl, byte [esi + 0xe]
shl ebx, 8
mov edi, dword [esp + 0x2c]
or ebx, ecx
xor edx, edx
mov dword [esp + 0x24], ebp
mov dl, byte [esi + 0xf]
shl ebx, 8
or ebx, edx
test ebp, ebp
je 0x1007de09
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1007dded
mov ecx, dword [esp + 0x28]
mov al, byte [ecx]
inc ecx
mov dword [esp + 0x28], ecx
mov cl, byte [esi + ebp + 0x10]
xor cl, al
mov byte [edi], cl
mov dl, byte [esi + ebp + 0x40]
mov ecx, dword [esp + 0x30]
xor dl, al
inc edi
mov byte [esi + ebp + 0x40], dl
dec ecx
inc ebp
and ebp, 0xf
mov dword [esp + 0x30], ecx
jne 0x1007ddb2
mov dword [esp + 0x24], ebp
jmp 0x1007ddf9
test ebp, ebp
mov dword [esp + 0x24], ebp
jne 0x1007dffc
lea edx, [esi + 0x60]
lea eax, [esi + 0x40]
push edx
push eax
call fcn.1007d4c0
add esp, 8
mov ecx, dword [esp + 0x30]
cmp ecx, 0xc00
jb 0x1007deda
mov eax, 0xaaaaaaab
mul ecx
shr edx, 0xb
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x28]
push 0xc00
lea eax, [esi + 0x60]
push ecx
push eax
lea eax, [esi + 0x40]
push eax
call fcn.1007d7b0
add esp, 0x10
mov dword [esp + 0x18], 0xc0
mov edx, dword [esp + 0x10]
lea ebp, [esi + 0x10]
push edx
push ebp
push esi
call dword [esp + 0x20]
add esp, 0xc
inc ebx
mov ecx, ebx
mov eax, ebx
shr ecx, 0x10
mov edx, ebx
mov byte [esi + 0xd], cl
mov ecx, dword [esp + 0x28]
mov byte [esi + 0xf], bl
shr eax, 0x18
shr edx, 8
mov byte [esi + 0xc], al
mov byte [esi + 0xe], dl
mov eax, edi
sub ecx, edi
mov dword [esp + 0x2c], 4
mov edx, dword [ecx + eax]
add eax, 4
xor edx, dword [ebp]
add ebp, 4
mov dword [eax - 4], edx
mov edx, dword [esp + 0x2c]
dec edx
mov dword [esp + 0x2c], edx
jne 0x1007de86
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add edi, 0x10
add ecx, 0x10
dec eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], eax
jne 0x1007de49
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
sub ecx, 0xc00
dec eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], eax
jne 0x1007de27
mov ebp, dword [esp + 0x24]
mov eax, ecx
and eax, 0xfffffff0
je 0x1007dfa0
push eax
mov eax, dword [esp + 0x2c]
lea ecx, [esi + 0x60]
push eax
lea edx, [esi + 0x40]
push ecx
push edx
call fcn.1007d7b0
mov eax, dword [esp + 0x40]
add esp, 0x10
cmp eax, 0x10
jb 0x1007df9c
shr eax, 4
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
push eax
lea eax, [esi + 0x10]
push eax
push esi
call dword [esp + 0x20]
add esp, 0xc
inc ebx
mov edx, ebx
mov ecx, ebx
shr edx, 0x10
mov byte [esi + 0xd], dl
mov edx, dword [esp + 0x28]
mov eax, ebx
mov byte [esi + 0xf], bl
shr ecx, 0x18
shr eax, 8
sub edx, edi
mov byte [esi + 0xc], cl
mov byte [esi + 0xe], al
mov eax, edi
lea ecx, [esi + 0x10]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], 4
jmp 0x1007df59
mov edx, dword [esp + 0x1c]
mov edx, dword [eax + edx]
add eax, 4
xor edx, dword [ecx]
add ecx, 4
mov dword [eax - 4], edx
mov edx, dword [esp + 0x2c]
dec edx
mov dword [esp + 0x2c], edx
jne 0x1007df55
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov eax, 0x10
add edi, eax
add edx, eax
sub ecx, eax
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], eax
jne 0x1007df0f
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x1007dffc
mov eax, dword [esp + 0x10]
lea ecx, [esi + 0x10]
push eax
push ecx
push esi
call dword [esp + 0x20]
add esp, 0xc
inc ebx
mov ecx, ebx
mov edx, ebx
shr ecx, 8
shr edx, 0x18
mov eax, ebx
mov byte [esi + 0xe], cl
mov ecx, dword [esp + 0x30]
mov byte [esi + 0xc], dl
mov edx, dword [esp + 0x28]
mov byte [esi + 0xf], bl
shr eax, 0x10
dec ecx
mov byte [esi + 0xd], al
lea eax, [edi + ebp]
sub edx, edi
lea edi, [ecx + 1]
mov cl, byte [eax + edx]
mov bl, byte [esi + ebp + 0x40]
xor bl, cl
mov byte [esi + ebp + 0x40], bl
mov bl, byte [esi + ebp + 0x10]
xor bl, cl
inc ebp
mov byte [eax], bl
inc eax
dec edi
jne 0x1007dfe2
mov dword [esi + 0x168], ebp
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x10
ret