Function at 0x10044ad0
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x324
mov eax, dword [0x100dc008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [ebp - 0x31c], ebx
mov dword [ebp - 0x314], edi
cmp byte [ebx], 0
je 0x10044fdc
cmp byte [ebp + 0x14], 0
push esi
je 0x10044cb0
cmp dword [0x100e02ac], 0
jne 0x10044b18
call fcn.10042e80
push ebx
mov ecx, edi
call fcn.10045020
push 0x80
lea eax, [ebp - 0xa4]
mov dword [edi + 0x204], 0xd3a3b879
push 0
push eax
mov dword [edi + 0x208], 0x3f6d12f7
mov dword [edi + 0x20c], 0x7515a235
mov dword [edi + 0x210], 0xa4e7f123
call fcn.1008b230
mov ecx, ebx
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10044b63
sub ecx, edx
lea eax, [ebp - 0xa4]
push ecx
push eax
push ebx
call dword [sym.imp.USER32.dll_CharToOemBuffA]
lea ecx, [ebx + 1]
nop
mov al, byte [ebx]
inc ebx
test al, al
jne 0x10044b80
mov edx, edi
sub ebx, ecx
mov ecx, 0x40
mov dword [ebp - 0x31c], ebx
mov esi, 0x100dce20
lea eax, [edx + 0x104]
mov edi, eax
mov dword [ebp - 0x320], eax
rep movsd dword es:[edi], dword [esi]
xor esi, esi
mov dword [ebp - 0x318], esi
xor edi, edi
mov dword [ebp - 0x310], edi
test ebx, ebx
jle 0x10044c5f
movzx eax, byte [ebp + edi - 0xa4]
mov ebx, 1
movzx ecx, byte [ebp + edi - 0xa3]
sub eax, esi
add ecx, esi
movzx eax, al
movzx ecx, cl
movzx eax, byte [eax*4 + 0x100e02a8]
movzx ecx, byte [ecx*4 + 0x100e02a8]
mov dword [ebp - 0x324], ecx
cmp eax, ecx
je 0x10044c48
nop dword [eax]
lea ecx, [ebx + eax]
add ecx, edi
lea ebx, [ebx + 1]
mov edi, dword [ebp - 0x320]
movzx esi, cl
mov cl, byte [esi + edx + 0x104]
add esi, edx
mov dl, byte [edx + eax + 0x104]
mov byte [edi + eax], cl
inc eax
mov edi, dword [ebp - 0x310]
movzx eax, al
mov byte [esi + 0x104], dl
mov edx, dword [ebp - 0x314]
cmp eax, dword [ebp - 0x324]
jne 0x10044c00
mov esi, dword [ebp - 0x318]
mov ebx, dword [ebp - 0x31c]
add edi, 2
mov dword [ebp - 0x310], edi
cmp edi, ebx
jl 0x10044bc3
inc esi
mov dword [ebp - 0x318], esi
cmp esi, 0x100
jl 0x10044bb3
xor esi, esi
test ebx, ebx
jle 0x10044fdb
nop dword [eax]
lea eax, [ebp - 0xa4]
mov ecx, edx
add eax, esi
push eax
call fcn.10044730
mov edx, dword [ebp - 0x314]
add esi, 0x10
cmp esi, ebx
jl 0x10044c80
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1007bfb0
mov esp, ebp
pop ebp
ret 0x14
xor eax, eax
xor esi, esi
mov dword [ebp - 0x310], eax
nop word [eax + eax]
mov ecx, ebx
lea eax, [esi + 0x100e07e8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10044ce8
test dl, dl
je 0x10044ce4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10044ce8
add eax, 2
add ecx, 2
test dl, dl
jne 0x10044cc8
xor eax, eax
jmp 0x10044ced
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10044d2f
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jne 0x10044d02
cmp byte [esi + 0x100e0868], cl
je 0x10044d20
jmp 0x10044d2f
cmp byte [esi + 0x100e0868], 0
je 0x10044d2f
mov eax, dword [esi + 0x100e0869]
cmp eax, dword [ecx]
jne 0x10044d2f
mov eax, dword [esi + 0x100e086d]
cmp eax, dword [ecx + 4]
jne 0x10044d2f
mov eax, dword [ebp + 0x18]
cmp byte [esi + 0x100e0871], al
je 0x10044fee
inc dword [ebp - 0x310]
add esi, 0xaa
cmp esi, 0x2a8
jb 0x10044cc0
push 0x7f
lea eax, [ebp - 0x1a8]
push eax
push 0xffffffffffffffff
push ebx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor eax, eax
lea edx, [ebp - 0x2b0]
push ecx
lea ecx, [ebp - 0x1a8]
mov word [ebp - 0xaa], ax
call fcn.10043040
xor ecx, ecx
lea eax, [ebp - 0x1a8]
add esp, 4
cmp word [ebp - 0x1a8], cx
je 0x10044d9a
nop dword [eax]
lea eax, [eax + 2]
inc ecx
cmp word [eax], 0
jne 0x10044d90
lea edx, [ecx + ecx]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x318], edx
test ecx, ecx
je 0x10044dc6
mov eax, dword [ecx]
mov dword [ebp + edx - 0x2b0], eax
mov eax, dword [ecx + 4]
mov dword [ebp + edx - 0x2ac], eax
add edx, 8
mov dword [ebp - 0x318], edx
mov dword [ebp - 0x30c], 0x67452301
xor ebx, ebx
mov dword [ebp - 0x308], 0xefcdab89
mov dword [ebp - 0x304], 0x98badcfe
mov dword [ebp - 0x300], 0x10325476
mov dword [ebp - 0x2fc], 0xc3d2e1f0
mov dword [ebp - 0x2f4], 0
mov dword [ebp - 0x2f8], 0
nop
push dword [ebp + 0x18]
lea ecx, [ebp - 0x30c]
push edx
lea edx, [ebp - 0x2b0]
call fcn.10049410
push dword [ebp + 0x18]
mov eax, ebx
mov byte [ebp - 0x310], bl
sar eax, 8
lea edx, [ebp - 0x310]
mov byte [ebp - 0x30f], al
lea ecx, [ebp - 0x30c]
mov eax, ebx
sar eax, 0x10
push 3
mov byte [ebp - 0x30e], al
call fcn.10049410
mov eax, ebx
add esp, 0x10
and eax, 0x80003fff
jns 0x10044e6a
dec eax
or eax, 0xffffc000
inc eax
jne 0x10044eac
push dword [ebp + 0x18]
mov ecx, 0x17
lea esi, [ebp - 0x30c]
lea edi, [ebp - 0x80]
rep movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x80]
call fcn.100494d0
add esp, 4
mov ecx, ebx
test ecx, ecx
jns 0x10044e99
add ecx, 0x3fff
sar ecx, 0xe
mov edi, dword [ebp - 0x314]
mov al, byte [ebp - 8]
mov byte [ecx + edi + 0x22f], al
mov edx, dword [ebp - 0x318]
inc ebx
cmp ebx, 0x40000
jl 0x10044e10
push dword [ebp + 0x18]
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x30c]
call fcn.100494d0
mov ebx, dword [ebp - 0x31c]
lea edx, [edi + 0x220]
add esp, 4
xor esi, esi
mov ecx, dword [ebp + esi*4 - 0x18]
lea edx, [edx + 4]
mov eax, ecx
mov byte [edx - 5], cl
shr eax, 8
inc esi
mov byte [edx - 4], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [edx - 3], al
mov byte [edx - 2], cl
cmp esi, 4
jl 0x10044ee1
mov esi, dword [0x100e06a8]
imul edx, esi, 0xaa
mov eax, edx
sub eax, ebx
lea ecx, [eax + 0x100e07e8]
nop dword [eax]
mov al, byte [ebx]
lea ebx, [ebx + 1]
mov byte [ebx + ecx - 1], al
test al, al
jne 0x10044f20
mov ecx, dword [ebp + 0xc]
xor eax, eax
test ecx, ecx
setne al
mov byte [edx + 0x100e0868], al
cmp al, 1
jne 0x10044f52
mov eax, dword [ecx]
mov dword [edx + 0x100e0869], eax
mov eax, dword [ecx + 4]
mov dword [edx + 0x100e086d], eax
mov eax, dword [ebp + 0x18]
lea ebx, [edi + 0x21f]
mov byte [edx + 0x100e0871], al
lea eax, [esi + 1]
movups xmm0, xmmword [ebx]
and eax, 3
mov dword [0x100e06a8], eax
movups xmmword [edx + 0x100e07c8], xmm0
movups xmm0, xmmword [edi + 0x22f]
movups xmmword [edx + 0x100e07d8], xmm0
mov dword [edi], 1
xor esi, esi
nop dword [eax]
mov eax, esi
lea ecx, [ebp - 0x24]
and eax, 3
mov edx, esi
add ecx, eax
shr edx, 2
mov al, byte [ebx + esi]
inc esi
mov byte [ecx + edx*4], al
cmp esi, 0x10
jb 0x10044f90
lea ecx, [edi + 4]
mov edx, 0x10
mov al, byte [ecx + 0x22b]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
sub edx, 1
jne 0x10044fb3
lea eax, [ebp - 0x24]
mov ecx, edi
push eax
call fcn.10043500
cmp dword [edi], 1
jne 0x10044fdb
mov ecx, edi
call fcn.10043680
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.1007bfb0
mov esp, ebp
pop ebp
ret 0x14
imul eax, dword [ebp - 0x310], 0xaa
lea ebx, [edi + 0x21f]
movups xmm0, xmmword [eax + 0x100e07c8]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [eax + 0x100e07d8]
movups xmmword [edi + 0x22f], xmm0
jmp 0x10044f84