Function at 0x100d6354
Capabilities:
Encode data using xor
Hash data using sha1

Disassembly:
sub esp, 0x180
mov eax, dword [0x10157040]
xor eax, esp
mov dword [esp + 0x17c], eax
push ebx
push ebp
mov eax, ecx
mov dword [esp + 0x3c], edx
push esi
xorps xmm0, xmm0
mov dword [esp + 0x24], eax
push edi
movlpd qword [esp + 0x3c], xmm0
xor edi, edi
cmp byte [eax], 0
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x14], 0x67452301
mov dword [esp + 0x18], 0xefcdab89
mov dword [esp + 0x1c], 0x98badcfe
mov dword [esp + 0x20], 0x10325476
mov dword [esp + 0x24], 0xc3d2e1f0
je 0x100d63c3
inc edi
add ebp, 8
adc ebx, 0
cmp byte [eax + edi], 0
jne 0x100d63b6
push 0x38
pop ecx
xor edx, edx
lea esi, [edi + 8]
mov eax, edi
shr esi, 6
div ecx
shl esi, 3
lea eax, [edi + 9]
sub esi, edx
add esi, 0x37
add eax, esi
push eax
call fcn.100e1c9e
push edi
push dword [esp + 0x30]
mov dword [esp + 0x44], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x48]
push esi
push 0
mov byte [eax + edi], 0x80
inc eax
add eax, edi
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x54]
add esp, 0x1c
bswap ebp
bswap ebx
lea eax, [ecx + esi]
mov dword [eax + edi + 1], ebx
mov dword [eax + edi + 5], ebp
lea eax, [edi + 9]
add eax, esi
shr eax, 6
mov dword [esp + 0x28], eax
test eax, eax
je 0x100d657e
mov esi, dword [esp + 0x44]
mov edi, ecx
xor ecx, ecx
mov eax, dword [edi]
add edi, 4
bswap eax
mov dword [esp + ecx*4 + 0x4c], eax
inc ecx
cmp ecx, 0x10
jb 0x100d643a
push 0x100
lea eax, [esp + 0x90]
mov dword [esp + 0x40], edi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [esp + 0x54]
push 0x40
pop edx
mov eax, dword [ecx + 0x2c]
xor eax, dword [ecx + 0x18]
xor eax, dword [ecx - 8]
xor eax, dword [ecx]
lea ecx, [ecx + 4]
ror eax, 0x1f
mov dword [ecx + 0x34], eax
sub edx, 1
jne 0x100d646d
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x4c]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
push 0xffffffffffffffd8
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x38], edi
pop ebp
mov dword [esp + 0x30], eax
lea eax, [ebp + 0x28]
cmp eax, 0x13
ja 0x100d64c8
mov esi, ecx
mov eax, edx
not esi
and eax, ecx
and esi, ebx
mov edi, 0x5a827999
or esi, eax
jmp 0x100d6502
lea eax, [ebp + 0x14]
cmp eax, 0x13
ja 0x100d64d7
mov edi, 0x6ed9eba1
jmp 0x100d64fc
cmp ebp, 0x13
ja 0x100d64ef
mov esi, edx
mov eax, edx
or esi, ecx
and eax, ecx
and esi, ebx
mov edi, 0x8f1bbcdc
or esi, eax
jmp 0x100d6502
lea eax, [ebp - 0x14]
cmp eax, 0x13
ja 0x100d6506
mov edi, 0xca62c1d6
mov esi, ebx
xor esi, edx
xor esi, ecx
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x30], 4
ror eax, 0x1b
add eax, dword [edi]
add eax, dword [esp + 0x10]
add eax, esi
add eax, dword [esp + 0x34]
mov dword [esp + 0x34], ebx
mov ebx, edx
mov edx, ecx
mov dword [esp + 0x48], eax
shr ecx, 2
shl edx, 0x1e
or edx, ecx
mov ecx, dword [esp + 0x2c]
inc ebp
mov dword [esp + 0x2c], eax
lea eax, [ebp + 0x28]
cmp eax, 0x4f
jbe 0x100d64ad
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add dword [esp + 0x18], ecx
add dword [esp + 0x1c], edx
add dword [esp + 0x20], ebx
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
add dword [esp + 0x24], eax
sub dword [esp + 0x28], 1
jne 0x100d6438
mov ecx, dword [esp + 0x38]
push ecx
call fcn.100e1ca7
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
pop ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xc], edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x10], edi
pop edi
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
pop esi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x184]
pop ebp
pop ebx
xor ecx, esp
mov dword [eax + 8], edx
call fcn.100e1471
add esp, 0x180
ret