Function at 0x4595b0
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x178
mov eax, dword [0x643004]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
xorps xmm0, xmm0
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, edx
push 0x40
mov dword [ebp - 0x174], eax
lea eax, [ebp - 0xe4]
push 0
push eax
mov dword [ebp - 0x170], ecx
mov dword [ebp - fcn.00479100], vtable.sha11.0
mov dword [ebp - 0x138], 0x67452301
mov dword [ebp - 0x134], 0xefcdab89
mov dword [ebp - 0x130], 0x98badcfe
mov dword [ebp - 0x12c], 0x10325476
mov dword [ebp - 0x128], 0xc3d2e1f0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x154], 0
mov byte [ebp - 0x164], 0
movlpd qword [ebp - 0x15c], xmm0
call fcn.00484a00
push 0x40
lea eax, [ebp - 0x4c]
push 0
push eax
call fcn.00484a00
push 0x40
lea eax, [ebp - 0x8c]
push 0
push eax
call fcn.00484a00
mov esi, dword [ebp + 0xc]
add esp, 0x24
push esi
push edi
cmp esi, 0x40
jbe 0x45969a
lea ecx, [ebp - 0x16c]
call fcn.0047c720
lea eax, [ebp - 0xe4]
push eax
lea ecx, [ebp - 0x16c]
call fcn.0047a360
mov esi, 0x14
jmp 0x4596a9
lea eax, [ebp - 0xe4]
push eax
call fcn.0048cb50
add esp, 0xc
push esi
lea eax, [ebp - 0xe4]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.0048cb50
push esi
lea eax, [ebp - 0xe4]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.0048cb50
movaps xmm2, xmmword [str.6666666666666666]
xor edx, edx
movups xmm0, xmmword [ebp - 0x4c]
add esp, 0x18
mov dword [ebp - 0x138], 0x67452301
movaps xmm3, xmmword [0x630260]
movaps xmm1, xmm2
pxor xmm1, xmm0
mov dword [ebp - 0x134], 0xefcdab89
movups xmm0, xmmword [ebp - 0x8c]
mov dword [ebp - 0x130], 0x98badcfe
xor esi, esi
movups xmmword [ebp - 0x4c], xmm1
mov dword [ebp - 0x12c], 0x10325476
movaps xmm1, xmm3
mov dword [ebp - 0x128], 0xc3d2e1f0
pxor xmm1, xmm0
mov dword [ebp - 0x124], 0
movups xmm0, xmmword [ebp - 0x3c]
mov dword [ebp - 0x154], edx
movups xmmword [ebp - 0x8c], xmm1
mov byte [ebp - 0x164], dl
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmm0, xmmword [ebp - 0x7c]
movups xmmword [ebp - 0x3c], xmm1
movaps xmm1, xmm3
pxor xmm1, xmm0
movups xmm0, xmmword [ebp - 0x2c]
movups xmmword [ebp - 0x7c], xmm1
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmm0, xmmword [ebp - 0x6c]
movups xmmword [ebp - 0x2c], xmm1
movaps xmm1, xmm3
pxor xmm1, xmm0
movups xmm0, xmmword [ebp - 0x1c]
movups xmmword [ebp - 0x6c], xmm1
pxor xmm2, xmm0
movups xmm0, xmmword [ebp - 0x5c]
movups xmmword [ebp - 0x1c], xmm2
pxor xmm3, xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x5c], xmm3
movlpd qword [ebp - 0x15c], xmm0
nop
mov al, byte [ebp + esi - 0x4c]
mov byte [ebp + edx - 0x124], al
mov edx, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x15c]
inc edx
mov eax, dword [ebp - 0x158]
add ecx, 1
mov dword [ebp - 0x15c], ecx
adc eax, 0
mov dword [ebp - 0x154], edx
or ecx, eax
mov dword [ebp - 0x158], eax
je 0x459808
cmp edx, 0x40
jne 0x459800
lea ecx, [ebp - 0x16c]
call fcn.00479100
mov edx, dword [ebp - 0x154]
inc esi
cmp esi, 0x40
jb 0x4597b0
jmp 0x45980f
mov byte [ebp - 0x164], 1
push ebx
push dword [ebp - 0x170]
lea ecx, [ebp - 0x16c]
call fcn.0047c720
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x16c]
call fcn.0047a360
xor edx, edx
mov dword [ebp - 0x138], 0x67452301
xorps xmm0, xmm0
mov dword [ebp - 0x134], 0xefcdab89
mov dword [ebp - 0x130], 0x98badcfe
xor esi, esi
mov dword [ebp - 0x12c], 0x10325476
mov dword [ebp - 0x128], 0xc3d2e1f0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x154], edx
mov byte [ebp - 0x164], dl
movlpd qword [ebp - 0x15c], xmm0
nop word [eax + eax]
mov al, byte [ebp + esi - 0x8c]
mov byte [ebp + edx - 0x124], al
mov edx, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x15c]
inc edx
mov eax, dword [ebp - 0x158]
add ecx, 1
mov dword [ebp - 0x15c], ecx
adc eax, 0
mov dword [ebp - 0x154], edx
or ecx, eax
mov dword [ebp - 0x158], eax
je 0x4598f1
cmp edx, 0x40
jne 0x4598e3
lea ecx, [ebp - 0x16c]
call fcn.00479100
mov edx, dword [ebp - 0x154]
inc esi
cmp esi, 0x40
jb 0x459890
mov al, byte [ebp - 0x164]
jmp 0x4598f9
mov al, 1
mov byte [ebp - 0x164], al
xor esi, esi
test al, al
jne 0x459962
nop
mov al, byte [ebp + esi - 0xa0]
mov byte [ebp + edx - 0x124], al
mov edx, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x15c]
inc edx
mov eax, dword [ebp - 0x158]
add ecx, 1
mov dword [ebp - 0x15c], ecx
adc eax, 0
mov dword [ebp - 0x154], edx
or ecx, eax
mov dword [ebp - 0x158], eax
je 0x45995b
cmp edx, 0x40
jne 0x459953
lea ecx, [ebp - 0x16c]
call fcn.00479100
mov edx, dword [ebp - 0x154]
inc esi
cmp esi, 0x14
jb 0x459900
jmp 0x459962
mov byte [ebp - 0x164], 1
push dword [ebp - 0x174]
lea ecx, [ebp - 0x16c]
call fcn.0047a360
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00482be9
mov esp, ebp
pop ebp
ret