Function at 0x429be0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4a349d
push eax
mov dword fs:[0], esp
sub esp, 0x78
push ebx
push esi
mov esi, ecx
push edi
cmp byte [esi + 0x84], 0
jne 0x429f31
mov ecx, dword [esi + 0x40]
lea edx, [ebp - 0x68]
call fcn.00431e00
test al, al
je 0x429f31
mov eax, dword [ebp - 0x60]
cmp eax, dword [esi + 8]
jne 0x429c51
mov eax, dword [ebp - 0x5c]
cmp eax, dword [esi + 0xc]
jne 0x429c51
push 1
mov ecx, esi
call fcn.00429ac0
mov ecx, esi
call fcn.00429f50
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x40]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x14], 0
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
push eax
lea edx, [ebp - 0x14]
movlpd qword [ebp - 0x28], xmm0
call fcn.00429930
mov bl, al
add esp, 0xc
mov byte [ebp - 0xd], bl
test bl, bl
je 0x429dfd
mov eax, dword [esi + 8]
cmp eax, dword [ebp - 0x28]
jne 0x429df9
mov eax, dword [esi + 0xc]
cmp eax, dword [ebp - 0x24]
jne 0x429df9
mov eax, dword [esi + 0x14]
cdq
mov ecx, eax
mov eax, dword [ebp - 0x18]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jne 0x429df9
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x80]
mov dword [esi + 0x18], eax
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x78], 0x67452301
mov dword [ebp - 0x74], 0xefcdab89
mov dword [ebp - 0x70], 0x98badcfe
mov dword [ebp - 0x6c], 0x10325476
push dword [eax + 8]
push dword [eax]
call fcn.004025e0
lea eax, [esi + 0x74]
push eax
lea ecx, [ebp - 0x80]
call fcn.00402710
cmp dword [esi + 0x18], 0
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x10], eax
je 0x429de1
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub edi, 1
cdq
push edx
push eax
sbb ecx, 0
push ecx
push edi
call fcn.004a0ab0
inc eax
mov edi, dword [esi + 0x18]
mov ecx, 0x40
cdq
idiv ecx
mov edi, dword [edi]
xor ecx, ecx
mov ebx, edx
mov edx, eax
mov dword [ebp - 0x1c], edx
test edx, edx
jle 0x429d66
mov eax, dword [edi + ecx*8]
and eax, dword [edi + ecx*8 + 4]
cmp eax, 0xffffffff
jne 0x429de1
inc ecx
cmp ecx, edx
jl 0x429d51
test ebx, ebx
je 0x429dcb
mov eax, ebx
and eax, 0x80000007
jns 0x429d78
dec eax
or eax, 0xfffffff8
inc eax
mov dword [ebp - 0x18], eax
xor ecx, ecx
mov eax, ebx
cdq
and edx, 7
lea ebx, [edx + eax]
mov eax, dword [ebp - 0x1c]
sar ebx, 3
test ebx, ebx
jle 0x429daf
lea edx, [eax*8]
lea eax, [edi + edx]
nop word [eax + eax]
cmp byte [eax + ecx], 0xff
jne 0x429de1
inc ecx
cmp ecx, ebx
jl 0x429da0
mov eax, edx
jmp 0x429db2
shl eax, 3
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x429dcb
add eax, edi
or dl, 0xff
shl dl, cl
not dl
mov al, byte [eax + ebx]
and al, dl
cmp al, dl
jne 0x429de1
mov al, 1
mov byte [esi + 0x1c], al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor al, al
mov byte [esi + 0x1c], al
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ebp - 0xd], 0
mov eax, dword [0x4ca040]
mov ecx, 0x4ca040
push dword [ebp - 0x14]
call dword [eax + 0xc]
cmp dword [esi + 0x18], 0
je 0x429e5d
mov ecx, 0x4cfeb8
mov dword [ebp - 0x28], 0x4cfeb8
call fcn.00436390
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0
cmp eax, 1
jne 0x429e4c
push 0
push 0x4b362c
push 0x4b362c
push str.mLocalityMapNULL
call fcn.00430100
add esp, 0x10
mov ecx, 0x4cfeb8
mov dword [ebp - 4], 0xffffffff
call fcn.004363a0
mov ecx, dword [esi + 0x40]
lea edx, [ebp - 0x68]
call fcn.00431e00
test al, al
je 0x429f1d
mov eax, dword [esi + 0x10]
mov ecx, dword [0x4ca040]
cdq
mov edi, eax
add edi, dword [esi + 8]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x1c], ecx
mov ecx, edx
adc ecx, dword [esi + 0xc]
sub edi, 1
push edx
push eax
sbb ecx, 0
push ecx
push edi
call fcn.004a0ab0
cdq
mov ecx, 0x4ca040
mov edi, edx
mov ebx, eax
push edi
push ebx
call dword [ebp - 0x1c]
mov dword [esi + 0x18], eax
mov ecx, 0x4ca040
mov byte [esi + 0x1c], 0
mov byte [esi + 0x86], 0
push dword [esi + 0x18]
mov eax, dword [0x4ca040]
push edi
push ebx
push dword [ebp - 0x68]
call dword [eax + 4]
mov dword [esi + 0x18], eax
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x40]
call eax
test al, al
jne 0x429f1d
mov eax, dword [esi + 0x18]
test eax, eax
je 0x429eee
mov eax, dword [eax + 8]
cdq
add eax, dword [esi + 8]
adc edx, dword [esi + 0xc]
jmp 0x429ef4
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
add eax, 0x18
mov dword [esi + 0x48], eax
adc edx, 0
mov dword [esi + 0x4c], edx
cmp byte [esi + 0x60], 0
jne 0x429c39
mov ecx, dword [esi + 0x40]
lea edx, [esi + 0x48]
call fcn.00431f20
test al, al
jne 0x429c39
mov al, byte [ebp - 0xd]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0xc]
xor al, al
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret