Function at 0x4154bd
Capabilities:
Hash data with md5

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x419074]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor esi, esi
mov dword [ebp - 0x30], edx
push edi
mov edi, dword [ebp + 0xc]
inc esi
mov ebx, ecx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x34], esi
call fcn.004160bf
cmp dword [0x41aecc], 0
je 0x415526
cmp dword [0x41af68], 0
jne 0x41580f
mov eax, dword [ebx + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x20], 0x67452301
mov dword [ebp - 0x1c], 0xefcdab89
mov dword [ebp - 0x18], 0x98badcfe
mov dword [ebp - 0x14], 0x10325476
mov dword [ebp - 0xc], eax
mov edx, esi
mov ecx, 0x800
call fcn.0041245c
mov ecx, dword [ebp + 8]
mov esi, eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x3c], esi
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov eax, ecx
sub eax, dword [0x419860]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x30]
mov dword [eax + 4], ecx
xor eax, eax
cmp dword [0x41af54], eax
je 0x41556f
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
cmp edx, eax
ja 0x41556f
cmp ecx, 0x718
jbe 0x41557f
mov ecx, dword [ebx + 8]
mov eax, ecx
mov edx, dword [ebx + 0xc]
or eax, edx
jne 0x41564b
mov edi, eax
mov dword [ebp - 0x24], edi
cmp edx, eax
ja 0x41558c
cmp ecx, eax
jbe 0x4155f6
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x40]
push eax
lea edx, [ebp - 0x2c]
call fcn.004133d0
mov edi, dword [ebp - 0x24]
lea eax, [esi + 0xe8]
push edi
push dword [ebp - 0x2c]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [0x41aecc], 0
je 0x4155ee
lea eax, [edi + 0x3f]
and eax, 0xffffffc0
mov dword [ebp - 0x28], eax
cmp eax, edi
je 0x4155e2
sub eax, edi
push eax
xor eax, eax
push eax
mov eax, dword [ebp - 0x2c]
add eax, edi
push eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x20]
push eax
call fcn.00417628
mov ecx, dword [ebp - 0x2c]
call fcn.004125b3
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
cmp edi, ecx
jne 0x41581b
xor edx, edx
cmp edx, eax
jne 0x41581b
push 3
pop eax
mov word [esi + 0x22], ax
xor edi, edi
mov eax, dword [ebx + 8]
mov dword [esi + 0xac], eax
mov eax, 0x800
add dword [0x419d9c], eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], edi
cmp dword [0x4195ac], edx
je 0x41569f
push dword [ebx + 4]
push 0x4072d4
call dword [sym.imp.msvcrt.dll_printf]
pop ecx
pop ecx
jmp 0x41569f
xor eax, eax
cmp dword [0x41af60], eax
je 0x415669
cmp dword [0x41af68], eax
je 0x415668
push 0x407334
push eax
jmp 0x415816
inc eax
mov ecx, dword [ebp - 0x30]
mov edx, edi
mov word [esi + 0x22], ax
xor eax, eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
mov dword [esi + 0xac], eax
lea eax, [ebp - 0x20]
push dword [ebx + 0xc]
push dword [ebx + 8]
push eax
push esi
call fcn.00415b3f
mov ecx, eax
mov dword [ebp - 0x34], ecx
test ecx, ecx
je 0x4157d9
xor edi, edi
cmp dword [0x41aecc], 0
mov dword [ebp - 0x24], edi
je 0x4157b1
lea eax, [ebp - 0x24]
mov ecx, 0x419594
push eax
push ebx
lea edx, [ebp - 0x20]
call fcn.00412bb1
test eax, eax
je 0x4157b1
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 0x20]
mov eax, dword [edx + 0x30]
inc dword [eax + 8]
mov eax, dword [edx + 0x30]
mov ecx, dword [ebx + 0x30]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 0x30]
mov dword [eax + 8], edi
mov eax, dword [edx + 0x30]
mov edx, 0x800
mov eax, dword [eax + 4]
mul edx
mov ecx, edx
mov dword [ebp - 0x24], eax
push ecx
push eax
mov edx, esi
mov dword [ebp - 0x28], ecx
call fcn.00411c06
inc word [esi + 0x30]
mov ecx, dword [esi + 0x40]
inc ecx
shl ecx, 0xb
add dword [0x41ad48], ecx
adc dword [0x41ad4c], edi
xor eax, eax
add dword [0x419d9c], ecx
inc eax
add dword [0x41ad40], eax
adc dword [0x41ad44], edi
cmp dword [0x41aed4], 0
je 0x41575e
mov ecx, dword [esi + 0x40]
add ecx, eax
mov eax, dword [esi + 0x44]
adc eax, edi
shld eax, ecx, 0xb
push eax
shl ecx, 0xb
push ecx
push dword [ebx + 4]
push 0x407360
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0x10
test dword [ebx + 0x14], 0x10000
je 0x4157a1
mov esi, dword [0x41912c]
mov edi, esi
push 0
pop eax
add edi, 0xffffffff
mov edx, eax
mov ecx, esi
not edi
adc edx, 0xffffffff
add ecx, 0x7fff
not edx
adc eax, eax
and edi, ecx
and edx, eax
xor eax, eax
push eax
push esi
push edx
push edi
call fcn.00417fb0
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
add ecx, eax
jmp 0x4157a4
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x28]
push dword [ebp - 0x24]
mov dword [eax], ecx
jmp 0x4157ca
mov ecx, dword [ebx + 0x30]
mov edx, 0x800
xor edi, edi
mov eax, dword [ecx + 4]
mul edx
inc edi
push edx
mov dword [ecx + 8], edi
mov word [esi + 0x30], di
push eax
mov edx, 0x800
mov ecx, esi
call fcn.004119d9
mov ecx, dword [ebp - 0x34]
cmp dword [0x41af4c], 0
je 0x4157fa
cmp dword [0x41af50], 0
jne 0x4157fa
mov eax, dword [esi + 0xec]
add eax, dword [0x419860]
mov dword [ebx + 0x10], eax
mov eax, ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00417930
mov esp, ebp
pop ebp
ret 8
push 0x4072a4
push 0
call fcn.00412812
push eax
push ecx
push edi
push 0x4072f0
push 0xffffffffffffffff
call fcn.00412812
int3