Function at 0x10078060
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x74
call fcn.10097eb0
mov eax, dword [0x100f9124]
xor eax, esp
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x7c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x8c]
push edi
mov edi, dword [esp + 0x88]
xor ebp, ebp
push eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
call fcn.1002efd0
mov ebx, eax
add esp, 4
test ebx, ebx
jl 0x10078146
mov eax, dword [esp + 0x98]
cmp eax, 0xffffffff
jne 0x1007811e
mov dword [esp + 0x98], ebx
mov ecx, dword [edi + 0x10]
push ecx
call fcn.10033060
mov ebp, eax
sub ebp, 1
push edi
and ebp, 7
call fcn.1002c880
mov ecx, ebp
mov edx, 0xff
shl edx, cl
mov cl, byte [esi]
add esp, 8
test cl, dl
je 0x1007815b
push 0x69
push str..crypto_rsa_rsa_pss.c
push 0x85
push 0x7e
push 4
call fcn.10024880
add esp, 0x14
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1009536d
add esp, 0x74
ret
cmp eax, 0xfffffffe
jne 0x1007812c
mov dword [esp + 0x98], eax
jmp 0x100780c6
jge 0x100780c6
push 0x61
push str..crypto_rsa_rsa_pss.c
push 0x88
push 0x7e
push 4
call fcn.10024880
add esp, 0x14
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1009536d
add esp, 0x74
ret
test ebp, ebp
jne 0x10078165
add esi, 1
sub eax, 1
mov edx, dword [esp + 0x98]
lea ecx, [ebx + edx + 2]
cmp eax, ecx
jge 0x100781a0
push 0x73
push str..crypto_rsa_rsa_pss.c
push 0x6d
push 0x7e
push 4
call fcn.10024880
mov eax, dword [esp + 0x24]
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1009536d
add esp, 0x74
ret
cmp byte [esi + eax - 1], 0xbc
je 0x100781d6
push 0x78
push str..crypto_rsa_rsa_pss.c
push 0x86
push 0x7e
push 4
call fcn.10024880
mov eax, dword [esp + 0x24]
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1009536d
add esp, 0x74
ret
sub eax, ebx
sub eax, 1
mov edi, eax
push 0x7d
lea edx, [esi + edi]
push str..crypto_rsa_rsa_pss.c
push edi
mov dword [esp + 0x2c], edx
call fcn.10028d30
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
jne 0x10078219
push 0x80
push str..crypto_rsa_rsa_pss.c
push 0x41
push 0x7e
push 4
call fcn.10024880
add esp, 0x14
jmp 0x10078408
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push ecx
push ebx
push edx
push edi
push eax
call fcn.1006ec20
add esp, 0x14
test eax, eax
jl 0x10078408
test edi, edi
mov edx, dword [esp + 0x14]
jle 0x10078255
mov eax, edx
sub esi, edx
mov dword [esp + 0x1c], edi
mov cl, byte [esi + eax]
xor byte [eax], cl
add eax, 1
sub dword [esp + 0x1c], 1
jne 0x10078246
test ebp, ebp
je 0x10078269
mov ecx, 8
sub ecx, ebp
mov eax, 0xff
sar eax, cl
and byte [edx], al
xor esi, esi
cmp byte [edx], 0
jne 0x10078280
lea eax, [edi - 1]
cmp esi, eax
jge 0x10078280
add esi, 1
cmp byte [esi + edx], 0
je 0x10078273
mov cl, byte [esi + edx]
add esi, 1
cmp cl, 1
je 0x100782ab
push 0x8c
push str..crypto_rsa_rsa_pss.c
push 0x87
push 0x7e
push 4
call fcn.10024880
add esp, 0x14
jmp 0x10078408
mov eax, dword [esp + 0x98]
test eax, eax
jl 0x100782de
mov edx, edi
sub edx, esi
cmp edx, eax
je 0x100782de
push 0x91
push str..crypto_rsa_rsa_pss.c
push 0x88
push 0x7e
push 4
call fcn.10024880
add esp, 0x14
jmp 0x10078408
lea eax, [esp + 0x28]
push eax
call fcn.1002e390
mov ecx, dword [esp + 0x1c]
push 0
push ecx
lea edx, [esp + 0x34]
push edx
call fcn.1002e3e0
push 8
lea eax, [esp + 0x3c]
push 0x100e2308
push eax
call fcn.1002e590
mov ecx, dword [esp + 0x40]
push ebx
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.1002e590
add esp, 0x28
sub edi, esi
je 0x10078336
mov eax, dword [esp + 0x14]
push edi
add esi, eax
lea ecx, [esp + 0x2c]
push esi
push ecx
call fcn.1002e590
add esp, 0xc
push 0
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x30]
push eax
call fcn.1002e700
lea ecx, [esp + 0x34]
push ecx
call fcn.1002e620
mov ecx, dword [esp + 0x30]
add esp, 0x10
cmp ebx, 4
mov eax, ebx
lea edx, [esp + 0x40]
jb 0x10078377
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1007837b
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x10078363
test eax, eax
je 0x100783d8
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x100783ca
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x100783d8
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x100783ca
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x100783d8
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x100783ca
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x100783d8
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x100783d8
test esi, esi
mov eax, 1
jg 0x100783da
or eax, 0xffffffff
jmp 0x100783da
xor eax, eax
test eax, eax
je 0x10078400
push 0x9e
push str..crypto_rsa_rsa_pss.c
push 0x68
push 0x7e
push 4
call fcn.10024880
add esp, 0x14
mov dword [esp + 0x10], 0
jmp 0x10078408
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10078107
push eax
call fcn.10028ed0
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x14]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1009536d
add esp, 0x74
ret