Function at 0x1001b630
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10061092
mov eax, dword fs:[0]
push eax
sub esp, 0x158
mov eax, dword [0x10073980]
xor eax, ebp
mov dword [ebp - 0x18], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
lea eax, [ebp - 0x164]
xor edi, edi
push eax
mov esi, ecx
mov ebx, edx
mov byte [ebp - 0xc5], 0
mov dword [ebp - 4], edi
call fcn.1001d2b0
push esi
lea esi, [ebp - 0x15c]
mov byte [ebp - 4], 1
call fcn.1001f5f0
cmp eax, edi
jne 0x1001b6ba
mov ecx, dword [ebp - 0x164]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp + ecx - 0x15c]
lea ecx, [ebp + ecx - 0x164]
or eax, 2
cmp dword [ecx + 0x28], edi
jne 0x1001b6b3
or eax, 4
push edi
push eax
call fcn.1001b330
cmp dword [ebp - 0x110], edi
je 0x1001b873
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0xbc], 0x67452301
mov dword [ebp - 0xb8], 0xefcdab89
mov dword [ebp - 0xb4], 0x98badcfe
mov dword [ebp - 0xb0], 0x10325476
lea ebx, [ebx]
mov edx, dword [ebp - 0x164]
mov eax, dword [edx + 4]
mov eax, dword [ebp + eax - 0x15c]
cmp eax, edi
jne 0x1001b742
test al, 1
jne 0x1001b742
lea ecx, [ebp - 0x5c]
push ecx
lea edx, [ebp - 0x164]
push edx
call fcn.1001f4b0
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x160]
lea esi, [ebp - 0xc4]
call fcn.10006080
add esp, 4
jmp 0x1001b700
lea esi, [ebp - 0x15c]
call fcn.1001f6d0
cmp eax, edi
jne 0x1001b77a
mov ecx, dword [ebp - 0x164]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp + ecx - 0x15c]
lea ecx, [ebp + ecx - 0x164]
or eax, 2
cmp dword [ecx + 0x28], edi
jne 0x1001b773
or eax, 4
push edi
push eax
call fcn.1001b330
lea eax, [ebp - 0xc4]
call fcn.10006190
xor eax, eax
mov ecx, 8
lea esi, [ebp - 0x6c]
lea edi, [ebp - 0x5c]
rep movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x3c], 0
mov dword [ebp - 0x3b], eax
mov dword [ebp - 0x37], eax
mov dword [ebp - 0x33], eax
mov dword [ebp - 0x2f], eax
mov dword [ebp - 0x2b], eax
mov dword [ebp - 0x27], eax
mov dword [ebp - 0x23], eax
mov dword [ebp - 0x1f], eax
xor esi, esi
cmp esi, 0x10
jge 0x1001b7d6
movzx edx, byte [ebp + esi - 0x5c]
push edx
push 0x1006b990
push 3
lea eax, [ebp + esi*2 - 0x3c]
push 3
push eax
call fcn.1002d199
add esp, 0x14
inc esi
jmp 0x1001b7b2
xor esi, esi
cmp dword [ebp + 8], esi
je 0x1001b800
lea ecx, [ecx]
cmp esi, 0x20
jge 0x1001b86c
movsx ecx, byte [ebp + esi - 0x3c]
push ecx
call fcn.10030660
add esp, 4
mov byte [ebx + esi], al
inc esi
jmp 0x1001b7e0
cmp esi, 0x20
jge 0x1001b818
movsx edx, byte [ebx + esi]
push edx
call fcn.10030660
add esp, 4
mov byte [ebx + esi], al
inc esi
jmp 0x1001b800
mov eax, 0x20
lea ecx, [ebp - 0x3c]
mov edx, ebx
cmp eax, 4
jb 0x1001b86c
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x1001b838
sub eax, 4
add ecx, 4
add edx, 4
jmp 0x1001b822
movzx eax, byte [edx]
movzx esi, byte [ecx]
sub eax, esi
jne 0x1001b864
movzx eax, byte [edx + 1]
movzx esi, byte [ecx + 1]
sub eax, esi
jne 0x1001b864
movzx eax, byte [edx + 2]
movzx esi, byte [ecx + 2]
sub eax, esi
jne 0x1001b864
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
sar eax, 0x1f
or eax, 1
jne 0x1001b873
mov byte [ebp - 0xc5], 1
mov eax, dword [ebp - 0x164]
mov ecx, dword [eax + 4]
lea edx, [ebp - 0x10c]
mov dword [ebp - 0xd4], edx
mov dword [ebp + ecx - 0x164], 0x1006be80
lea edx, [ebp - 0x15c]
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0x15c], 0x1006be44
mov byte [ebp - 4], 3
cmp byte [ebp - 0x114], 0
je 0x1001b8bd
mov esi, edx
call fcn.1001f6d0
mov dword [ebp - 0x15c], 0x1006be00
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x124]
mov ebx, eax
test eax, eax
je 0x1001b927
mov edi, dword [eax]
test edi, edi
je 0x1001b91e
push 0
lea ecx, [ebp - 0xcc]
call fcn.1004d5c1
mov eax, dword [edi + 4]
test eax, eax
jbe 0x1001b8fa
cmp eax, 0xffffffff
jae 0x1001b8fa
dec eax
mov dword [edi + 4], eax
mov esi, dword [edi + 4]
neg esi
sbb esi, esi
not esi
lea ecx, [ebp - 0xcc]
and esi, edi
call int.1004d5e9
test esi, esi
je 0x1001b91e
mov eax, dword [esi]
mov edx, dword [eax]
push 1
mov ecx, esi
call edx
push ebx
call fcn.1002d0e4
add esp, 4
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 2
call fcn.1004d61a
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x164]
mov ecx, dword [eax + 4]
lea edx, [ebp - 0x10c]
mov dword [ebp + ecx - 0x164], 0x1006be3c
push edx
mov dword [ebp - 0x10c], 0x1006bdf0
call fcn.1004d1c6
add esp, 4
mov al, byte [ebp - 0xc5]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.1002d0ef
mov esp, ebp
pop ebp
ret