Function at 0x414db0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xac
mov eax, dword [0x48e1e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
cmp edi, 0x13a
ja 0x414e8e
je case.0x414ded.39
lea eax, [edi - 2]
cmp eax, 0x6e
ja case.0x414ded.6
movzx eax, byte [eax + 0x4150c4]
jmp dword [eax*4 + 0x4150a0]
mov eax, 0xfffffffe
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044a31d
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffd
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044a31d
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffc
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044a31d
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffb
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044a31d
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffa
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044a31d
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffff9
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044a31d
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffff8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044a31d
mov esp, ebp
pop ebp
ret
cmp edi, 0x4c8
ja 0x414f26
je 0x414f10
cmp edi, 0x45d
je case.0x414ded.21
push 0x22
push str.PlatformFile.UnknownErrors.Windows
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x64], 0xf
mov dword [ebp - 0x68], 0
mov byte [ebp - 0x78], 0
call fcn.00404460
cmp dword [ebp - 0x64], 0x10
lea ebx, [ebp - 0x78]
mov eax, dword [ebp - 0x68]
cmovae ebx, dword [ebp - 0x78]
mov esi, dword [0x490bd8]
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x94], eax
test esi, esi
je 0x414ff2
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x490bdc], 0
jne 0x414f4b
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x414ff2
mov eax, 0xfffffff6
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044a31d
mov esp, ebp
pop ebp
ret
lea eax, [edi - 0x570]
cmp eax, 1
ja case.0x414ded.6
mov eax, 0xfffffff0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044a31d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x7c]
lea edx, [ebp - 0x84]
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0x67452301
mov dword [ebp - 0x5c], 0xefcdab89
mov dword [ebp - 0x58], 0x98badcfe
mov dword [ebp - 0x54], 0x10325476
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], eax
call fcn.004205a0
lea edx, [ebp - 0x60]
lea ecx, [ebp - 0xa8]
call fcn.004206c0
push dword [ebp - 0xa4]
push dword [ebp - 0xa8]
call fcn.0041f280
mov ebx, dword [0x490bdc]
add esp, 8
mov dword [ebp - 0x90], eax
mov ecx, ebx
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], edx
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.0041ecc0
mov eax, dword [ebp - 0x7c]
push esi
cmp dword [ebx], eax
jne 0x414fe5
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x414ff2
mov ebx, dword [eax + 0x18]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebx, ebx
jne 0x41501c
push 0x98
call fcn.0044a07a
add esp, 4
lea ecx, [ebp - 0x78]
push ecx
mov ecx, eax
call fcn.0041db00
mov ecx, dword [eax + 0x1c]
or ecx, 1
mov dword [eax + 0x1c], ecx
mov ecx, eax
call fcn.0041ea30
mov ebx, eax
mov eax, dword [ebp - 0x64]
cmp eax, 0x10
jb 0x415057
mov ecx, dword [ebp - 0x78]
inc eax
cmp eax, 0xffffffff
ja 0x415085
cmp eax, 0x1000
jb 0x41504e
test cl, 0x1f
jne 0x41508a
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x41508f
sub ecx, eax
cmp ecx, 4
jb 0x415094
cmp ecx, 0x23
ja 0x415099
mov ecx, eax
push ecx
call fcn.0044a0ad
add esp, 4
mov dword [ebp - 0x64], 0xf
mov ecx, ebx
mov dword [ebp - 0x68], 0
mov byte [ebp - 0x78], 0
mov eax, dword [ebx]
push edi
call dword [eax + 0x10]
mov ecx, dword [ebp - 4]
or eax, 0xffffffff
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0044a31d
mov esp, ebp
pop ebp
ret
call fcn.0044fee1
call fcn.0044fee1
call fcn.0044fee1
call fcn.0044fee1
call fcn.0044fee1
nop
and byte [esi + 0x41], cl
add byte [esi + ecx*2 + 65], cl
add byte [esi], dh
dec esi
inc ecx
add byte [edx + 0x4e], ah
inc ecx
add byte [0xf400414f], dh
dec ebp
inc ecx
add byte [eax + 0x4e], bh
inc ecx
add byte [edx], cl
dec esi
inc ecx
add byte [eax + 0x414e], ch
add byte [ecx], al
add cl, byte [eax]
or byte [ebx], al
or byte [eax], cl
or byte [eax], cl
or byte [ebx], al
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
add al, 8
or byte [eax], cl
or byte [eax], cl
add al, 8
or byte [eax], cl
or byte [134744072], al
or byte [eax], cl
push es
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax + ecx], al
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [edi], al
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [esi], al
int3