Function at 0x1007da00
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 0x1007dd02
jb 0x1007da4a
cmp ecx, 0xffffffe0
ja 0x1007dd02
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x16c]
test eax, eax
je 0x1007da74
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 0x1007daf7
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1007dadb
mov ecx, dword [esp + 0x28]
mov al, byte [esi + ebp + 0x10]
xor al, byte [ecx]
mov byte [edi], al
mov dl, byte [esi + ebp + 0x40]
xor dl, al
inc edi
inc ecx
mov byte [esi + ebp + 0x40], dl
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x30]
dec ecx
inc ebp
and ebp, 0xf
mov dword [esp + 0x30], ecx
jne 0x1007daa2
mov dword [esp + 0x24], ebp
jmp 0x1007dae7
test ebp, ebp
mov dword [esp + 0x24], ebp
jne 0x1007dcf2
lea eax, [esi + 0x60]
lea ecx, [esi + 0x40]
push eax
push ecx
call fcn.1007d4c0
add esp, 8
mov ecx, dword [esp + 0x30]
cmp ecx, 0xc00
jb 0x1007dbca
mov eax, 0xaaaaaaab
mul ecx
shr edx, 0xb
mov dword [esp + 0x1c], edx
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 0x1007db5a
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 0x1007db1d
lea eax, [edi - 0xc00]
push 0xc00
lea ecx, [esi + 0x60]
push eax
lea edx, [esi + 0x40]
push ecx
push edx
call fcn.1007d7b0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x2c]
add esp, 0x10
sub ecx, 0xc00
dec eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], eax
jne 0x1007db15
mov ebp, dword [esp + 0x24]
mov eax, ecx
and eax, 0xfffffff0
mov dword [esp + 0x18], eax
je 0x1007dc96
cmp ecx, 0x10
jb 0x1007dc7c
mov eax, ecx
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 0x1007dc35
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 0x1007dc31
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 0x1007dbeb
mov eax, dword [esp + 0x18]
mov ecx, edi
push eax
sub ecx, eax
lea edx, [esi + 0x60]
push ecx
lea eax, [esi + 0x40]
push edx
push eax
call fcn.1007d7b0
mov ecx, dword [esp + 0x40]
add esp, 0x10
test ecx, ecx
je 0x1007dcf2
mov ecx, dword [esp + 0x10]
lea edx, [esi + 0x10]
push ecx
push edx
push esi
call dword [esp + 0x20]
add esp, 0xc
inc ebx
mov eax, ebx
mov edx, ebx
shr eax, 0x18
mov byte [esi + 0xc], al
mov eax, dword [esp + 0x30]
mov ecx, ebx
mov byte [esi + 0xf], bl
shr edx, 8
shr ecx, 0x10
mov byte [esi + 0xe], dl
mov edx, dword [esp + 0x28]
dec eax
mov byte [esi + 0xd], cl
lea ecx, [edi + ebp]
sub edx, edi
lea edi, [eax + 1]
mov al, byte [esi + ebp + 0x10]
mov bl, byte [ecx + edx]
xor al, bl
mov byte [ecx], al
mov bl, byte [esi + ebp + 0x40]
xor bl, al
mov byte [esi + ebp + 0x40], bl
inc ebp
inc ecx
dec edi
jne 0x1007dcd8
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