Function at 0x10002460
Capabilities:
Encode data using xor
Hash data using sha512

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x248
mov eax, dword [0x1001a050]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
push 0x7f
mov esi, ecx
lea ecx, [ebp - 0x8b]
mov ebx, edx
push 0
push ecx
mov dword [ebp - 0x244], ebx
mov dword [ebp - 0x240], eax
mov byte [ebp - 0x8c], 0
call fcn.10012fe0
add esp, 0xc
push 0x7f
lea edx, [ebp - 0x10b]
push 0
push edx
mov byte [ebp - 0x10c], 0
call fcn.10012fe0
add esp, 0xc
test ebx, ebx
je 0x10002780
test edi, edi
je 0x10002780
cmp dword [ebp - 0x240], 0
je 0x10002780
cmp esi, 0x80
ja 0x100024f5
push esi
lea eax, [ebp - 0x10c]
push edi
push eax
call fcn.10013090
jmp 0x10002509
push 0x40
push esi
push edi
lea ebx, [ebp - 0x10c]
call fcn.10001750
mov esi, 0x80
add esp, 0xc
xor eax, eax
test esi, esi
je 0x1000252f
mov cl, byte [ebp + eax - 0x10c]
xor cl, 0x36
mov byte [ebp + eax - 0x8c], cl
inc eax
cmp eax, esi
jb 0x10002512
cmp eax, 0x80
jge 0x10002549
mov edx, 0x80
sub edx, eax
push edx
lea ecx, [ebp + eax - 0x8c]
push 0x36
push ecx
call fcn.10012fe0
add esp, 0xc
push 0xd8
lea eax, [ebp - 0x23c]
push 0
push eax
call fcn.10012fe0
mov ecx, 0x10
mov esi, 0x100187f8
lea edi, [ebp - 0x1bc]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x16c]
add esp, 0xc
mov edi, 0x80
lea esi, [ebp - 0x8c]
test eax, eax
jne 0x100025b5
cmp edi, 0x80
jb 0x100025b1
mov ebx, edi
shr ebx, 7
push esi
lea ecx, [ebp - 0x23c]
call fcn.10001880
add esp, 4
sub esi, 0xffffff80
add edi, 0xffffff80
dec ebx
jne 0x10002593
mov eax, dword [ebp - 0x16c]
test edi, edi
je 0x100025f1
mov cl, byte [esi]
mov byte [ebp + eax - 0x23c], cl
mov eax, dword [ebp - 0x16c]
inc eax
inc esi
dec edi
mov dword [ebp - 0x16c], eax
cmp eax, 0x80
jne 0x100025ed
lea edx, [ebp - 0x23c]
push edx
mov ecx, edx
call fcn.10001880
add esp, 4
xor eax, eax
mov dword [ebp - 0x16c], eax
test edi, edi
jne 0x10002582
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x244]
lea esi, [ebp - 0x23c]
call fcn.100017f0
mov eax, esi
call fcn.10001eb0
xor eax, eax
mov edi, edi
xor byte [ebp + eax - 0x8c], 0x6a
inc eax
cmp eax, 0x80
jl 0x10002610
push 0xd8
lea eax, [ebp - 0x164]
push 0
push eax
call fcn.10012fe0
mov ecx, 0x10
mov esi, 0x100187f8
lea edi, [ebp - 0xe4]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x94]
add esp, 0xc
mov edi, 0x80
lea esi, [ebp - 0x8c]
lea esp, [esp]
test eax, eax
jne 0x10002693
cmp edi, 0x80
jb 0x1000268f
mov ebx, edi
shr ebx, 7
push esi
lea ecx, [ebp - 0x164]
call fcn.10001880
add esp, 4
sub esi, 0xffffff80
add edi, 0xffffff80
dec ebx
jne 0x10002671
mov eax, dword [ebp - 0x94]
test edi, edi
je 0x100026cf
mov cl, byte [esi]
mov byte [ebp + eax - 0x164], cl
mov eax, dword [ebp - 0x94]
inc eax
inc esi
dec edi
mov dword [ebp - 0x94], eax
cmp eax, 0x80
jne 0x100026cb
lea edx, [ebp - 0x164]
push edx
mov ecx, edx
call fcn.10001880
add esp, 4
xor eax, eax
mov dword [ebp - 0x94], eax
test edi, edi
jne 0x10002660
mov edi, 0x40
lea esi, [ebp - 0x23c]
lea ebx, [ebx]
test eax, eax
jne 0x10002713
cmp edi, 0x80
jb 0x1000270f
mov ebx, edi
shr ebx, 7
push esi
lea ecx, [ebp - 0x164]
call fcn.10001880
add esp, 4
sub esi, 0xffffff80
add edi, 0xffffff80
dec ebx
jne 0x100026f1
mov eax, dword [ebp - 0x94]
test edi, edi
je 0x1000274f
mov cl, byte [esi]
mov byte [ebp + eax - 0x164], cl
mov eax, dword [ebp - 0x94]
inc eax
inc esi
dec edi
mov dword [ebp - 0x94], eax
cmp eax, 0x80
jne 0x1000274b
lea edx, [ebp - 0x164]
push edx
mov ecx, edx
call fcn.10001880
add esp, 4
xor eax, eax
mov dword [ebp - 0x94], eax
test edi, edi
jne 0x100026e0
lea eax, [ebp - 0x164]
call fcn.10001eb0
mov edi, dword [ebp - 0x240]
mov ecx, 0x10
lea esi, [ebp - 0x164]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1000f5b7
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
mov eax, 2
pop ebx
call fcn.1000f5b7
mov esp, ebp
pop ebp
ret