Function at 0x10015a50
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8fc
cmp byte [ebp + 0xc], 0
push ebx
push esi
mov esi, eax
mov ebx, ecx
jne 0x10015a77
push esi
call fcn.100153c0
test al, al
jne 0x10015a77
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp - 0x58]
push edi
push eax
call fcn.1000fca0
mov edi, eax
call fcn.10010070
push eax
mov eax, 0x40
call fcn.10013ab0
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp - 0xbc]
push edx
push eax
lea eax, [ebp - 0x58]
push eax
mov dword [ebp - 4], 0x40
call fcn.10012090
mov ecx, dword [ebp - 4]
add esp, 0x10
xor eax, eax
push 4
lea edx, [ebp - 4]
push edx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x78], eax
mov byte [ebp - 0x7c], al
push 0x10
mov eax, esi
mov byte [ebp + ecx - 0xbc], 0
mov dword [ebp - 0x2c], 0x67452301
mov dword [ebp - 0x28], 0xefcdab89
mov dword [ebp - 0x24], 0x98badcfe
mov dword [ebp - 0x20], 0x10325476
mov dword [ebp - 0x1c], 0xc3d2e1f0
call fcn.10011e00
test al, al
je 0x10015b06
mov edi, dword [ebp - 4]
jmp 0x10015b09
or edi, 0xffffffff
push 4
lea eax, [ebp - 4]
push eax
push 0xc
mov eax, esi
call fcn.10011e00
test al, al
je 0x10015b21
mov eax, dword [ebp - 4]
jmp 0x10015b24
or eax, 0xffffffff
push edi
push eax
push esi
lea esi, [ebp - 0x7c]
call fcn.10012310
cmp byte [ebp - 0x7c], 0
jne 0x10015b3a
call fcn.10012860
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ebp - 0x2c]
shr ecx, 0x10
rol cx, 8
rol ax, 8
movzx edx, cx
movzx ecx, ax
shl ecx, 0x10
or edx, ecx
movzx ecx, word [ebp - 0x28]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x28]
shr edx, 0x10
rol dx, 8
rol cx, 8
movzx eax, dx
movzx edx, cx
shl edx, 0x10
or eax, edx
mov dx, word [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
shr eax, 0x10
rol ax, 8
rol dx, 8
movzx ecx, ax
movzx eax, dx
shl eax, 0x10
or ecx, eax
movzx eax, word [ebp - 0x20]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x20]
shr ecx, 0x10
rol cx, 8
rol ax, 8
movzx edx, cx
movzx ecx, ax
shl ecx, 0x10
or edx, ecx
movzx ecx, word [ebp - 0x1c]
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x1c]
shr edx, 0x10
rol dx, 8
movzx eax, dx
rol cx, 8
movzx edx, cx
shl edx, 0x10
or eax, edx
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push eax
lea ecx, [ebp - 0xfc]
push ecx
lea edx, [ebp - 0x18]
push 0x14
push edx
mov dword [ebp - 4], 0x40
call fcn.10012090
mov eax, dword [ebp - 4]
add esp, 0x10
cmp byte [ebp + 0xc], 0
mov byte [ebp + eax - 0xfc], 0
mov eax, 0x1002c35c
jne 0x10015c15
mov eax, 0x1002c374
push 0
push eax
mov edi, ebx
call fcn.100158d0
mov ecx, dword [ebp + 8]
push 1
push ecx
call fcn.100158d0
push 0
push 0x1002c38c
call fcn.100158d0
push 1
lea edx, [ebp - 0xbc]
push edx
call fcn.100158d0
push 0
push 0x1002c394
call fcn.100158d0
push 1
lea eax, [ebp - 0xfc]
push eax
call fcn.100158d0
cmp byte [ebp + 0xc], 0
pop edi
je 0x10015cb6
lea esi, [ebx + 4]
push esi
lea ecx, [ebp - 0x8fc]
push 0x800
push ecx
call fcn.1001d27c
lea eax, [ebp - 0x8fc]
add esp, 0xc
mov dword [ebp + 0xc], 0x800
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10015c90
sub eax, edx
lea edx, [ebp + 0xc]
push edx
push esi
push eax
lea eax, [ebp - 0x8fc]
push eax
call fcn.10012090
mov ecx, dword [ebp + 0xc]
add esp, 0x10
mov byte [ecx + ebx + 4], 0
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8