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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x160
xor eax, eax
mov esi, ecx
mov cl, 1
mov ebx, dword [ebp + 8]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x138], eax
xor eax, eax
lock cmpxchg byte [esi], cl
jne 0x606889
lea eax, [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov edi, edx
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, dword [esi + 0x10]
cmp edx, eax
mov edx, ebx
sbb edx, ecx
cmovb ebx, ecx
cmovb edi, eax
lea eax, [esi + 0x18]
mov dword [esp + 0x14], ebx
xor ebx, ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ebx
mov eax, dword [esp]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
jne 0x60669f
lea ecx, [esp + 0x28]
mov edx, ebx
call fcn.00605dd8
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
or eax, dword [esp + 0x2c]
je 0x606682
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov esi, edi
cmp edx, eax
mov dword [esp + 0xc], eax
sbb esi, ecx
jb 0x606682
mov esi, ecx
mov ecx, dword [esp]
mov eax, dword [esp + 0x38]
mov edx, dword [ecx + 0x28]
cmp edx, eax
jbe 0x60686e
mov edx, dword [ecx + 0x20]
mov ecx, dword [esp + 0x3c]
xor edi, edi
xor ebx, ebx
mov dword [esp + 4], eax
mov eax, 0
inc ebx
shld edi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
cmovne ebx, eax
imul eax, dword [esp + 4], 0x210
not ebx
not edi
and dword [edx + eax + 0x200], ebx
and dword [edx + eax + 0x204], edi
cmp ecx, 0x40
jae 0x60687a
add edx, eax
xor eax, eax
mov edi, dword [edx + ecx*8 + 4]
mov dword [edx + ecx*8], eax
mov dword [edx + ecx*8 + 4], eax
mov ecx, 0
test edi, edi
je 0x60665b
mov eax, dword [edi]
test eax, eax
je 0x606500
mov dword [eax + 4], 0
mov dword [edi], ecx
mov dword [esp + 0x24], eax
mov dword [edi + 4], ecx
movq xmm0, qword [edi + 0x18]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd edx, xmm0
cmp eax, 0xfffffffe
mov ecx, edx
sbb ecx, 0xffffffff
jae 0x606899
cmp dword [esp + 0xc], eax
mov ecx, esi
sbb ecx, edx
jb 0x60655d
xor ecx, ecx
mov ebx, 0xfffffffe
dec ecx
lock cmpxchg8b qword [edi + 0x18]
jne 0x60651b
pcmpeqd xmm0, xmm0
mov edx, edi
movq qword [edi + 8], xmm0
mov ecx, dword [esp + 0x18]
call fcn.0060699a
xor ecx, ecx
jmp 0x606641
movd xmm0, eax
xor eax, dword [esp + 0xc]
movd xmm1, edx
xor edx, esi
mov ecx, edx
punpckldq xmm0, xmm1
movq qword [edi + 8], xmm0
or eax, 0x3f
cmp eax, 0xfffffffe
sbb ecx, 0xf
mov ecx, 0xfffffffe
cmovae eax, ecx
mov ecx, 0xf
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
xor al, 0x3e
movzx eax, al
imul ecx, eax, 0x2b
mov eax, dword [esp]
shr ecx, 8
mov edx, dword [eax + 0x28]
cmp edx, ecx
jbe 0x6067af
mov eax, dword [eax + 0x20]
mov dword [esp + 4], eax
imul eax, ecx, 0x210
movq xmm0, qword [edi + 8]
mov ecx, dword [esp + 4]
mov dword [esp + 0x20], eax
mov ecx, dword [ecx + eax + 0x208]
movd edx, xmm0
pshufd xmm0, xmm0, 0x55
movd ebx, xmm0
add ecx, ecx
lea ecx, [ecx + ecx*2]
shrd edx, ebx, cl
shr ebx, cl
test cl, 0x20
mov ecx, dword [esp + 4]
cmove ebx, edx
mov edx, edi
add ecx, eax
mov eax, ebx
and eax, 0x3f
lea ecx, [ecx + eax*8]
call fcn.0060699a
xor eax, eax
xor edx, edx
mov ecx, ebx
mov edi, dword [esp + 4]
inc edx
shld eax, edx, cl
shl edx, cl
test bl, 0x20
mov ebx, dword [esp + 0x20]
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
or dword [edi + ebx + 0x200], edx
or dword [edi + ebx + 0x204], eax
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 8]
test edi, edi
jne 0x6064f3
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
jmp 0x606663
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ecx, ebx
push esi
call fcn.00606923
add esp, 4
mov eax, dword [esp]
mov edi, dword [esp + 0x14]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x606448
jmp 0x60669f
mov ebx, dword [esp + 8]
mov ecx, ebx
push edi
call fcn.00606923
add esp, 4
mov eax, dword [esp]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x6067be
mov eax, dword [ecx]
mov edx, dword [esp]
mov dword [edx + 0x1c], eax
lea edx, [eax + 4]
test eax, eax
cmove edx, dword [esp + 0x18]
xor eax, eax
mov dword [edx], eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
movq xmm0, qword [ecx + 0x18]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd edx, xmm0
and edx, eax
cmp edx, 0xffffffff
je 0x606432
pcmpeqd xmm0, xmm0
mov byte [ecx + 0x2c], 0
movq qword [ecx + 0x18], xmm0
mov eax, dword [ecx + 0x28]
mov edx, eax
or edx, 2
lock cmpxchg dword [ecx + 0x28], edx
jne 0x6066e7
test eax, eax
jne 0x606432
mov esi, dword [ecx + 0x20]
mov edi, dword [ecx + 0x24]
mov dword [ecx + 0x20], 0
lock and dword [ecx + 0x28], 0xfffffffd
test esi, esi
je 0x606432
mov ebx, dword [esp + 0x10]
cmp ebx, 0x1f
ja 0x6068d4
mov eax, dword [esp + ebx*8 + 0x40]
test eax, eax
je 0x606734
push dword [esp + ebx*8 + 0x44]
call dword [eax + 0xc]
add esp, 4
mov dword [esp + ebx*8 + 0x40], esi
mov dword [esp + ebx*8 + 0x44], edi
inc ebx
cmp ebx, 0x20
jne 0x60642e
mov ecx, dword [esp]
mov al, 1
xor edx, edx
lock cmpxchg byte [ecx], dl
jne 0x6067a5
mov esi, 0xffffff00
mov eax, dword [esp + esi + 0x140]
mov ecx, dword [esp + esi + 0x144]
mov dword [esp + esi + 0x140], 0
test eax, eax
je 0x6068f6
push ecx
call dword [eax + 4]
add esp, 4
add esi, 8
jne 0x606758
mov ecx, dword [esp]
xor eax, eax
mov dl, 1
xor ebx, ebx
lock cmpxchg byte [ecx], dl
je 0x60642e
mov ecx, dword [esp]
call fcn.0065481c
jmp 0x60642e
mov ecx, dword [esp]
call fcn.006545f5
jmp 0x606753
push 0x7ca45c
call fcn.006521f0
add esp, 4
ud2
lea esi, [esp + 0x140]
mov edx, ebx
mov ecx, esi
call fcn.00605dd8
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
xor ebx, ebx
mov ecx, 1
cmp eax, 1
mov edx, eax
adc edx, ebx
test edi, edi
cmovne ecx, eax
mov eax, dword [esi]
cmove ecx, edx
mov edx, dword [esp]
or eax, dword [esi + 4]
mov al, 1
cmove edi, ebx
cmove ecx, ebx
mov dword [edx + 0xc], edi
mov dword [edx + 8], ecx
lock cmpxchg byte [edx], bl
jne 0x6068c8
mov ecx, dword [esp + 0x10]
cmp ecx, 0x21
jae 0x60690f
test ecx, ecx
je 0x606844
lea esi, [esp + ecx*8 + 0x40]
lea edi, [esp + 0x40]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [edi], 0
test eax, eax
je 0x6068e5
push ecx
call dword [eax + 4]
add esp, 4
add edi, 8
cmp edi, esi
jne 0x606823
mov esi, 0xffffff00
mov eax, dword [esp + esi + 0x140]
test eax, eax
je 0x606861
push dword [esp + esi + 0x144]
call dword [eax + 0xc]
add esp, 4
add esi, 8
jne 0x606849
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, eax
push 0x7ca49c
jmp 0x6067b4
mov edx, 0x40
push 0x7ca3b0
jmp 0x6067b4
mov ecx, esi
mov edi, edx
call fcn.0065481c
mov edx, edi
jmp 0x6063ff
lea ecx, [esp + 0x140]
mov edx, 0x7ca2d4
xor eax, eax
mov dword [ecx], 0x7ca264
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], eax
mov dword [ecx + 8], 0x7f59e0
mov dword [ecx + 0xc], eax
call fcn.00652150
ud2
mov ecx, edx
call fcn.006545f5
jmp 0x60680a
mov ecx, ebx
mov edx, 0x20
push 0x7ca56c
jmp 0x6067b4
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_syncmpmclist.rs
mov edx, 0x2b
push 0x7ca59c
jmp 0x606905
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_syncmpmclist.rs
mov edx, 0x2b
push 0x7ca57c
call fcn.006522d0
jmp 0x6067b9
mov edx, 0x20
push 0x7ca58c
call fcn.00652260
jmp 0x6067b9