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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x170
and dword [esp + 0x50], 0
and dword [esp + 0x58], 0
and dword [esp + 0x60], 0
and dword [esp + 0x68], 0
and dword [esp + 0x70], 0
and dword [esp + 0x78], 0
and dword [esp + 0x80], 0
and dword [esp + 0x88], 0
and dword [esp + 0x90], 0
and dword [esp + 0x98], 0
and dword [esp + 0xa0], 0
and dword [esp + 0xa8], 0
and dword [esp + 0xb0], 0
and dword [esp + 0xb8], 0
and dword [esp + 0xc0], 0
and dword [esp + 0xc8], 0
and dword [esp + 0xd0], 0
and dword [esp + 0xd8], 0
and dword [esp + 0xe0], 0
and dword [esp + 0xe8], 0
and dword [esp + 0xf0], 0
and dword [esp + 0xf8], 0
and dword [esp + 0x100], 0
and dword [esp + 0x108], 0
and dword [esp + 0x110], 0
and dword [esp + 0x118], 0
and dword [esp + 0x120], 0
and dword [esp + 0x128], 0
and dword [esp + 0x130], 0
and dword [esp + 0x138], 0
and dword [esp + 0x140], 0
mov edi, dword [ebp + 8]
and dword [esp + 0x148], 0
mov esi, edx
mov dword [esp + 0x28], ecx
call fcn.00510609
mov ebx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov byte [esp + 7], dl
mov edx, edi
cmp esi, ebx
sbb edx, ecx
cmovb edi, ecx
cmovb esi, ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
push 0xfffffffffffffffe
pop ebx
lea esi, [eax + 0x10]
mov dword [esp + 8], eax
add eax, 0x18
xor ecx, ecx
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x14]
call fcn.00510612
test eax, eax
jne 0x5103bc
lea ecx, [esp + 0x30]
mov edx, esi
call fcn.00510633
mov eax, dword [esp + 0x30]
or eax, dword [esp + 0x34]
je 0x510397
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x24], eax
mov dword [esp + 0xc], eax
sbb edx, ecx
jb 0x510397
mov eax, dword [esp + 8]
mov esi, ecx
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x28]
push 0x62bb14
push dword [esp + 0x44]
call fcn.005107eb
pop ecx
pop edx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x2c], eax
xor eax, eax
xor edi, edi
mov edx, 0
inc edi
shld eax, edi, cl
shl edi, cl
test cl, 0x20
cmovne eax, edi
cmovne edi, edx
mov edx, dword [esp + 0x2c]
not edi
not eax
and dword [edx + 0x200], edi
and dword [edx + 0x204], eax
cmp ecx, 0x40
jae 0x510528
mov eax, edx
mov edx, dword [edx + ecx*8]
mov edi, dword [eax + ecx*8 + 4]
and dword [eax + ecx*8], 0
and dword [eax + ecx*8 + 4], 0
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edi
lea ecx, [esp + 0x48]
call fcn.00510612
test eax, eax
je 0x51037e
movq xmm0, qword [eax + 0x18]
mov edi, eax
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd edx, xmm0
cmp eax, 0xfffffffe
mov ecx, edx
sbb ecx, 0xffffffff
jae 0x510535
cmp dword [esp + 0xc], eax
mov ecx, esi
sbb ecx, edx
jb 0x51030c
xor ecx, ecx
dec ecx
lock cmpxchg8b qword [edi + 0x18]
jne 0x5102d4
pcmpeqd xmm0, xmm0
mov edx, edi
movq qword [edi + 8], xmm0
mov ecx, dword [esp + 0x14]
call fcn.00510809
jmp 0x5102af
movd xmm1, edx
movd xmm0, eax
xor edx, esi
punpckldq xmm0, xmm1
mov ecx, edx
movq qword [edi + 8], xmm0
xor eax, dword [esp + 0xc]
or eax, 0x3f
cmp eax, 0xfffffffe
sbb ecx, 0xf
cmovae eax, ebx
push 0xf
pop ecx
cmovae edx, ecx
bsr eax, eax
xor eax, 0x1f
bsr ecx, edx
or al, 0x20
xor ecx, 0x1f
test edx, edx
movzx eax, al
cmovne eax, ecx
mov cl, 6
xor al, 0x3e
movzx eax, al
div cl
mov edx, dword [esp + 8]
movzx eax, al
mov ecx, dword [edx + 0x24]
mov edx, dword [edx + 0x28]
push 0x62bad4
push eax
call fcn.005107eb
pop ecx
pop edx
mov ecx, eax
mov edx, edi
call fcn.0051083f
jmp 0x5102af
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov ecx, esi
push dword [esp + 0x3c]
call fcn.0051089c
pop eax
jmp 0x5101f6
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, esi
push dword [esp + 0x20]
call fcn.0051089c
pop eax
mov ecx, dword [esp + 0x14]
call fcn.00510612
test eax, eax
je 0x51046d
mov ecx, eax
xor edx, edx
call fcn.0051090c
test eax, eax
je 0x5101f6
mov ecx, dword [esp + 0x10]
cmp ecx, 0x1f
ja 0x510562
mov edi, eax
mov eax, dword [esp + ecx*8 + 0x50]
test eax, eax
je 0x5103fa
push dword [esp + ecx*8 + 0x54]
mov dword [esp + 0x10], edx
call dword [eax + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x18]
mov dword [esp + ecx*8 + 0x50], edi
mov dword [esp + ecx*8 + 0x54], edx
inc ecx
add eax, 8
cmp ecx, 0x20
jne 0x5101ee
xor edx, edx
cmp byte [esp + 7], 0
mov ecx, dword [esp + 8]
setne dl
call fcn.0050ec97
push 0xffffffffffffffe0
pop esi
test esi, esi
je 0x510458
mov ecx, dword [esp + esi*8 + 0x150]
mov edx, dword [esp + esi*8 + 0x154]
and dword [esp + esi*8 + 0x150], 0
push 0x62bbfc
call fcn.004ac7e1
pop ecx
push edx
call dword [eax + 4]
add esp, 4
inc esi
jmp 0x510429
mov ecx, dword [esp + 0x28]
call fcn.00510609
and dl, 1
mov byte [esp + 7], dl
jmp 0x5101d8
mov edx, esi
lea esi, [esp + 0x150]
mov ecx, esi
call fcn.00510633
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
xor eax, eax
mov ebx, 1
cmp ecx, 1
mov edx, ecx
adc edx, eax
test edi, edi
cmovne ebx, ecx
mov ecx, dword [esi]
cmove ebx, edx
or ecx, dword [esi + 4]
mov ecx, dword [esp + 8]
cmove ebx, eax
cmove edi, eax
xor edx, edx
cmp byte [esp + 7], 0
mov dword [ecx + 0xc], edi
mov dword [ecx + 8], ebx
setne dl
call fcn.0050ec97
mov ecx, dword [esp + 0x10]
cmp ecx, 0x21
jae 0x51056f
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x50]
test edi, edi
je 0x5104fa
mov ecx, dword [eax]
mov edx, dword [eax + 4]
and dword [eax], 0
lea esi, [eax + 8]
push 0x62bc1c
call fcn.004ac7e1
pop ecx
push edx
call dword [eax + 4]
add esp, 4
add edi, 0xfffffff8
mov eax, esi
jmp 0x5104d2
mov esi, 0xffffff00
test esi, esi
je 0x510520
mov eax, dword [esp + esi + 0x150]
test eax, eax
je 0x51051b
push dword [esp + esi + 0x154]
call dword [eax + 0xc]
add esp, 4
add esi, 8
jmp 0x5104ff
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x40
pop edx
push 0x62ba20
call fcn.0059ee70
lea ecx, [esp + 0x150]
mov edx, 0x62b93c
mov dword [ecx], 0x62b8c4
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str._rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_src_sync_atomic.rsthere_is_no_such_thing_as_an_acquire_store
and dword [ecx + 0xc], 0
call fcn.0059ede0
push 0x20
pop edx
push 0x62bbec
call fcn.0059ee70
push 0x20
pop edx
push 0x62bc0c
call fcn.0059eed0