Function at 0x4abf10
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
mov eax, dword [0x51e080]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, ecx
push dword [ebp + 0xc]
mov dword [ebp - 0x8c], eax
push ebx
mov dword [ebp - 0x88], ebx
call fcn.004ace30
test eax, eax
jne 0x4abfc1
mov eax, dword [ebx]
push esi
push edi
test eax, eax
je 0x4ac15b
cmp eax, 6
je 0x4ac15b
cmp eax, 1
je 0x4abf68
cmp eax, 2
jne 0x4ac327
mov edi, dword [ebx + 4]
lea esi, [ebx + 8]
mov eax, dword [ebx + edi*2 + 0xc]
lea ecx, [ebx + edi*2]
add eax, dword [ecx + 8]
xor ebx, ebx
mov dword [ebp - 0x84], 1
mov eax, dword [ecx + eax*2 + 0x10]
and eax, 1
mov dword [ebp - 0x80], eax
test edi, edi
je 0x4ac007
cmp ebx, 1
je 0x4abfba
push 0x40
push esi
call fcn.004d64ee
add esp, 8
test eax, eax
je 0x4abfd2
cmp dword [ebp - 0x84], 0
jne 0x4abfd4
cmp dword [ebp - 0x80], 0
mov ebx, 1
jne 0x4abfd4
pop edi
mov eax, 2
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0xc
xor ebx, ebx
mov dword [ebp - 0x84], 0
mov eax, esi
cmp edi, 0x100
ja 0x4ac001
xor ecx, ecx
mov word [esi + edi*2 - 2], cx
cmp word [esi], cx
je 0x4abffd
add esi, 2
dec edi
cmp word [esi], cx
jne 0x4abff4
dec edi
add esi, 2
test edi, edi
jne 0x4abf92
jmp 0x4ac00d
mov eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x80], 0
je 0x4ac327
cmp ebx, 1
jne 0x4abfba
test eax, eax
je 0x4abfba
push 0x3d
push eax
call fcn.004d644c
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4abfba
add ecx, 2
mov edx, ecx
lea esi, [edx + 2]
nop dword [eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4ac040
sub edx, esi
lea eax, [ebp - 0x18]
push 0x14
sar edx, 1
push eax
call fcn.00453ba0
add esp, 8
test eax, eax
jne 0x4abfba
lea eax, [ebp - 0x80]
push eax
push ecx
push dword [ebp - 0x88]
call fcn.004abc20
mov ebx, dword [ebp - 0x80]
test ebx, ebx
je 0x4abfba
mov eax, dword [ebp - 0x8c]
mov edi, 0x28
xor ecx, ecx
xor edx, edx
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x480]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x7c], 0x67452301
mov dword [ebp - 0x78], 0xefcdab89
mov dword [ebp - 0x74], 0x98badcfe
mov dword [ebp - 0x70], 0x10325476
mov dword [ebp - 0x6c], 0xc3d2e1f0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x68], edi
nop
mov eax, 0x40
mov esi, edi
sub eax, ecx
cmp edi, eax
cmovae esi, eax
lea eax, [ebp - 0x5c]
push esi
add eax, edx
push ebx
push eax
call fcn.004d6950
mov ecx, dword [ebp - 0x1c]
add ebx, esi
add ecx, esi
sub edi, esi
mov esi, dword [ebp - 0x80]
add esp, 0xc
mov dword [ebp - 0x1c], ecx
mov edx, ecx
cmp ecx, 0x40
jne 0x4ac11a
lea eax, [ebp - 0x7c]
mov ecx, esi
push eax
call fcn.004b2a40
xor ecx, ecx
mov dword [ebp - 0x1c], 0
xor edx, edx
test edi, edi
jne 0x4ac0d0
lea eax, [ebp - 0x7c]
mov ecx, esi
push eax
call fcn.004b2720
xor ecx, ecx
nop dword [eax + eax]
mov eax, dword [ebp + ecx - 0x18]
cmp eax, dword [ebp + ecx - 0x7c]
jne 0x4abfba
add ecx, 4
cmp ecx, 0x14
jl 0x4ac130
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [ebx + 4]
lea esi, [ebx + 8]
mov dword [ebp - 0x80], 1
mov eax, dword [ebx + edi*2 + 8]
and eax, 1
mov dword [ebp - 0x88], eax
lea eax, [ebx + 0x48]
lea eax, [eax + edi*2]
xor ebx, ebx
mov dword [ebp - 0x84], eax
test edi, edi
je 0x4ac1eb
cmp ebx, 1
je 0x4abfba
push 0x40
push esi
call fcn.004d64ee
add esp, 8
test eax, eax
je 0x4ac1b9
cmp dword [ebp - 0x80], 0
jne 0x4ac1bb
cmp dword [ebp - 0x88], 0
mov ebx, 1
je 0x4abfba
jmp 0x4ac1bb
xor ebx, ebx
mov dword [ebp - 0x80], 0
mov eax, esi
cmp edi, 0x100
ja 0x4ac1e5
xor ecx, ecx
mov word [esi + edi*2 - 2], cx
cmp word [esi], cx
je 0x4ac1e1
add esi, 2
dec edi
cmp word [esi], cx
jne 0x4ac1d8
dec edi
add esi, 2
test edi, edi
jne 0x4ac187
jmp 0x4ac1f1
mov eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x88], 0
je 0x4ac327
cmp ebx, 1
jne 0x4abfba
test eax, eax
je 0x4abfba
push 0x3d
push eax
call fcn.004d644c
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4abfba
add ecx, 2
mov edx, ecx
lea esi, [edx + 2]
nop dword [eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4ac230
sub edx, esi
lea eax, [ebp - 0x18]
push 0x14
sar edx, 1
push eax
call fcn.00453ba0
add esp, 8
test eax, eax
jne 0x4abfba
cmp dword [ebp - 0x84], 0
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 4]
mov ebx, dword [eax + 0x480]
je 0x4ac30f
mov edi, 0x28
mov dword [ebp - 0x64], 0
xor ecx, ecx
mov dword [ebp - 0x7c], 0x67452301
mov dword [ebp - 0x78], 0xefcdab89
xor edx, edx
mov dword [ebp - 0x74], 0x98badcfe
mov dword [ebp - 0x70], 0x10325476
mov dword [ebp - 0x6c], 0xc3d2e1f0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x68], edi
nop
mov eax, 0x40
mov esi, edi
sub eax, ecx
cmp edi, eax
cmovae esi, eax
lea eax, [ebp - 0x5c]
push esi
push dword [ebp - 0x84]
add eax, edx
push eax
call fcn.004d6950
mov ecx, dword [ebp - 0x1c]
add esp, 0xc
add dword [ebp - 0x84], esi
add ecx, esi
sub edi, esi
mov dword [ebp - 0x1c], ecx
mov edx, ecx
cmp ecx, 0x40
jne 0x4ac300
lea eax, [ebp - 0x7c]
mov ecx, ebx
push eax
call fcn.004b2a40
xor ecx, ecx
mov dword [ebp - 0x1c], 0
xor edx, edx
test edi, edi
jne 0x4ac2b0
lea eax, [ebp - 0x7c]
mov ecx, ebx
push eax
call fcn.004b2720
xor ecx, ecx
mov eax, dword [ebp + ecx - 0x18]
cmp eax, dword [ebp + ecx - 0x7c]
jne 0x4abfba
add ecx, 4
cmp ecx, 0x14
jl 0x4ac311
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0xc