Function at 0x4350a0
Capabilities:
Hash data using sha1

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x1c
cmp eax, 3
jne 0x4350be
mov ecx, dword [0x534424]
test ecx, ecx
jne 0x4350d5
xor eax, eax
add esp, 0x1c
ret 8
cmp eax, 4
jne 0x4350d5
mov ecx, dword [0x534428]
test ecx, ecx
jne 0x4350d5
xor eax, eax
add esp, 0x1c
ret 8
sub eax, 3
push ebx
push ebp
push esi
je 0x435136
dec eax
je 0x435114
dec eax
je 0x4350ee
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret 8
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebp + 0x27c]
test eax, eax
je 0x4350e3
mov ecx, dword [ebp + 0x280]
mov esi, eax
mov eax, dword [ebp + 0x284]
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], eax
jmp 0x435160
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x374]
test eax, eax
je 0x4350e3
mov ecx, dword [ecx + 0x378]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0x947000
jmp 0x435158
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x2e4]
test ecx, ecx
je 0x4350e3
mov edx, dword [eax + 0x2ec]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x2e8]
mov dword [esp + 0x20], edx
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 0xf0]
xor ebx, ebx
or edx, 0xffffffff
test eax, eax
mov dword [esp + 0x24], ebx
push edi
mov dword [esp + 0x10], edx
jne 0x4351b4
xor edx, edx
lea ebx, [ebx]
xor eax, eax
test ecx, ecx
jbe 0x4351a2
movzx edi, byte [eax + esi]
cmp edi, edx
je 0x435195
inc eax
cmp eax, ecx
jb 0x435186
jmp 0x4351a2
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
jne 0x435332
inc edx
cmp edx, 2
jl 0x435180
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret 8
mov ecx, dword [eax + 0x1c]
mov eax, dword [ecx]
xor edi, edi
xor esi, esi
cmp eax, ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
je 0x435296
lea ecx, [ecx]
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
sub edx, edi
sbb ecx, esi
cmp ecx, ebx
jb 0x435274
mov ecx, dword [esp + 0x24]
ja 0x4351f0
cmp edx, ecx
jb 0x435274
add edi, ecx
adc esi, ebx
push ebx
add edi, 0xffffffff
push ecx
adc esi, 0xffffffff
push esi
push edi
call fcn.004b4a40
mov edx, dword [esp + 0x24]
xor ecx, ecx
push ebx
mov ebp, eax
add eax, 1
push edx
adc ecx, ecx
push ecx
push eax
call fcn.004af3f0
mov edi, eax
mov eax, dword [esp + 0x1c]
mov esi, edx
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
cmp esi, eax
ja 0x435265
jb 0x435231
cmp edi, edx
ja 0x435265
mov ecx, dword [esp + 0x14]
mov cl, byte [ecx + ebp]
test cl, cl
je 0x435261
cmp cl, 1
jne 0x43524c
cmp dword [esp + 0x18], 0xffffffff
jne 0x43524c
mov dword [esp + 0x18], ebp
mov ecx, dword [esp + 0x24]
inc ebp
add edi, ecx
adc esi, ebx
cmp esi, eax
jb 0x435231
ja 0x435265
cmp edi, edx
jbe 0x435231
jmp 0x435265
mov dword [esp + 0x10], ebp
cmp dword [esp + 0x10], 0xffffffff
mov ebp, dword [esp + 0x30]
jne 0x435296
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + 0x18]
mov esi, dword [eax + 0x1c]
lea edx, [esp + 0x1c]
call fcn.00408870
mov edx, dword [ebp + 0xf0]
mov eax, dword [esp + 0x1c]
cmp eax, dword [edx + 0x1c]
jne 0x4351d0
cmp dword [ebp + 0x1c], esi
mov eax, dword [ebp + 0x18]
jb 0x43531a
ja 0x4352a4
cmp eax, edi
jbe 0x43531a
cmp dword [esp + 0x10], 0xffffffff
jne 0x435332
mov eax, dword [esp + 0x24]
add edi, eax
adc esi, ebx
push ebx
add edi, 0xffffffff
push eax
adc esi, 0xffffffff
push esi
push edi
call fcn.004b4a40
mov esi, eax
mov eax, dword [esp + 0x24]
push ebx
push eax
push 0
push esi
call fcn.004af3f0
cmp edx, dword [ebp + 0x1c]
ja 0x435321
jb 0x4352e2
cmp eax, dword [ebp + 0x18]
jae 0x435321
mov ecx, dword [esp + 0x14]
mov cl, byte [esi + ecx]
test cl, cl
je 0x435316
cmp cl, 1
jne 0x4352fd
cmp dword [esp + 0x18], 0xffffffff
jne 0x4352fd
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x24]
inc esi
add eax, ecx
mov ecx, dword [ebp + 0x1c]
adc edx, ebx
cmp edx, ecx
jb 0x4352e2
ja 0x435321
cmp eax, dword [ebp + 0x18]
jb 0x4352e2
jmp 0x435321
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], 0xffffffff
jne 0x435332
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x4351a8
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
push ebx
push ecx
push 0
push eax
mov dword [ebp + 0x384], edx
mov dword [ebp + 0x388], eax
call fcn.004af3f0
mov ecx, dword [ebp + 0x18]
mov edi, eax
mov dword [ebp + 0x390], eax
mov eax, dword [ebp + 0x1c]
sub ecx, edi
mov esi, edx
sbb eax, esi
cmp eax, ebx
mov dword [ebp + 0x394], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
ja 0x435388
jb 0x435382
cmp ecx, dword [esp + 0x24]
jae 0x435388
lea eax, [esp + 0x1c]
jmp 0x43538c
lea eax, [esp + 0x24]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp + 0x398], edx
mov dword [ebp + 0x39c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3a0], eax
mov eax, dword [ebp + 0x384]
cmp eax, 3
jne 0x4353ce
lea edi, [ebp + 0x2b8]
call fcn.0049b810
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1c
ret 8
cmp eax, 4
jne 0x43541e
xor eax, eax
pop edi
mov dword [ebp + 0x328], eax
mov dword [ebp + 0x324], eax
mov dword [ebp + 0x314], 0x67452301
mov dword [ebp + 0x318], 0xefcdab89
mov dword [ebp + 0x31c], 0x98badcfe
mov dword [ebp + 0x320], 0x10325476
pop esi
mov dword [ebp + 0x370], eax
pop ebp
mov eax, 1
pop ebx
add esp, 0x1c
ret 8
cmp eax, 5
jne 0x435469
xor eax, eax
mov dword [ebp + 0x1bc], eax
mov dword [ebp + 0x1b8], eax
mov dword [ebp + 0x1c0], 0x67452301
mov dword [ebp + 0x1c4], 0xefcdab89
mov dword [ebp + 0x1c8], 0x98badcfe
mov dword [ebp + 0x1cc], 0x10325476
mov dword [ebp + 0x1d0], 0xc3d2e1f0
mov dword [ebp + 0x214], eax
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1c
ret 8