Function at 0x531240
Capabilities:
Hash data using sha1

Disassembly:
mov eax, 0xc4
call fcn.00525ec0
mov eax, dword [esp + 0xcc]
push ebx
mov ebx, dword [esp + 0xcc]
push ebp
mov ebp, dword [eax + 4]
cmp dword [ebp + 0xec], 0x10
push esi
mov esi, dword [ebp + 0x58]
push edi
mov byte [esp + 0x10], 0xd1
mov byte [esp + 0x11], 0x26
jne 0x5313e6
push 0x60
mov byte [ebp + 0x133], 0
call fcn.0050f3bc
push 0x60
mov edi, eax
push 0
push edi
call fcn.00516180
lea ecx, [ebx + 0x10]
push ecx
mov ecx, 0x10
mov edx, edi
mov dword [edi], 0x67452301
mov dword [edi + 4], 0xefcdab89
mov dword [edi + 8], 0x98badcfe
mov dword [edi + 0xc], 0x10325476
mov dword [edi + 0x10], 0xc3d2e1f0
call fcn.0046dcb0
lea edx, [esi + 0x10]
push edx
mov ecx, 0x10
mov edx, edi
call fcn.0046dcb0
push edi
lea ecx, [esp + 0x30]
call fcn.0046ddb0
push edi
call fcn.0050f521
mov al, byte [esp + 0x34]
add esp, 0x20
lea ecx, [ebp + 0x16a]
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0x2c], al
call fcn.0052d510
push 0x60
call fcn.0050f3bc
push 0x60
mov edi, eax
push 0
push edi
call fcn.00516180
push ebx
mov ecx, 0x10
mov edx, edi
mov dword [edi], 0x67452301
mov dword [edi + 4], 0xefcdab89
mov dword [edi + 8], 0x98badcfe
mov dword [edi + 0xc], 0x10325476
mov dword [edi + 0x10], 0xc3d2e1f0
call fcn.0046dcb0
push esi
mov ecx, 0x10
mov edx, edi
call fcn.0046dcb0
push edi
lea ecx, [esp + 0x48]
call fcn.0046ddb0
push edi
call fcn.0050f521
mov dl, byte [esp + 0x4c]
add esp, 0x20
lea eax, [ebp + 0x182]
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x44], dl
call fcn.0052d510
push 0x60
call fcn.0050f3bc
push 0x60
mov edi, eax
push 0
push edi
call fcn.00516180
lea ecx, [esp + 0x3c]
mov dword [edi], 0x67452301
mov dword [edi + 4], 0xefcdab89
mov dword [edi + 8], 0x98badcfe
mov dword [edi + 0xc], 0x10325476
mov dword [edi + 0x10], 0xc3d2e1f0
push ecx
mov ecx, 0x14
mov edx, edi
call fcn.0046dcb0
lea edx, [esp + 0x28]
push edx
mov ecx, 0x14
mov edx, edi
call fcn.0046dcb0
push edi
lea ecx, [ebp + 0x156]
call fcn.0046ddb0
push edi
call fcn.0050f521
add esp, 0x20
movq xmm0, qword [ebx]
movq qword [esp + 0x44], xmm0
movq xmm0, qword [ebx + 8]
movq qword [esp + 0x4c], xmm0
movq xmm0, qword [ebx + 0x10]
lea eax, [esp + 0xa4]
push eax
push esi
movq qword [esp + 0x5c], xmm0
movq xmm0, qword [esi]
push ebx
movq qword [esp + 0x68], xmm0
movq xmm0, qword [esi + 8]
push 1
movq qword [esp + 0x74], xmm0
movq xmm0, qword [esi + 0x10]
push 0x586814
lea edi, [esp + 0x58]
movq qword [esp + 0x80], xmm0
call fcn.0052c3b0
lea ecx, [esp + 0xb4]
push ecx
push esi
push ebx
push 2
push 0x586818
call fcn.0052c3b0
lea edx, [esp + 0xc4]
push edx
push esi
push ebx
push 3
push 0x58681c
call fcn.0052c3b0
lea eax, [esp + 0x74]
push eax
push esi
push ebx
push 1
push 0x586820
lea edi, [esp + 0xb8]
call fcn.0052c3b0
lea ecx, [esp + 0x84]
push ecx
push esi
push ebx
push 2
push 0x586824
call fcn.0052c3b0
lea edx, [esp + 0x94]
push edx
push esi
push ebx
push 3
push 0x586828
call fcn.0052c3b0
movq xmm0, qword [esp + 0x74]
movq qword [ebp + 0x1ba], xmm0
movq xmm0, qword [esp + 0x7c]
push 0x5c
movq qword [ebp + 0x1c2], xmm0
call fcn.0050f3bc
push 0x5c
mov edi, eax
push 0
push edi
call fcn.00516180
lea eax, [esp + 0x94]
push eax
mov ecx, 0x10
mov edx, edi
mov dword [edi], 0x67452301
mov dword [edi + 4], 0xefcdab89
mov dword [edi + 8], 0x98badcfe
mov dword [edi + 0xc], 0x10325476
call fcn.0045fc10
push ebx
mov ecx, 0x20
mov edx, edi
call fcn.0045fc10
push esi
mov ecx, 0x20
mov edx, edi
call fcn.0045fc10
lea ecx, [ebp + 0x136]
push edi
call fcn.0045fd10
push edi
call fcn.0050f521
push 0x5c
call fcn.0050f3bc
push 0x5c
mov edi, eax
push 0
push edi
call fcn.00516180
lea ecx, [esp + 0xc8]
push ecx
mov ecx, 0x10
mov edx, edi
mov dword [edi], 0x67452301
mov dword [edi + 4], 0xefcdab89
mov dword [edi + 8], 0x98badcfe
mov dword [edi + 0xc], 0x10325476
call fcn.0045fc10
push ebx
mov ecx, 0x20
mov edx, edi
call fcn.0045fc10
push esi
mov ecx, 0x20
mov edx, edi
call fcn.0045fc10
add esp, 0x40
lea esi, [ebp + 0x146]
push edi
mov ecx, esi
call fcn.0045fd10
push edi
call fcn.0050f521
mov eax, dword [ebp + 0xec]
add esp, 8
cmp eax, 1
jne 0x5315f3
mov cx, word [esp + 0x10]
mov al, 0x9e
mov word [ebp + 0x1ba], cx
mov word [ebp + 0x136], cx
mov word [esi], cx
mov byte [ebp + 0x1bc], al
mov byte [ebp + 0x138], al
mov byte [esi + 2], al
mov dword [ebp + 0xd4], 8
jmp 0x531602
cmp eax, 2
jne 0x531602
mov dword [ebp + 0xd4], 0x10
movq xmm0, qword [ebp + 0x136]
movq qword [ebp + 0x19a], xmm0
movq xmm0, qword [ebp + 0x13e]
movq qword [ebp + 0x1a2], xmm0
movq xmm0, qword [esi]
xor eax, eax
movq qword [ebp + 0x1aa], xmm0
movq xmm0, qword [esi + 8]
pop edi
pop esi
mov dword [ebp + 0xbc], eax
mov dword [ebp + 0xdc], eax
mov dword [ebp + 0xc0], eax
mov dword [ebp + 0xd8], eax
movq qword [ebp + 0x1b2], xmm0
pop ebp
mov eax, 1
pop ebx
add esp, 0xc4
ret 8