Function at 0x7f5bb0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [0x7e6a60]
sub esp, 0x28
push ebx
xor ebx, ebx
push esi
push edi
mov edi, dword [0x7e6aa8]
cmp eax, ebx
je 0x7f5bd8
mov ecx, dword [0x7e6a94]
mov eax, dword [0x7e6a68]
xor edi, ecx
xor edi, eax
jmp 0x7f5bde
xor edi, 0xed8375b6
lea eax, [esp + 0x10]
mov word [0x7eac0c], bx
mov dword [0x7eabfc], eax
mov word [0x7eac04], bx
call fcn.007f98e4
test eax, eax
je 0x7f5c1d
mov ecx, dword [0x7e9988]
mov eax, 1
cmp ecx, ebx
jne 0x7f5ec6
pop edi
pop esi
mov dword [0x7e9988], eax
pop ebx
add esp, 0x28
ret
mov eax, dword [0x7e6a64]
cmp eax, 4
je 0x7f5ec4
cmp eax, ebx
je 0x7f5ec4
lea ecx, [esp + 0x24]
push ecx
call dword [0x8ef010]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x26]
mov eax, dword [esp + 0x2a]
mov cx, word [0x7e6a90]
and esi, 0xffff
and edx, 0xffff
shl esi, 8
or esi, edx
and eax, 0xffff
shl esi, 8
not edi
lea edx, [esp + 0x18]
or esi, eax
mov dword [0x7eac08], edi
mov word [0x7eac0c], cx
mov word [0x7eac04], 0xa
mov dword [0x7eabfc], edx
call fcn.007f98e4
test eax, eax
je 0x7f5cb5
cmp dword [0x7e9988], ebx
jne 0x7f5ca9
mov dword [0x7e9988], 6
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x28
ret
mov cl, byte [esp + 0x20]
xor eax, eax
mov bl, byte [esp + eax + 0x18]
xor bl, cl
mov byte [esp + eax + 0x18], bl
inc eax
cmp eax, 4
jb 0x7f5cbb
mov cl, byte [esp + 0x21]
mov eax, 4
mov bl, byte [esp + eax + 0x18]
xor bl, cl
mov byte [esp + eax + 0x18], bl
inc eax
cmp eax, 8
jb 0x7f5cd4
mov al, byte [esp + 0x18]
mov cl, byte [esp + 0x1d]
mov dl, byte [esp + 0x1a]
mov edi, dword [0x8ef014]
mov byte [esp + 0x1d], al
mov al, byte [esp + 0x1e]
mov byte [esp + 0x18], cl
mov cl, byte [esp + 0x1c]
mov byte [esp + 0x1a], al
mov al, byte [esp + 0x19]
push ebp
mov byte [esp + 0x22], dl
mov byte [esp + 0x1d], cl
mov byte [esp + 0x20], al
call edi
and eax, 0xff
mov ecx, 0xff
cdq
idiv ecx
mov ebp, dword [esp + 0x20]
mov bl, dl
mov byte [esp + 0x24], bl
call edi
add al, 0x3c
mov ecx, 0xff
and eax, 0xff
cdq
idiv ecx
cmp esi, ebp
pop ebp
mov byte [esp + 0xf], dl
mov byte [esp + 0x21], dl
jae 0x7f5d71
mov eax, dword [0x7e9988]
test eax, eax
jne 0x7f5d65
mov dword [0x7e9988], 2
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x28
ret
mov eax, dword [0x7e6a64]
mov dword [esp + 0x1c], esi
test eax, eax
jbe 0x7f5e31
cmp eax, 2
jbe 0x7f5de4
cmp eax, 3
jne 0x7f5e31
mov esi, dword [esp + 0x18]
call edi
mov edx, dword [0x7e998c]
cmp eax, edx
jae 0x7f5da7
mov ecx, 0xea60
jmp 0x7f5dab
mov ecx, eax
sub ecx, edx
mov dword [0x7e998c], eax
mov eax, 0xef9db22d
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
add esi, edx
test esi, esi
jg 0x7f5dde
mov eax, dword [0x7e9988]
mov dword [esp + 0x18], esi
test eax, eax
jne 0x7f5dde
mov dword [0x7e9988], 5
mov dword [esp + 0x18], esi
jmp 0x7f5e31
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x24]
push ecx
call dword [0x8ef010]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x26]
mov ecx, dword [esp + 0x2a]
and edx, 0xffff
shl edx, 8
and eax, 0xffff
and ecx, 0xffff
or edx, eax
shl edx, 8
or edx, ecx
cmp edx, esi
jb 0x7f5e31
mov eax, dword [0x7e9988]
test eax, eax
jne 0x7f5e31
mov dword [0x7e9988], 3
mov al, byte [esp + 0x18]
mov dl, byte [esp + 0x1d]
mov cl, byte [esp + 0x1a]
mov byte [esp + 0x1d], al
mov al, byte [esp + 0x1e]
mov byte [esp + 0x18], dl
mov dl, byte [esp + 0x1c]
mov byte [esp + 0x1a], al
mov al, byte [esp + 0x19]
mov byte [esp + 0x1e], cl
mov byte [esp + 0x1c], al
mov byte [esp + 0x19], dl
xor eax, eax
mov cl, byte [esp + eax + 0x18]
xor cl, bl
mov byte [esp + eax + 0x18], cl
inc eax
cmp eax, 4
jb 0x7f5e63
mov cl, byte [esp + 0xf]
mov eax, 4
mov bl, byte [esp + eax + 0x18]
xor bl, cl
mov byte [esp + eax + 0x18], bl
inc eax
cmp eax, 8
jb 0x7f5e7c
call fcn.007f9630
test eax, eax
mov eax, dword [0x7e9988]
je 0x7f5eb4
test eax, eax
jne 0x7f5eb8
pop edi
pop esi
mov dword [0x7e9988], 7
mov eax, 1
pop ebx
add esp, 0x28
ret
test eax, eax
je 0x7f5ec4
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x28
ret
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x28
ret