Function at 0x10014410
Capabilities:
Hash data with md5

Disassembly:
push 0xffffffffffffffff
push 0x1011c0f9
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
mov eax, dword [0x1016b2e8]
xor eax, esp
mov dword [esp + 0xa0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1016b2e8]
xor eax, esp
push eax
lea eax, [esp + 0xb8]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x40], eax
xor ebp, ebp
mov dword [esp + 0xc0], ebp
mov byte [esp + 0x1f], 0
mov dword [esp + 0x18], ebp
mov byte [esp + 0xc0], 1
mov eax, dword [esp + 0xcc]
mov esi, 0x10
cmp dword [esp + 0xe0], esi
jae 0x1001448e
lea eax, [esp + 0xcc]
push ebp
push eax
call fcn.10062018
add esp, 8
cmp eax, 0xffffffff
jne 0x100144d2
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x100144b2
push eax
call fcn.10062353
add esp, 4
mov dword [esp + 0x18], ebp
cmp dword [esp + 0xe0], esi
jb 0x100144cb
mov ecx, dword [esp + 0xcc]
push ecx
call fcn.100618cf
add esp, 4
xor al, al
jmp 0x10014774
push 2
push 0x10163dac
lea ecx, [esp + 0x28]
mov dword [esp + 0x40], 0xf
mov dword [esp + 0x3c], ebp
mov byte [esp + 0x2c], 0
call fcn.10002270
cmp dword [esp + 0xdc], ebp
jne 0x10014500
xor al, al
jmp 0x10014539
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x38], esi
jae 0x1001450e
lea ecx, [esp + 0x24]
mov eax, dword [esp + 0xcc]
cmp dword [esp + 0xe0], esi
jae 0x10014525
lea eax, [esp + 0xcc]
push ecx
push eax
lea edx, [esp + 0x20]
push edx
call fcn.100624aa
add esp, 0xc
test eax, eax
sete al
test al, al
sete bl
cmp dword [esp + 0x38], esi
jb 0x10014551
mov eax, dword [esp + 0x24]
push eax
call fcn.100618cf
add esp, 4
test bl, bl
jne 0x1001449d
lea esi, [esp + 0x18]
call fcn.10014a60
cmp eax, ebp
je 0x10014741
cmp eax, edi
mov esi, eax
jl 0x10014572
mov esi, edi
sub eax, esi
cmp eax, 0x400
mov edi, eax
jl 0x10014582
mov edi, 0x400
push 4
mov byte [esp + 0x43], 0
call fcn.10061972
add esp, 4
cmp eax, ebp
je 0x1001459d
lea edx, [esp + 0x20]
mov dword [eax], edx
jmp 0x1001459f
xor eax, eax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
mov byte [esp + 0xc0], 2
call fcn.10003830
lea eax, [edi + esi]
push eax
lea eax, [esp + 0x24]
mov byte [esp + 0xc4], 3
call fcn.10003840
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x2c]
mov byte [esp + 0xac], 0
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x44], 0x67452301
mov dword [esp + 0x48], 0xefcdab89
mov dword [esp + 0x4c], 0x98badcfe
mov dword [esp + 0x50], 0x10325476
je 0x10014635
cmp eax, ebp
ja 0x1001460c
call fcn.10061d20
mov eax, dword [esp + 0x2c]
cmp eax, ebp
je 0x10014635
cmp esi, 1
jb 0x10014635
mov ecx, dword [esp + 0x18]
cmp ecx, ebp
je 0x10014639
push ecx
push esi
push 1
push esi
push eax
call fcn.10062a21
mov ecx, dword [esp + 0x2c]
add esp, 0x14
jmp 0x1001463b
mov ecx, dword [esp + 0x18]
xor eax, eax
cmp eax, esi
je 0x1001464d
lea esi, [esp + 0x20]
call fcn.10002370
jmp 0x10014741
cmp edi, ebp
jle 0x100146b7
cmp ecx, ebp
je 0x100146b7
mov edx, edi
push 2
neg edx
push edx
push ecx
call fcn.10062792
add esp, 0xc
test eax, eax
jne 0x100146b7
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x2c]
je 0x10014680
cmp eax, ebp
ja 0x1001467c
call fcn.10061d20
mov eax, dword [esp + 0x2c]
add eax, esi
cmp eax, ebp
je 0x100146a3
cmp edi, 1
jb 0x100146a3
mov ecx, dword [esp + 0x18]
cmp ecx, ebp
je 0x100146a3
push ecx
push edi
push 1
push edi
push eax
call fcn.10062a21
add esp, 0x14
jmp 0x100146a5
xor eax, eax
cmp eax, edi
je 0x100146b7
lea esi, [esp + 0x20]
call fcn.10002370
jmp 0x10014741
mov esi, dword [esp + 0x30]
sub esi, dword [esp + 0x2c]
jne 0x100146c5
xor eax, eax
jmp 0x100146d2
cmp esi, ebp
ja 0x100146ce
call fcn.10061d20
mov eax, dword [esp + 0x2c]
push eax
mov eax, esi
lea ecx, [esp + 0x48]
call fcn.10017900
cmp byte [esp + 0xac], 0
jne 0x100146f9
lea esi, [esp + 0x44]
call fcn.100179a0
mov byte [esp + 0xac], 1
mov ecx, dword [esp + 0x40]
push 0x10
lea eax, [esp + 0xa0]
push eax
push 0x10
push ecx
call fcn.100618da
mov eax, dword [esp + 0x3c]
add esp, 0x10
mov byte [esp + 0x1f], 1
cmp eax, ebp
je 0x10014728
push eax
call fcn.100618cf
add esp, 4
mov edx, dword [esp + 0x20]
push edx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
call fcn.100618cf
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x10014756
push eax
call fcn.10062353
add esp, 4
mov dword [esp + 0x18], ebp
cmp dword [esp + 0xe0], 0x10
jb 0x10014770
mov eax, dword [esp + 0xcc]
push eax
call fcn.100618cf
add esp, 4
mov al, byte [esp + 0x1f]
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.10061731
add esp, 0xb0
ret