Function at 0x408c70
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42caea
mov eax, dword fs:[0]
push eax
sub esp, 0x1b8
mov eax, dword [0x435080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor ebx, ebx
mov edi, 0xf
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x14], bx
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x5c], ebx
mov byte [ebp - 0x6c], bl
mov dword [ebp - 4], ebx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x34], bl
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 2
call fcn.0040f2e0
test al, al
jne 0x408cfe
lea esi, [ebp - 0x18]
call fcn.0040f040
test al, al
jne 0x408cfe
call fcn.0040f170
mov byte [ebp - 0x1b9], bl
test al, al
je 0x408d05
mov byte [ebp - 0x1b9], 1
lea esi, [ebp - 0x50]
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x6c]
call fcn.0040eec0
mov byte [ebp - 0x1ba], al
cmp byte [ebp - 0x1b9], bl
je 0x408f66
lea ecx, [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x18]
call fcn.004089a0
mov byte [ebp - 4], 3
cmp byte [ebp - 0x1ba], bl
je 0x408e7f
lea edx, [ebp - 0x6c]
push edx
lea eax, [ebp - 0x114]
push eax
call fcn.0040cda0
add esp, 8
mov ecx, eax
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 4
call fcn.0040ce50
mov ecx, eax
lea eax, [ebp - 0x34]
lea ebx, [ebp - 0xdc]
mov byte [ebp - 4], 5
call fcn.0040ce90
mov ecx, eax
lea eax, [ebp - 0xc0]
mov byte [ebp - 4], 6
call fcn.0040ce50
mov ecx, eax
mov eax, esi
lea ebx, [ebp - 0xa4]
mov byte [ebp - 4], 7
call fcn.0040ce90
xor ebx, ebx
push ebx
push eax
or eax, 0xffffffff
lea esi, [ebp - 0x88]
mov byte [ebp - 4], 8
call fcn.00403e70
mov esi, 0x10
cmp dword [ebp - 0x90], esi
jb 0x408dd2
mov ecx, dword [ebp - 0xa4]
push ecx
call fcn.00410f3b
add esp, 4
mov edi, 0xf
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x94], ebx
mov byte [ebp - 0xa4], bl
cmp dword [ebp - 0xac], esi
jb 0x408e00
mov edx, dword [ebp - 0xc0]
push edx
call fcn.00410f3b
add esp, 4
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xb0], ebx
mov byte [ebp - 0xc0], bl
cmp dword [ebp - 0xc8], esi
jb 0x408e29
mov eax, dword [ebp - 0xdc]
push eax
call fcn.00410f3b
add esp, 4
mov dword [ebp - 0xc8], edi
mov dword [ebp - 0xcc], ebx
mov byte [ebp - 0xdc], bl
cmp dword [ebp - 0xe4], esi
jb 0x408e52
mov ecx, dword [ebp - 0xf8]
push ecx
call fcn.00410f3b
add esp, 4
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0xe8], ebx
mov byte [ebp - 0xf8], bl
cmp dword [ebp - 0x100], esi
jb 0x408e7b
mov edx, dword [ebp - 0x114]
push edx
call fcn.00410f3b
add esp, 4
xor ebx, ebx
jmp 0x408e84
mov esi, 0x10
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x1b8], 0x67452301
mov dword [ebp - 0x1b4], 0xefcdab89
mov dword [ebp - 0x1b0], 0x98badcfe
mov dword [ebp - 0x1ac], 0x10325476
mov dword [ebp - 0x1a8], ebx
mov dword [ebp - 0x1a4], ebx
mov dword [ebp - 0x1a0], ebx
cmp dword [ebp - 0x74], esi
jae 0x408ecf
lea eax, [ebp - 0x88]
mov ecx, dword [ebp - 0x78]
push ecx
push eax
lea edi, [ebp - 0x1b8]
call fcn.0040dd70
mov edx, dword [ebp - 0x1c0]
push edx
mov esi, edi
call fcn.0040de30
mov esi, 0x10
add esp, 0xc
cmp dword [ebp - 0x74], esi
jb 0x408f09
mov eax, dword [ebp - 0x88]
push eax
call fcn.00410f3b
add esp, 4
mov edi, 0xf
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x78], ebx
mov byte [ebp - 0x88], bl
cmp dword [ebp - 0x3c], esi
jb 0x408f2b
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.00410f3b
add esp, 4
mov byte [ebp - 0x50], bl
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], edi
cmp dword [ebp - 0x20], esi
jb 0x408f45
mov edx, dword [ebp - 0x34]
push edx
call fcn.00410f3b
add esp, 4
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x34], bl
cmp dword [ebp - 0x58], esi
jb 0x408f5f
mov eax, dword [ebp - 0x6c]
push eax
call fcn.00410f3b
add esp, 4
mov al, 1
jmp 0x409034
mov esi, dword [ebp - 0x1c0]
push esi
call fcn.00409060
test al, al
je 0x408f7d
mov esi, 0x10
jmp 0x408f1a
mov edi, esi
call fcn.00409390
test al, al
je 0x408fe3
mov ecx, esi
push ecx
call fcn.00409270
mov esi, 0x10
cmp dword [ebp - 0x3c], esi
jb 0x408fa6
mov edx, dword [ebp - 0x50]
push edx
call fcn.00410f3b
add esp, 4
mov edi, 0xf
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
cmp dword [ebp - 0x20], esi
jb 0x408fc5
mov eax, dword [ebp - 0x34]
push eax
call fcn.00410f3b
add esp, 4
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x34], bl
cmp dword [ebp - 0x58], esi
jb 0x408f5f
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.00410f3b
add esp, 4
mov al, 1
jmp 0x409034
mov esi, 0x10
cmp dword [ebp - 0x3c], esi
jb 0x408ff9
mov edx, dword [ebp - 0x50]
push edx
call fcn.00410f3b
add esp, 4
mov edi, 0xf
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
cmp dword [ebp - 0x20], esi
jb 0x409018
mov eax, dword [ebp - 0x34]
push eax
call fcn.00410f3b
add esp, 4
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x34], bl
cmp dword [ebp - 0x58], esi
jb 0x409032
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.00410f3b
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00410f46
mov esp, ebp
pop ebp
ret 4