Function at 0x4a4f40
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
mov eax, dword [0x51e080]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
mov eax, ecx
push esi
push edi
mov edi, dword [ebp + 8]
cmp dword [eax + 0x34], 0
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x84], ebx
jne 0x4a4f88
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [eax + 0x14c]
mov esi, dword [eax + 0x4c8]
lea eax, [ebp - 0x80]
push eax
mov ecx, esi
call fcn.0047ac20
test eax, eax
je 0x4a4fae
lea eax, [ebp - 0x80]
mov ecx, esi
push eax
call fcn.0047acd0
mov eax, dword [ebp - 0x80]
add eax, 0x78
cmp dword [ebx], eax
ja 0x4a52f4
mov ecx, dword [ebp - 0x78]
lea eax, [ebx + 4]
mov ebx, dword [ebp + 0x14]
push ebx
push dword [ebp + 0x10]
mov dword [ebp - 0x80], eax
push eax
call fcn.004a4af0
mov ecx, eax
test ecx, ecx
je 0x4a4ff6
xor eax, eax
cmp ecx, 2
sete al
add eax, 2
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0x10
test bl, 2
je 0x4a5010
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x78]
xor edx, edx
xor esi, esi
mov dword [ebp - 0x58], edx
xor ecx, ecx
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x70], 0x67452301
mov eax, dword [eax + 0x14c]
mov dword [ebp - 0x6c], 0xefcdab89
mov dword [ebp - 0x68], 0x98badcfe
mov dword [ebp - 0x64], 0x10325476
mov dword [ebp - 0x60], 0xc3d2e1f0
mov dword [ebp - 0x10], ecx
mov eax, dword [eax + 0x480]
mov dword [ebp - 0x74], eax
test edi, edi
je 0x4a50ad
mov ebx, dword [ebp - 0x7c]
mov edi, 0x20
mov dword [ebp - 0x5c], edi
mov eax, 0x40
mov esi, edi
sub eax, ecx
cmp edi, eax
cmovae esi, eax
lea eax, [ebp - 0x50]
push esi
add eax, ecx
push ebx
push eax
call fcn.004d6950
mov ecx, dword [ebp - 0x10]
add esp, 0xc
add ecx, esi
add ebx, esi
sub edi, esi
mov dword [ebp - 0x10], ecx
cmp ecx, 0x40
jne 0x4a50a3
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
call fcn.004b2a40
xor ecx, ecx
mov dword [ebp - 0x10], ecx
test edi, edi
jne 0x4a5063
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x78]
mov edi, 4
mov ebx, dword [ebp - 0x84]
mov eax, dword [eax + 0x14c]
mov eax, dword [eax + 0x480]
mov dword [ebp - 0x74], eax
lea eax, [esi + 4]
mov dword [ebp - 0x5c], eax
cmp eax, edi
jae 0x4a50e0
inc edx
mov dword [ebp - 0x58], edx
nop dword [eax + eax]
mov eax, 0x40
mov esi, edi
sub eax, ecx
cmp edi, eax
cmovae esi, eax
lea eax, [ebp - 0x50]
push esi
add eax, ecx
push ebx
push eax
call fcn.004d6950
mov ecx, dword [ebp - 0x10]
add esp, 0xc
add ecx, esi
add ebx, esi
sub edi, esi
mov dword [ebp - 0x10], ecx
cmp ecx, 0x40
jne 0x4a5120
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
call fcn.004b2a40
xor ecx, ecx
mov dword [ebp - 0x10], ecx
test edi, edi
jne 0x4a50e0
mov eax, dword [ebp - 0x78]
mov eax, dword [eax + 0x14c]
mov eax, dword [eax + 0x480]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4a5197
mov ebx, eax
mov edi, 0x28
mov eax, dword [ebp - 0x5c]
add eax, edi
mov dword [ebp - 0x5c], eax
cmp eax, edi
jae 0x4a5153
inc dword [ebp - 0x58]
mov eax, 0x40
mov esi, edi
sub eax, ecx
cmp edi, eax
cmovae esi, eax
lea eax, [ebp - 0x50]
push esi
add eax, ecx
push ebx
push eax
call fcn.004d6950
mov ecx, dword [ebp - 0x10]
add esp, 0xc
add ecx, esi
add ebx, esi
sub edi, esi
mov dword [ebp - 0x10], ecx
cmp ecx, 0x40
jne 0x4a5193
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
call fcn.004b2a40
xor ecx, ecx
mov dword [ebp - 0x10], ecx
test edi, edi
jne 0x4a5153
mov eax, dword [ebp - 0x78]
mov edi, 4
mov ebx, dword [ebp - 0x84]
mov eax, dword [eax + 0x14c]
mov eax, dword [eax + 0x480]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x5c]
add eax, edi
mov dword [ebp - 0x5c], eax
cmp eax, edi
jae 0x4a51c3
inc dword [ebp - 0x58]
mov eax, 0x40
mov esi, edi
sub eax, ecx
cmp edi, eax
cmovae esi, eax
lea eax, [ebp - 0x50]
push esi
add eax, ecx
push ebx
push eax
call fcn.004d6950
mov ecx, dword [ebp - 0x10]
add esp, 0xc
add ecx, esi
add ebx, esi
sub edi, esi
mov dword [ebp - 0x10], ecx
cmp ecx, 0x40
jne 0x4a5203
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
call fcn.004b2a40
xor ecx, ecx
mov dword [ebp - 0x10], ecx
test edi, edi
jne 0x4a51c3
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x7c]
mov eax, dword [eax + 0x14c]
mov ebx, dword [eax + 0x480]
test edx, edx
je 0x4a527d
mov eax, dword [ebp - 0x5c]
mov edi, 0x20
add eax, edi
mov dword [ebp - 0x5c], eax
cmp eax, edi
jae 0x4a5231
inc dword [ebp - 0x58]
mov eax, 0x40
mov esi, edi
sub eax, ecx
cmp edi, eax
cmovae esi, eax
lea eax, [ebp - 0x50]
push esi
push edx
add eax, ecx
push eax
call fcn.004d6950
mov ecx, dword [ebp - 0x10]
add esp, 0xc
mov edx, dword [ebp - 0x7c]
add ecx, esi
add edx, esi
mov dword [ebp - 0x10], ecx
sub edi, esi
mov dword [ebp - 0x7c], edx
cmp ecx, 0x40
jne 0x4a5279
lea eax, [ebp - 0x70]
mov ecx, ebx
push eax
call fcn.004b2a40
mov edx, dword [ebp - 0x7c]
xor ecx, ecx
mov dword [ebp - 0x10], ecx
test edi, edi
jne 0x4a5231
lea eax, [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax + 0x14c]
mov ecx, dword [ecx + 0x480]
call fcn.004b2720
push 0x2c6
lea eax, [ebp - 0x74]
push eax
call fcn.004bd020
mov edi, dword [ebp - 0x74]
push 0x28
push dword [ebp - 0x80]
push 0x2c6
push edi
call fcn.004bba30
mov eax, dword [ebp - 0x84]
push 0x28
add eax, 0x2c
push eax
push ecx
lea eax, [ebp - 0x70]
push eax
push edi
call fcn.004bbeb0
push edi
mov esi, eax
call fcn.004bd080
mov eax, 2
test esi, esi
cmovne esi, eax
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp - 4]
mov eax, 2
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0x10