Function at 0x10002170
Capabilities:
Encode data using xor
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
mov eax, dword [0x1001a050]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
push 0x3f
mov esi, ecx
lea ecx, [ebp - 0x4b]
push 0
push ecx
mov dword [ebp - 0x120], eax
mov edi, edx
mov dword [ebp - 0x124], ebx
mov byte [ebp - 0x4c], 0
call fcn.10012fe0
add esp, 0xc
push 0x3f
lea edx, [ebp - 0x8b]
push 0
push edx
mov byte [ebp - 0x8c], 0
call fcn.10012fe0
add esp, 0xc
cmp dword [ebp - 0x120], 0
je 0x10002441
test edi, edi
je 0x10002441
test ebx, ebx
je 0x10002441
cmp esi, 0x40
ja 0x100021fc
push esi
lea eax, [ebp - 0x8c]
push edi
push eax
call fcn.10013090
jmp 0x10002210
push 0x20
push esi
push edi
lea ecx, [ebp - 0x8c]
call fcn.10001000
mov esi, 0x20
add esp, 0xc
xor eax, eax
test esi, esi
je 0x10002238
lea esp, [esp]
mov cl, byte [ebp + eax - 0x8c]
xor cl, 0x36
mov byte [ebp + eax - 0x4c], cl
inc eax
cmp eax, esi
jb 0x10002220
cmp eax, 0x40
jge 0x1000224f
mov edx, 0x40
sub edx, eax
push edx
lea ecx, [ebp + eax - 0x4c]
push 0x36
push ecx
call fcn.10012fe0
add esp, 0xc
mov dword [ebp - 0xb8], 0
mov ecx, 8
mov esi, 0x100186d8
lea edi, [ebp - 0xdc]
mov dword [ebp - 0xbc], 0
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0xb8]
mov edi, 0x40
lea esi, [ebp - 0x4c]
test eax, eax
jne 0x100022b5
cmp edi, 0x40
jb 0x100022b1
mov ebx, edi
shr ebx, 6
lea eax, [ebp - 0x11c]
push eax
mov edx, esi
call fcn.10001360
add esp, 4
add esi, 0x40
sub edi, 0x40
dec ebx
jne 0x10002291
mov eax, dword [ebp - 0xb8]
test edi, edi
je 0x100022ed
mov cl, byte [esi]
mov byte [ebp + eax - 0x11c], cl
mov eax, dword [ebp - 0xb8]
inc eax
inc esi
dec edi
mov dword [ebp - 0xb8], eax
cmp eax, 0x40
jne 0x100022e9
lea edx, [ebp - 0x11c]
push edx
call fcn.10001360
add esp, 4
xor eax, eax
mov dword [ebp - 0xb8], eax
test edi, edi
jne 0x10002283
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x120]
push eax
push ecx
lea ebx, [ebp - 0x11c]
call fcn.100010a0
add esp, 8
mov esi, ebx
call fcn.100015a0
xor eax, eax
nop
xor byte [ebp + eax - 0x4c], 0x6a
inc eax
cmp eax, 0x40
jl 0x10002310
mov dword [ebp - 0x50], 0
mov ecx, 8
mov esi, 0x100186d8
lea edi, [ebp - 0x74]
mov dword [ebp - 0x54], 0
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x50]
mov edi, 0x40
lea esi, [ebp - 0x4c]
test eax, eax
jne 0x10002372
cmp edi, 0x40
jb 0x1000236e
mov ebx, edi
shr ebx, 6
lea edx, [ebp - 0xb4]
push edx
mov edx, esi
call fcn.10001360
add esp, 4
add esi, 0x40
sub edi, 0x40
dec ebx
jne 0x10002351
mov eax, dword [ebp - 0x50]
test edi, edi
je 0x100023a1
mov cl, byte [esi]
mov byte [ebp + eax - 0xb4], cl
mov eax, dword [ebp - 0x50]
inc eax
inc esi
dec edi
mov dword [ebp - 0x50], eax
cmp eax, 0x40
jne 0x1000239d
lea edx, [ebp - 0xb4]
push edx
call fcn.10001360
add esp, 4
xor eax, eax
mov dword [ebp - 0x50], eax
test edi, edi
jne 0x10002343
mov edi, 0x20
lea esi, [ebp - 0x11c]
lea esp, [esp]
test eax, eax
jne 0x100023e1
cmp edi, 0x40
jb 0x100023dd
mov ebx, edi
shr ebx, 6
mov edi, edi
lea eax, [ebp - 0xb4]
push eax
mov edx, esi
call fcn.10001360
add esp, 4
add esi, 0x40
sub edi, 0x40
dec ebx
jne 0x100023c0
mov eax, dword [ebp - 0x50]
test edi, edi
je 0x10002410
mov cl, byte [esi]
mov byte [ebp + eax - 0xb4], cl
mov eax, dword [ebp - 0x50]
inc eax
inc esi
dec edi
mov dword [ebp - 0x50], eax
cmp eax, 0x40
jne 0x1000240c
lea edx, [ebp - 0xb4]
push edx
call fcn.10001360
add esp, 4
xor eax, eax
mov dword [ebp - 0x50], eax
test edi, edi
jne 0x100023b0
lea esi, [ebp - 0xb4]
call fcn.100015a0
mov edi, dword [ebp - 0x124]
mov ecx, 8
lea esi, [ebp - 0xb4]
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