Function at 0x57f000
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov ebx, ecx
mov eax, dword [0x80e040]
xor eax, ebp
mov dword [esp + 0x88], eax
mov eax, dword [ecx + 0x10]
mov eax, dword [eax]
mov ecx, dword [ecx]
test eax, eax
mov dword [esp + 0xc], ebx
mov dword [esp + 4], ecx
mov dword [esp + 0x24], eax
jne 0x57f250
mov edx, dword [ebx + 8]
cmp edx, 0x3ffffff1
jae 0x57fa5a
lea esi, [edx + 0x17]
and esi, 0x7ffffff8
cmp esi, 0x11
jb 0x57f9de
cmp esi, dword [ecx + 0x10]
ja 0x57f9de
mov dword [esp + 0x18], edx
mov eax, dword [ebx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 4]
mov eax, dword [eax + 0x28]
mov dl, byte [ecx + 0x1c]
test dl, 1
jne 0x57fa6c
mov edi, dword [ecx + 4]
mov edx, dword [edi + 0x24]
test dl, 1
jne 0x57fa56
mov dword [esp + 0x14], 0x781f4c
mov dword [esp + 0x10], esi
add esi, eax
mov ebx, dword [ecx + 0xc]
cmp esi, ebx
ja 0x57fa30
cmp eax, 0x40
jb 0x57fa61
mov edx, eax
and edx, 7
jne 0x57fa61
mov edx, eax
add edx, 0x10
jb 0x57fa61
cmp edx, ebx
ja 0x57fa61
mov edx, edi
add edx, eax
mov dword [esp + 0x20], edx
je 0x57fa61
mov ecx, dword [ecx + 0x10]
mov dword [esp + 8], eax
xor edx, edx
div ecx
sub ecx, edx
mov eax, ecx
sub eax, dword [esp + 0x10]
jb 0x57fa95
cmp eax, 0x17
jbe 0x57f9c9
mov eax, dword [esp + 8]
lock cmpxchg dword [edi + 0x28], esi
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x20]
jne 0x57fffc
mov dword [esp + 8], eax
cmp dword [edi], 0
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
jne 0x57fa61
cmp dword [edi + 4], 0
jne 0x57fa61
mov eax, dword [edi + 8]
test eax, eax
jne 0x57fa61
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x57fa61
mov eax, dword [ecx + 0x14]
lea edx, [edi + eax]
add edx, 0xf
neg eax
and eax, edx
lea edx, [edi + esi]
cmp edx, eax
ja 0x57f9a6
mov dword [edi], esi
mov dword [edi + 4], 0xc8799269
mov eax, dword [esp + 0x1c]
mov dword [edi + 8], eax
mov edx, dword [esp + 8]
test edx, edx
je 0x57fa6c
mov esi, dword [ecx + 0x20]
test esi, esi
jne 0x5802dd
mov ecx, dword [ebx + 0x10]
xor eax, eax
lock cmpxchg dword [ecx], edx
mov ecx, dword [ebx]
mov dword [esp + 4], ecx
jne 0x5802fb
mov dword [esp + 8], edx
cmp edx, 0x40
jb 0x57f25f
mov eax, dword [esp + 8]
and eax, 7
jne 0x57f25f
mov eax, dword [ebx + 8]
lea edi, [eax + 0x10]
mov ecx, dword [esp + 8]
add ecx, edi
jb 0x57f25f
mov edx, dword [esp + 4]
mov esi, dword [edx + 0xc]
cmp ecx, esi
ja 0x57f25f
mov edx, dword [ebx + 4]
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 4]
mov ebx, dword [esp + 8]
mov ebx, dword [ecx + ebx + 4]
cmp ebx, 0xc8799269
mov ebx, dword [esp + 0xc]
jne 0x57f25f
add ecx, dword [esp + 8]
mov ebx, dword [ecx]
cmp ebx, edi
mov ebx, dword [esp + 0xc]
jb 0x57f25f
mov edi, dword [ecx]
add edi, dword [esp + 8]
jb 0x57f25f
cmp edi, esi
ja 0x57f25f
test edx, edx
je 0x57f21e
mov esi, dword [ecx + 8]
cmp esi, edx
jne 0x57f25f
test ecx, ecx
je 0x57f25f
add ecx, 0x10
je 0x57f25f
mov edx, dword [ebx + 0xc]
sub eax, edx
add ecx, edx
mov esi, dword [ebp + 8]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.005c9f16
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov dword [esp + 0x14], 0x781f4c
mov edx, eax
jmp 0x57f1a0
mov dword [esp + 0x48], 0xffffffff
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x24]
xor edx, edx
test al, 2
mov esi, 0x781f4c
mov edi, 0x781f47
cmovne esi, edi
sete dl
or edx, 4
mov eax, dword [0x813560]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [0x8208d4]
cmp ecx, dword [eax + 4]
jg 0x580211
lea ecx, [esp + 0x48]
push edx
push esi
push dword [0x8208d0]
call fcn.0056e9d0
mov dword [esp + 0x3c], 0xffffffff
mov ecx, dword [ebx]
mov al, byte [ecx + 0x1c]
test al, 1
jne 0x57f2de
mov eax, dword [ecx + 4]
mov eax, dword [eax + 0x24]
mov edi, 0x781f4c
test al, 1
jne 0x57f9b6
push edi
call fcn.005e5270
add esp, 4
mov esi, eax
mov eax, dword [0x8208dc]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x580011
lea ecx, [esp + 0x3c]
push esi
push edi
push dword [0x8208d8]
call fcn.0056e9d0
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [ebx]
mov eax, dword [eax + 4]
lea esi, [esp + 0x70]
push dword [eax + 0x28]
push esi
call fcn.0055adc0
add esp, 8
movsx edi, byte [esi + 0xb]
test edi, edi
jns 0x57f34b
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
test edi, edi
js 0x57f9c7
sete al
test esi, esi
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x8208e4]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x580051
lea ecx, [esp + 0x80]
push edi
push esi
push dword [0x8208e0]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57f3ab
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
mov dword [esp + 0x30], 0xffffffff
mov eax, dword [ebx]
mov eax, dword [eax + 4]
lea esi, [esp + 0x70]
push dword [eax]
push esi
call fcn.0055adc0
add esp, 8
movsx edi, byte [esi + 0xb]
test edi, edi
jns 0x57f3d7
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
test edi, edi
js 0x57f9c7
sete al
test esi, esi
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x8208ec]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x580091
lea ecx, [esp + 0x30]
push edi
push esi
push dword [0x8208e8]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57f434
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
mov dword [esp + 0x6c], 0xffffffff
lea esi, [esp + 0x70]
push dword [esp + 8]
push esi
call fcn.0055adc0
add esp, 8
movsx edi, byte [esi + 0xb]
test edi, edi
jns 0x57f45d
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
test edi, edi
js 0x57f9c7
sete al
test esi, esi
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x8208f4]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x5800d1
lea ecx, [esp + 0x6c]
push edi
push esi
push dword [0x8208f0]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57f4ba
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
xor ecx, ecx
cmp dword [esp + 0x24], 0
sete cl
mov eax, 0x781f4c
mov esi, 0x781f47
cmove esi, eax
mov dword [esp + 0x68], 0xffffffff
or ecx, 4
mov edi, ecx
mov eax, dword [0x8208fc]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x580111
lea ecx, [esp + 0x68]
push edi
push esi
push dword [0x8208f8]
call fcn.0056e9d0
mov dword [esp + 0x64], 0xffffffff
mov edi, dword [esp + 0x14]
push edi
call fcn.005e5270
add esp, 4
mov esi, eax
mov eax, dword [0x820904]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x580151
lea ecx, [esp + 0x64]
push esi
push edi
push dword [0x820900]
call fcn.0056e9d0
mov dword [esp + 0x60], 0xffffffff
lea esi, [esp + 0x70]
push dword [ebx + 4]
push esi
call fcn.0055adc0
add esp, 8
movsx edi, byte [esi + 0xb]
test edi, edi
jns 0x57f581
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
test edi, edi
js 0x57f9c7
sete al
test esi, esi
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x82090c]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x580191
lea ecx, [esp + 0x60]
push edi
push esi
push dword [0x820908]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57f5de
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
mov dword [esp + 0x5c], 0xffffffff
lea esi, [esp + 0x70]
push dword [ebx + 8]
push esi
call fcn.0055adc0
add esp, 8
movsx edi, byte [esi + 0xb]
test edi, edi
jns 0x57f606
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
test edi, edi
js 0x57f9c7
sete al
test esi, esi
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x820914]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x5801d1
lea ecx, [esp + 0x5c]
push edi
push esi
push dword [0x820910]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57f663
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
cmp dword [esp + 8], 0xc8799269
jne 0x57f8f5
mov dword [esp + 0x58], 0xffffffff
mov eax, dword [ebx + 0x10]
lea esi, [eax - 4]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x81756c]
bt edx, ecx
jae 0x57f989
push 4
push esi
push eax
call fcn.004bf310
add esp, 0xc
mov ecx, esi
shr ecx, 0xe
mov edx, esi
shr edx, 0x13
mov eax, dword [edx*4 + 0x81756c]
bt eax, ecx
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
jae 0x57f8b4
push esi
call fcn.004bee90
add esp, 4
lea edi, [esp + 0x70]
push dword [esi]
push edi
call fcn.0055adc0
add esp, 8
movsx ebx, byte [edi + 0xb]
test ebx, ebx
jns 0x57f6ef
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
test ebx, ebx
js 0x57f9c7
sete al
test edi, edi
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x82091c]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x58025d
lea ecx, [esp + 0x58]
push ebx
push edi
push dword [0x820918]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57f74c
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
mov eax, dword [esp + 4]
mov eax, dword [eax*4 + 0x81756c]
mov ecx, dword [esp + 8]
bt eax, ecx
mov edi, dword [esp + 0xc]
jae 0x57f76d
push esi
call fcn.004befb0
add esp, 4
mov dword [esp + 0x54], 0xffffffff
mov eax, dword [edi + 0x10]
lea esi, [eax + 4]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x81756c]
bt edx, ecx
jae 0x57f8d6
push 4
push esi
push eax
call fcn.004bf310
add esp, 0xc
mov ecx, esi
shr ecx, 0xe
mov eax, esi
shr eax, 0x13
mov dword [esp + 4], eax
mov eax, dword [eax*4 + 0x81756c]
mov dword [esp + 8], ecx
bt eax, ecx
jae 0x57f8c5
push esi
call fcn.004bee90
add esp, 4
lea edi, [esp + 0x70]
push dword [esi]
push edi
call fcn.0055adc0
add esp, 8
movsx ebx, byte [edi + 0xb]
test ebx, ebx
jns 0x57f7eb
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
test ebx, ebx
js 0x57f9c7
sete al
test edi, edi
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x820924]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x58029d
lea ecx, [esp + 0x54]
push ebx
push edi
push dword [0x820920]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57f848
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
mov eax, dword [esp + 4]
mov eax, dword [eax*4 + 0x81756c]
mov ecx, dword [esp + 8]
bt eax, ecx
jae 0x57f865
push esi
call fcn.004befb0
add esp, 4
lea edi, [esp + 0x70]
push 0x543
push str....._basemetricspersistent_memory_allocator.cc
push str.GetUntyped
push edi
call fcn.005613a0
add esp, 0x10
lea esi, [esp + 0x2c]
push edi
push esi
call fcn.00649610
add esp, 8
mov ecx, esi
call fcn.00649690
xor eax, eax
mov esi, dword [ebp + 8]
mov dword [esi + 4], eax
mov dword [esi], eax
lea ecx, [esp + 0x54]
call fcn.0056ea30
lea ecx, [esp + 0x58]
call fcn.0056ea30
jmp 0x57f930
mov eax, esi
shr eax, 0x15
mov byte [eax + 0x81f56c], 1
jmp 0x57f6d0
mov eax, esi
shr eax, 0x15
mov byte [eax + 0x81f56c], 1
jmp 0x57f7cc
mov eax, esi
shr eax, 0xe
mov ecx, esi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x81756c]
bt ecx, eax
jae 0x57f7a1
jmp 0x580385
lea edi, [esp + 0x70]
push 0x549
push str....._basemetricspersistent_memory_allocator.cc
push str.GetUntyped
push edi
call fcn.005613a0
add esp, 0x10
lea esi, [esp + 0x28]
push edi
push esi
call fcn.00649610
add esp, 8
mov ecx, esi
call fcn.00649690
xor eax, eax
mov esi, dword [ebp + 8]
mov dword [esi + 4], eax
mov dword [esi], eax
lea ecx, [esp + 0x5c]
call fcn.0056ea30
lea ecx, [esp + 0x60]
call fcn.0056ea30
lea ecx, [esp + 0x64]
call fcn.0056ea30
lea ecx, [esp + 0x68]
call fcn.0056ea30
lea ecx, [esp + 0x6c]
call fcn.0056ea30
lea ecx, [esp + 0x30]
call fcn.0056ea30
lea ecx, [esp + 0x80]
call fcn.0056ea30
lea ecx, [esp + 0x3c]
call fcn.0056ea30
lea ecx, [esp + 0x48]
call fcn.0056ea30
jmp 0x57f236
mov eax, esi
shr eax, 0xe
mov ecx, esi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x81756c]
bt ecx, eax
jae 0x57f6a5
int3
mov byte [eax], 0
add eax, dword [ecx + 0x14]
cmp eax, edx
jae 0x57f164
jmp 0x57f9a6
push 0
call fcn.006be600
mov edi, 0x781f47
jmp 0x57f2de
ud2
mov eax, dword [esp + 8]
lea esi, [ecx + eax]
mov dword [esp + 0x10], ecx
cmp esi, ebx
jbe 0x57f100
jmp 0x57fa45
mov dword [esp + 0x84], 0x14
mov dword [esp + 0x80], 0x1dd76000
lea esi, [esp + 0x70]
push 0x2a1
push str....._basemetricspersistent_memory_allocator.cc
push str.AllocateImpl
push esi
call fcn.005613a0
add esp, 4
movsd xmm0, qword [esp + 0x8c]
movsd qword [esp + 4], xmm0
mov dword [esp], esi
call fcn.00648420
mov ecx, dword [esp + 0x10]
add esp, 0xc
jmp 0x57fa6c
mov eax, dword [edi + 0x24]
mov ecx, dword [esp + 4]
mov edx, eax
or edx, 2
lock cmpxchg dword [edi + 0x24], edx
jne 0x57fa37
jmp 0x57fa6c
mov esi, dword [esp + 4]
mov ecx, esi
push 1
call fcn.006be600
mov ecx, esi
jmp 0x57fa6c
push 0
jmp 0x57fa63
call fcn.00649760
jmp 0x57fa68
push 1
call fcn.006be600
mov ecx, dword [esp + 4]
mov esi, dword [ecx + 0x20]
test esi, esi
je 0x57fa86
mov eax, dword [esi]
mov edi, dword [eax + 0x14]
mov ecx, edi
call dword [0x8072c0]
mov ecx, esi
push 0
call edi
xor eax, eax
mov esi, dword [ebp + 8]
mov dword [esi + 4], eax
mov dword [esi], eax
jmp 0x57f236
cmp ecx, 0x10
jbe 0x57fa45
mov edi, ecx
mov dword [esp + 0x6c], 0xffffffff
lea esi, [esp + 0x70]
push ebx
push esi
call fcn.0055adc0
add esp, 8
mov ebx, esi
movsx esi, byte [esi + 0xb]
test esi, esi
jns 0x57fac4
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
test esi, esi
js 0x57f9c7
sete al
test ebx, ebx
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x820894]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x580388
lea ecx, [esp + 0x6c]
push esi
push ebx
push dword [0x820890]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57fb21
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
mov dword [esp + 0x68], 0xffffffff
lea ebx, [esp + 0x70]
mov eax, dword [esp + 4]
push dword [eax + 0x10]
push ebx
call fcn.0055adc0
add esp, 8
movsx esi, byte [ebx + 0xb]
test esi, esi
jns 0x57fb4d
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
test esi, esi
js 0x57f9c7
sete al
test ebx, ebx
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x82089c]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x5803c8
lea ecx, [esp + 0x68]
push esi
push ebx
push dword [0x820898]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57fbaa
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
mov dword [esp + 0x64], 0xffffffff
lea ebx, [esp + 0x70]
push dword [esp + 8]
push ebx
call fcn.0055adc0
add esp, 8
movsx esi, byte [ebx + 0xb]
test esi, esi
jns 0x57fbd3
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
test esi, esi
js 0x57f9c7
sete al
test ebx, ebx
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x8208a4]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x580408
lea ecx, [esp + 0x64]
push esi
push ebx
push dword [0x8208a0]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57fc30
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
mov dword [esp + 0x60], 0xffffffff
lea ebx, [esp + 0x70]
push edi
push ebx
call fcn.0055adc0
add esp, 8
movsx esi, byte [ebx + 0xb]
test esi, esi
jns 0x57fc56
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
test esi, esi
js 0x57f9c7
sete al
test ebx, ebx
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x8208ac]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x580448
lea ecx, [esp + 0x60]
push esi
push ebx
push dword [0x8208a8]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57fcb3
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
mov dword [esp + 0x5c], 0xffffffff
lea ebx, [esp + 0x70]
push dword [esp + 0x10]
push ebx
call fcn.0055adc0
add esp, 8
movsx esi, byte [ebx + 0xb]
test esi, esi
jns 0x57fcdc
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
test esi, esi
js 0x57f9c7
sete al
test ebx, ebx
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x8208b4]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x580488
lea ecx, [esp + 0x5c]
push esi
push ebx
push dword [0x8208b0]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57fd39
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
mov dword [esp + 0x58], 0xffffffff
lea ebx, [esp + 0x70]
push dword [esp + 0x18]
push ebx
call fcn.0055adc0
add esp, 8
movsx esi, byte [ebx + 0xb]
test esi, esi
jns 0x57fd62
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
test esi, esi
js 0x57f9c7
sete al
test ebx, ebx
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x8208bc]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x5804c8
lea ecx, [esp + 0x58]
push esi
push ebx
push dword [0x8208b8]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57fdbf
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
mov dword [esp + 0x54], 0xffffffff
lea ebx, [esp + 0x70]
push dword [esp + 0x1c]
push ebx
call fcn.0055adc0
add esp, 8
movsx esi, byte [ebx + 0xb]
test esi, esi
jns 0x57fde8
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
test esi, esi
js 0x57f9c7
sete al
test ebx, ebx
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x8208c4]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x580508
lea ecx, [esp + 0x54]
push esi
push ebx
push dword [0x8208c0]
call fcn.0056e9d0
cmp byte [esp + 0x7b], 0
jns 0x57fe45
push dword [esp + 0x70]
call fcn.005c8b90
add esp, 4
xor eax, eax
dec eax
lea ebx, [esp + 0x48]
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov ecx, ebx
push 0x79c9d3
call fcn.00537240
call fcn.0057a640
test eax, eax
je 0x57fecf
mov esi, eax
mov ecx, eax
call fcn.006bc890
test al, al
je 0x57fecf
mov ecx, esi
call fcn.006bc880
lea esi, [esp + 0x3c]
mov ecx, eax
push esi
call fcn.00562640
lea eax, [esp + 0x70]
mov ecx, esi
push eax
call fcn.004bbdf0
cmp byte [esp + 0x53], 0
jns 0x57fea8
push dword [esp + 0x48]
call fcn.005c8b90
add esp, 4
mov eax, dword [esp + 0x78]
mov dword [esp + 0x50], eax
movsd xmm0, qword [esp + 0x70]
movsd qword [esp + 0x48], xmm0
xor eax, eax
mov byte [esp + 0x7b], al
mov byte [esp + 0x70], al
lea ecx, [esp + 0x3c]
call fcn.005617f0
mov dword [esp + 0x3c], 0xffffffff
movsx esi, byte [esp + 0x53]
test esi, esi
cmovs esi, dword [esp + 0x4c]
cmovs ebx, dword [esp + 0x48]
test esi, esi
js 0x57f9c7
sete al
test ebx, ebx
setne cl
or cl, al
je 0x57f9c7
mov eax, dword [0x8208cc]
mov ecx, dword [0x813560]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x580548
lea ecx, [esp + 0x3c]
push esi
push ebx
push dword [0x8208c8]
call fcn.0056e9d0
mov dword [esp + 0x34], 0x14
mov dword [esp + 0x30], 0x1dd76000
lea esi, [esp + 0x70]
push 0x2e6
push str....._basemetricspersistent_memory_allocator.cc
push str.AllocateImpl
push esi
call fcn.005613a0
add esp, 4
movsd xmm0, qword [esp + 0x3c]
movsd qword [esp + 4], xmm0
mov dword [esp], esi
call fcn.00648420
add esp, 0xc
mov esi, dword [esp + 8]
lea ecx, [edi + esi]
mov eax, dword [esp + 4]
mov edx, dword [eax + 4]
mov eax, esi
lock cmpxchg dword [edx + 0x28], ecx
mov esi, eax
jne 0x57ff9b
mov eax, dword [esp + 0x20]
mov dword [eax], edi
mov dword [eax + 4], 0x4b594f52
lea ecx, [esp + 0x3c]
call fcn.0056ea30
cmp byte [esp + 0x53], 0
jns 0x57ffb7
push dword [esp + 0x48]
call fcn.005c8b90
add esp, 4
lea ecx, [esp + 0x54]
call fcn.0056ea30
lea ecx, [esp + 0x58]
call fcn.0056ea30
lea ecx, [esp + 0x5c]
call fcn.0056ea30
lea ecx, [esp + 0x60]
call fcn.0056ea30
lea ecx, [esp + 0x64]
call fcn.0056ea30
lea ecx, [esp + 0x68]
call fcn.0056ea30
lea ecx, [esp + 0x6c]
call fcn.0056ea30
mov ecx, dword [esp + 4]
mov eax, esi
mov dl, byte [ecx + 0x1c]
test dl, 1
mov esi, dword [esp + 0x10]
je 0x57f081
jmp 0x57fa6c
push 0x8208dc
call fcn.005c8bdd
add esp, 4
cmp dword [0x8208dc], 0xffffffff
jne 0x57f30a
push 0x20
push str.PersistentMemoryAllocator_corrupted
call fcn.004d67e0
add esp, 8
mov dword [0x8208d8], eax
push 0x8208dc
call fcn.005c8c57
add esp, 4
jmp 0x57f30a
push 0x8208e4
call fcn.005c8bdd
add esp, 4
cmp dword [0x8208e4], 0xffffffff
jne 0x57f384
push 0x20
push str.PersistentMemoryAllocator_freeptr
call fcn.004d67e0
add esp, 8
mov dword [0x8208e0], eax
push 0x8208e4
call fcn.005c8c57
add esp, 4
jmp 0x57f384
push 0x8208ec
call fcn.005c8bdd
add esp, 4
cmp dword [0x8208ec], 0xffffffff
jne 0x57f410
push 0x20
push str.PersistentMemoryAllocator_cookie
call fcn.004d67e0
add esp, 8
mov dword [0x8208e8], eax
push 0x8208ec
call fcn.005c8c57
add esp, 4
jmp 0x57f410
push 0x8208f4
call fcn.005c8bdd
add esp, 4
cmp dword [0x8208f4], 0xffffffff
jne 0x57f496
push 0x20
push str.PersistentMemoryAllocator_ref
call fcn.004d67e0
add esp, 8
mov dword [0x8208f0], eax
push 0x8208f4
call fcn.005c8c57
add esp, 4
jmp 0x57f496
push 0x8208fc
call fcn.005c8bdd
add esp, 4
cmp dword [0x8208fc], 0xffffffff
jne 0x57f4ff
push 0x20
push str.PersistentMemoryAllocator_ref_found
call fcn.004d67e0
add esp, 8
mov dword [0x8208f8], eax
push 0x8208fc
call fcn.005c8c57
add esp, 4
jmp 0x57f4ff
push 0x820904
call fcn.005c8bdd
add esp, 4
cmp dword [0x820904], 0xffffffff
jne 0x57f548
push 0x20
push str.PersistentMemoryAllocator_raced
call fcn.004d67e0
add esp, 8
mov dword [0x820900], eax
push 0x820904
call fcn.005c8c57
add esp, 4
jmp 0x57f548
push 0x82090c
call fcn.005c8bdd
add esp, 4
cmp dword [0x82090c], 0xffffffff
jne 0x57f5ba
push 0x20
push str.PersistentMemoryAllocator_type_
call fcn.004d67e0
add esp, 8
mov dword [0x820908], eax
push 0x82090c
call fcn.005c8c57
add esp, 4
jmp 0x57f5ba
push 0x820914
call fcn.005c8bdd
add esp, 4
cmp dword [0x820914], 0xffffffff
jne 0x57f63f
push 0x20
push str.PersistentMemoryAllocator_size_
call fcn.004d67e0
add esp, 8
mov dword [0x820910], eax
push 0x820914
call fcn.005c8c57
add esp, 4
jmp 0x57f63f
push 0x8208d4
mov dword [esp + 8], edx
call fcn.005c8bdd
mov edx, dword [esp + 8]
add esp, 4
cmp dword [0x8208d4], 0xffffffff
jne 0x57f2a9
push 0x20
push str.PersistentMemoryAllocator_full
call fcn.004d67e0
add esp, 8
mov dword [0x8208d0], eax
push 0x8208d4
call fcn.005c8c57
mov edx, dword [esp + 8]
add esp, 4
jmp 0x57f2a9
push 0x82091c
call fcn.005c8bdd
add esp, 4
cmp dword [0x82091c], 0xffffffff
jne 0x57f728
push 0x20
push str.PersistentMemoryAllocator_ref_before
call fcn.004d67e0
add esp, 8
mov dword [0x820918], eax
push 0x82091c
call fcn.005c8c57
add esp, 4
jmp 0x57f728
push 0x820924
call fcn.005c8bdd
add esp, 4
cmp dword [0x820924], 0xffffffff
jne 0x57f824
push 0x20
push str.PersistentMemoryAllocator_ref_after
call fcn.004d67e0
add esp, 8
mov dword [0x820920], eax
push 0x820924
call fcn.005c8c57
add esp, 4
jmp 0x57f824
mov eax, dword [esi]
mov edi, dword [eax + 0x14]
mov ecx, edi
call dword [0x8072c0]
mov ecx, esi
push dword [esp + 0x18]
call edi
mov edx, dword [esp + 8]
jmp 0x57f18b
mov edi, eax
cmp edx, 0x40
setb al
test dl, 7
setne cl
mov dword [esp + 0x14], 0x781f47
or cl, al
jne 0x580352
mov eax, dword [esp + 8]
add eax, 0x10
jb 0x580352
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0xc]
cmp eax, ecx
ja 0x580352
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov edx, dword [esp + 4]
mov edx, dword [edx + 4]
mov esi, dword [esp + 8]
mov esi, dword [edx + esi + 4]
cmp esi, 0xc8799269
jne 0x580352
add edx, dword [esp + 8]
mov esi, dword [edx]
cmp esi, 0x10
jae 0x58035d
mov ebx, dword [esp + 0xc]
mov edx, edi
jmp 0x57f1a0
mov esi, dword [edx]
add esi, dword [esp + 8]
setb bl
test edx, edx
je 0x580352
test bl, bl
jne 0x580352
cmp esi, ecx
ja 0x580352
xor ecx, ecx
lock cmpxchg dword [edx + 8], ecx
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx]
mov dword [esp + 4], eax
jmp 0x580356
int3
push 0x820894
call fcn.005c8bdd
add esp, 4
cmp dword [0x820894], 0xffffffff
jne 0x57fafd
push 0x20
push str.PersistentMemoryAllocator_mem_size_
call fcn.004d67e0
add esp, 8
mov dword [0x820890], eax
push 0x820894
call fcn.005c8c57
add esp, 4
jmp 0x57fafd
push 0x82089c
call fcn.005c8bdd
add esp, 4
cmp dword [0x82089c], 0xffffffff
jne 0x57fb86
push 0x20
push str.PersistentMemoryAllocator_mem_page_
call fcn.004d67e0
add esp, 8
mov dword [0x820898], eax
push 0x82089c
call fcn.005c8c57
add esp, 4
jmp 0x57fb86
push 0x8208a4
call fcn.005c8bdd
add esp, 4
cmp dword [0x8208a4], 0xffffffff
jne 0x57fc0c
push 0x20
push str.PersistentMemoryAllocator_freeptr
call fcn.004d67e0
add esp, 8
mov dword [0x8208a0], eax
push 0x8208a4
call fcn.005c8c57
add esp, 4
jmp 0x57fc0c
push 0x8208ac
call fcn.005c8bdd
add esp, 4
cmp dword [0x8208ac], 0xffffffff
jne 0x57fc8f
push 0x20
push str.PersistentMemoryAllocator_page_free
call fcn.004d67e0
add esp, 8
mov dword [0x8208a8], eax
push 0x8208ac
call fcn.005c8c57
add esp, 4
jmp 0x57fc8f
push 0x8208b4
call fcn.005c8bdd
add esp, 4
cmp dword [0x8208b4], 0xffffffff
jne 0x57fd15
push 0x20
push str.PersistentMemoryAllocator_size
call fcn.004d67e0
add esp, 8
mov dword [0x8208b0], eax
push 0x8208b4
call fcn.005c8c57
add esp, 4
jmp 0x57fd15
push 0x8208bc
call fcn.005c8bdd
add esp, 4
cmp dword [0x8208bc], 0xffffffff
jne 0x57fd9b
push 0x20
push str.PersistentMemoryAllocator_req_size
call fcn.004d67e0
add esp, 8
mov dword [0x8208b8], eax
push 0x8208bc
call fcn.005c8c57
add esp, 4
jmp 0x57fd9b
push 0x8208c4
call fcn.005c8bdd
add esp, 4
cmp dword [0x8208c4], 0xffffffff
jne 0x57fe21
push 0x20
push str.PersistentMemoryAllocator_type_id
call fcn.004d67e0
add esp, 8
mov dword [0x8208c0], eax
push 0x8208c4
call fcn.005c8c57
add esp, 4
jmp 0x57fe21
push 0x8208cc
call fcn.005c8bdd
add esp, 4
cmp dword [0x8208cc], 0xffffffff
jne 0x57ff21
push 0x100
push str.PersistentMemoryAllocator_file_name
call fcn.004d67e0
add esp, 8
mov dword [0x8208c8], eax
push 0x8208cc
call fcn.005c8c57
add esp, 4
jmp 0x57ff21