Function at 0x40b020
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x29c
mov eax, dword [0x4d77ac]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor eax, eax
mov dword [ebp - 0x29c], ecx
mov ecx, dword [ebp + 0xc]
xor esi, esi
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x298], ecx
mov dword [ebp - 0x290], eax
push ecx
lea ecx, [esi + 0x4dc3f0]
call fcn.00415ea0
mov ebx, dword [ebp + 0x14]
test al, al
je 0x40b08f
test ebx, ebx
jne 0x40b071
cmp byte [esi + 0x4dc4f2], bl
jmp 0x40b08d
cmp byte [esi + 0x4dc4f2], 0
je 0x40b08f
mov eax, dword [esi + 0x4dc4f3]
cmp eax, dword [ebx]
jne 0x40b08f
mov eax, dword [esi + 0x4dc4f7]
cmp eax, dword [ebx + 4]
je 0x40b0ab
inc dword [ebp - 0x290]
add esi, 0x12c
cmp esi, 0x4b0
jae 0x40b0d4
mov ecx, dword [ebp - 0x298]
jmp 0x40b052
imul eax, dword [ebp - 0x290], 0x12c
movdqu xmm0, xmmword [eax + 0x4dc3d0]
movdqu xmmword [ebp - 0x14], xmm0
movdqu xmm0, xmmword [eax + 0x4dc3e0]
movdqu xmmword [ebp - 0x24], xmm0
jmp 0x40b2df
push ecx
lea edx, [ebp - 0x12c]
mov ecx, edi
call fcn.00418810
add esp, 4
lea ecx, [edi + 2]
jmp 0x40b0f0
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x40b0f0
sub edi, ecx
sar edi, 1
lea ecx, [edi + edi]
mov dword [ebp - 0x294], ecx
test ebx, ebx
je 0x40b128
mov eax, dword [ebx]
mov dword [ebp + ecx - 0x12c], eax
mov eax, dword [ebx + 4]
mov dword [ebp + ecx - 0x128], eax
add ecx, 8
mov dword [ebp - 0x294], ecx
mov dword [ebp - 0x1f0], 0x67452301
xor ebx, ebx
mov dword [ebp - 0x1ec], 0xefcdab89
mov dword [ebp - 0x1e8], 0x98badcfe
mov dword [ebp - 0x1e4], 0x10325476
mov dword [ebp - 0x1e0], 0xc3d2e1f0
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1dc], 0
push ecx
push ecx
lea edx, [ebp - 0x12c]
lea ecx, [ebp - 0x1f0]
call fcn.004172c0
mov eax, ebx
mov byte [ebp - 0x290], bl
sar eax, 8
lea edx, [ebp - 0x290]
mov byte [ebp - 0x28f], al
lea ecx, [ebp - 0x1f0]
add esp, 4
mov eax, ebx
sar eax, 0x10
mov byte [ebp - 0x28e], al
push 3
call fcn.004172c0
mov eax, ebx
add esp, 8
and eax, 0x80003fff
jns 0x40b1c8
dec eax
or eax, 0xffffc000
inc eax
jne 0x40b20a
mov ecx, 0x27
lea esi, [ebp - 0x1f0]
lea edi, [ebp - 0x28c]
rep movsd dword es:[edi], dword [esi]
push ecx
lea edx, [ebp - 0x140]
lea ecx, [ebp - 0x28c]
call fcn.00417380
mov cl, byte [ebp - 0x130]
mov eax, ebx
cdq
add esp, 4
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov byte [ebp + eax - 0x24], cl
mov ecx, dword [ebp - 0x294]
inc ebx
cmp ebx, 0x40000
jl 0x40b170
push ecx
lea edx, [ebp - 0x154]
lea ecx, [ebp - 0x1f0]
call fcn.00417380
add esp, 4
xor edx, edx
mov ecx, dword [ebp + edx - 0x154]
mov eax, ecx
shr eax, 8
mov byte [ebp + edx - 0x13], al
mov eax, ecx
mov byte [ebp + edx - 0x14], cl
shr eax, 0x10
shr ecx, 0x18
mov byte [ebp + edx - 0x12], al
mov byte [ebp + edx - 0x11], cl
add edx, 4
cmp edx, 0x10
jl 0x40b234
mov ebx, dword [0x4db4d0]
mov ecx, 0x40
mov esi, dword [ebp - 0x298]
xor eax, eax
imul edx, ebx, 0x12c
lea edi, [edx + 0x4dc3f0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x14]
test ecx, ecx
setne al
movsw word es:[edi], word [esi]
mov byte [edx + 0x4dc4f2], al
cmp al, 1
jne 0x40b2a6
mov eax, dword [ecx]
mov dword [edx + 0x4dc4f3], eax
mov eax, dword [ecx + 4]
mov dword [edx + 0x4dc4f7], eax
movdqu xmm0, xmmword [ebp - 0x14]
lea eax, [ebx + 1]
mov ecx, pe_nt_image_headers32
and eax, 3
movdqu xmmword [edx + 0x4dc3d0], xmm0
mov dword [0x4db4d0], eax
lea eax, [ebp - 0x12c]
movdqu xmm0, xmmword [ebp - 0x24]
movdqu xmmword [edx + 0x4dc3e0], xmm0
mov byte [eax], 0
lea eax, [eax + 1]
dec ecx
jne 0x40b2d6
mov ecx, dword [ebp - 0x29c]
lea eax, [ebp - 0x24]
push eax
push 0x80
lea eax, [ebp - 0x14]
add ecx, 0x5e8
push eax
push dword [ebp + 8]
call fcn.00415170
pop edi
pop esi
mov ecx, 0x10
lea eax, [ebp - 0x14]
pop ebx
jmp 0x40b310
mov byte [eax], 0
lea eax, [eax + 1]
dec ecx
jne 0x40b310
mov ecx, 0x10
lea eax, [ebp - 0x24]
mov byte [eax], 0
lea eax, [eax + 1]
dec ecx
jne 0x40b321
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00493864
mov esp, ebp
pop ebp
ret 0x10