Function at 0x45af60
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x47c350]
xor eax, ebp
mov dword [ebp - 4], eax
mov byte [0x47f940], 0
mov eax, 4
imul ecx, eax, 0
mov dword [ecx + 0x47f988], 0
mov edx, 4
shl edx, 0
mov dword [edx + 0x47f988], 0
mov eax, 4
imul ecx, eax, 0
mov dword [ecx + 0x47f990], 0x67452301
mov edx, 4
shl edx, 0
mov dword [edx + 0x47f990], 0xefcdab89
mov eax, 4
shl eax, 1
mov dword [eax + 0x47f990], 0x98badcfe
mov ecx, 4
imul edx, ecx, 3
mov dword [edx + 0x47f990], 0x10325476
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x10]
movzx edx, byte [ecx]
test edx, edx
je 0x45b001
jmp 0x45afe9
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0045ae20
add esp, 8
movzx edx, byte [0x47f940]
test edx, edx
jne 0x45b0d0
push 8
push 0x47f988
lea eax, [ebp - 0xc]
push eax
call fcn.0045a180
add esp, 0xc
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [edx + 0x47f988]
shr eax, 3
xor edx, edx
mov ecx, 0x40
div ecx
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0x38
jae 0x45b063
mov edx, 0x38
sub edx, dword [ebp - 0x14]
mov dword [ebp - 0x18], edx
jmp 0x45b06e
mov eax, 0x78
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
push edx
push section..data
call fcn.0045ae20
add esp, 8
push 8
lea eax, [ebp - 0xc]
push eax
call fcn.0045ae20
add esp, 8
push 0x10
push 0x47f990
push 0x47f9a0
call fcn.0045a180
add esp, 0xc
push 0x40
push 0
push 0x47f948
call fcn.00460bd0
add esp, 0xc
push 8
push 0
push 0x47f988
call fcn.00460bd0
add esp, 0xc
mov byte [0x47f940], 1
movzx ecx, byte [0x47f940]
test ecx, ecx
jne 0x45b0e5
mov eax, 0x474489
jmp 0x45b21f
mov edx, 1
imul eax, edx, 0xf
movzx ecx, byte [eax + 0x47f9a0]
push ecx
mov edx, 1
imul eax, edx, 0xe
movzx ecx, byte [eax + 0x47f9a0]
push ecx
mov edx, 1
imul eax, edx, 0xd
movzx ecx, byte [eax + 0x47f9a0]
push ecx
mov edx, 1
imul eax, edx, 0xc
movzx ecx, byte [eax + 0x47f9a0]
push ecx
mov edx, 1
imul eax, edx, 0xb
movzx ecx, byte [eax + 0x47f9a0]
push ecx
mov edx, 1
imul eax, edx, 0xa
movzx ecx, byte [eax + 0x47f9a0]
push ecx
mov edx, 1
imul eax, edx, 9
movzx ecx, byte [eax + 0x47f9a0]
push ecx
mov edx, 1
shl edx, 3
movzx eax, byte [edx + 0x47f9a0]
push eax
mov ecx, 1
imul edx, ecx, 7
movzx eax, byte [edx + 0x47f9a0]
push eax
mov ecx, 1
imul edx, ecx, 6
movzx eax, byte [edx + 0x47f9a0]
push eax
mov ecx, 1
imul edx, ecx, 5
movzx eax, byte [edx + 0x47f9a0]
push eax
mov ecx, 1
shl ecx, 2
movzx edx, byte [ecx + 0x47f9a0]
push edx
mov eax, 1
imul ecx, eax, 3
movzx edx, byte [ecx + 0x47f9a0]
push edx
mov eax, 1
shl eax, 1
movzx ecx, byte [eax + 0x47f9a0]
push ecx
mov edx, 1
shl edx, 0
movzx eax, byte [edx + 0x47f9a0]
push eax
mov ecx, 1
imul edx, ecx, 0
movzx eax, byte [edx + 0x47f9a0]
push eax
push str._02x_02x_02x_02x__02x_02x__02x_02x__02x_02x__02x_02x_02x_02x_02x_02x
push 0x25
push 0x47f9b0
call fcn.00402280
add esp, 0x4c
mov ecx, 1
imul edx, ecx, 0x24
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x25
jae 0x45b20b
jmp 0x45b210
call fcn.0046171d
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x47f9b0], 0
mov eax, 0x47f9b0
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00460fe2
mov esp, ebp
pop ebp
ret