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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe4
mov esi, dword [esp + 0xf8]
mov ebx, 0x3b9aca00
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 4]
add eax, 8
mov dword [esp + 0x54], edi
mov dword [esp + 0x88], eax
mov eax, dword [esi]
mov dword [esp + 0x58], eax
mul ebx
mov ebp, eax
mov eax, edi
mov ecx, edx
mul ebx
mov edi, eax
mov eax, dword [esi + 8]
add edi, ecx
adc edx, 0
add ebp, eax
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x10]
adc edi, 0
mov dword [esp + 0x3c], ebp
adc edx, 0
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x44], eax
movzx eax, byte [esi + 0x14]
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x1c]
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x84], eax
setb al
movzx eax, al
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x88]
mov edx, esi
call fcn.004cbf7a
test al, al
je 0x5543fc
mov ebx, dword [esp + 0x44]
mov edx, esi
mov ecx, ebx
call fcn.00607514
test al, al
jne 0x5543d9
mov esi, dword [ebx + 8]
mov ebp, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
call fcn.005a62b0
mov dword [esp + 0xc], ecx
mov dword [esp], esi
mov ecx, esi
mov esi, ebp
mov ebp, edx
mov ebx, eax
mov edx, esi
push 0x4c4b40
xor eax, eax
push eax
push eax
mov dword [esp + 0x10], edi
push edi
call fcn.005bcc70
add esp, 0x10
cmp ebx, eax
mov edi, ebp
sbb edi, edx
jb 0x553a51
xor eax, ebx
xor edx, ebp
or edx, eax
jne 0x553a2a
cmp dword [esp + 0xc], ecx
jbe 0x553a51
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x553a51
cmp eax, 1
jne 0x553dd3
mov ecx, ebx
mov edx, ebp
push dword [esp + 0x50]
push dword [esp + 0x58]
push dword [esp + 0x60]
push dword [esp + 0x18]
jmp 0x553a66
mov ecx, dword [esp]
mov edx, esi
push dword [esp + 0x50]
push dword [esp + 0x58]
push dword [esp + 0x60]
push dword [esp + 0x10]
call fcn.005bcc70
add esp, 0x10
mov ebx, eax
mov eax, ecx
mov ecx, dword [esp + 0x44]
mov esi, edx
mov edx, ebx
push 0
push eax
push esi
call fcn.0060762b
add esp, 0xc
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x5543fc
call fcn.0055223a
test eax, eax
je 0x5543fc
mov dword [esp + 0xcc], eax
mov dword [esp + 0x2c], eax
add eax, 8
mov dword [esp + 0x5c], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x803890]
test eax, 0x7fffffff
jne 0x554077
mov dword [esp + 0x40], 0
mov esi, dword [esp + 0x2c]
mov al, byte [esi + 0xc]
test al, al
jne 0x5543dd
mov eax, dword [esi + 0x18]
cmp eax, 0x3b9aca00
mov dword [esp + 0x30], eax
je 0x554422
mov eax, dword [esi + 0x10]
mov dword [esp], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0xc], eax
call fcn.005a62b0
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
test ecx, ecx
je 0x553da4
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x40]
movdqa xmm0, xmmword [edx]
lea eax, [edx + 0x10]
pmovmskb esi, xmm0
not esi
test si, si
jne 0x553b51
movdqa xmm0, xmmword [eax]
add edx, 0xfffffdc0
add eax, 0x10
pmovmskb esi, xmm0
cmp esi, 0xffff
je 0x553b36
not esi
mov dword [esp + 0x14], eax
bsf eax, esi
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x60], esi
neg eax
lea eax, [eax + eax*8]
lea edx, [edx + eax*4]
mov eax, dword [edx - 4]
mov dword [edx - 4], 0
mov dword [esp + 4], edx
test eax, eax
mov dword [esp + 0x24], eax
je 0x553c2e
xor edi, edi
mov ebx, 0x10
mov ebp, dword [edx - 0xc]
lea esi, [ebp + ebx]
mov ecx, esi
call fcn.0055220f
test al, al
je 0x553c19
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push dword [ebp + ebx - 8]
push dword [ebp + ebx - 0xc]
push dword [ebp + ebx - 0x10]
push dword [esp + 0x40]
call fcn.005a6470
add esp, 0x10
cmp ecx, 0x3b9aca00
mov ebp, 0
cmove eax, ebp
cmove edx, ebp
cmp eax, dword [esp]
mov ebp, edx
sbb ebp, dword [esp + 0xc]
jb 0x553bfe
cmp ecx, 0x3b9aca00
setne byte [esp + 0x10]
xor eax, dword [esp]
xor edx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x30]
seta cl
or edx, eax
jne 0x553c19
and byte [esp + 0x10], cl
jne 0x553c19
inc edi
add ebx, 0x30
mov edx, dword [esp + 4]
cmp dword [esp + 0x24], edi
jne 0x553b8d
mov dword [esp + 8], 0
jmp 0x553d00
mov ecx, esi
inc edi
call fcn.00551f48
mov edx, dword [esp + 4]
xor eax, eax
inc eax
mov dword [esp + 8], eax
jmp 0x553c38
xor edi, edi
mov dword [esp + 8], 0
mov ebx, dword [esp + 0x24]
sub ebx, edi
je 0x553d00
lea ebp, [edi + edi*2]
shl ebp, 4
add ebp, 0x10
mov edi, dword [edx - 0xc]
lea ecx, [edi + ebp]
mov dword [esp + 0x10], ecx
call fcn.0055220f
test al, al
je 0x553ce5
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push dword [edi + ebp - 8]
push dword [edi + ebp - 0xc]
push dword [edi + ebp - 0x10]
push dword [esp + 0x40]
call fcn.005a6470
add esp, 0x10
mov esi, edx
cmp ecx, 0x3b9aca00
mov edx, 0
cmove eax, edx
cmove esi, edx
cmp eax, dword [esp]
mov edx, esi
sbb edx, dword [esp + 0xc]
jb 0x553cc1
cmp ecx, 0x3b9aca00
setne dl
xor eax, dword [esp]
xor esi, dword [esp + 0xc]
cmp ecx, dword [esp + 0x30]
seta cl
or esi, eax
jne 0x553ce5
and dl, cl
jne 0x553ce5
mov edx, dword [esp + 4]
mov ecx, dword [esp + 8]
lea esi, [edi + ebp - 0x10]
mov eax, dword [edx - 0xc]
shl ecx, 4
lea ecx, [ecx + ecx*2]
sub eax, ecx
mov ecx, 0xc
lea edi, [ebp + eax - 0x10]
rep movsd dword es:[edi], dword [esi]
jmp 0x553cf6
mov ecx, dword [esp + 0x10]
inc dword [esp + 8]
call fcn.00551f48
mov edx, dword [esp + 4]
add ebp, 0x30
dec ebx
jne 0x553c4d
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 8]
mov dword [edx - 4], eax
jne 0x553d86
mov ebp, dword [esp + 0x2c]
pcmpeqd xmm1, xmm1
mov eax, dword [ebp + 0x40]
mov ecx, eax
sub ecx, edx
sar ecx, 2
imul ecx, ecx, 0x38e38e39
lea edx, [ecx - 0x10]
and edx, dword [ebp + 0x44]
movdqu xmm0, xmmword [eax + edx]
pcmpeqb xmm0, xmm1
psllw xmm0, 7
pmovmskb esi, xmm0
test esi, esi
je 0x553d4a
bsr si, si
xor esi, 0xf
jmp 0x553d4e
mov si, 0x10
movdqu xmm0, xmmword [eax + ecx]
mov bl, 0x80
pcmpeqb xmm0, xmm1
pmovmskb edi, xmm0
or edi, 0x10000
bsf edi, edi
add esi, edi
cmp si, 0xf
ja 0x553d73
inc dword [ebp + 0x48]
mov bl, 0xff
mov byte [eax + ecx], bl
mov ecx, dword [esp + 4]
mov byte [edx + eax + 0x10], bl
dec dword [ebp + 0x4c]
call fcn.0055339a
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
lea eax, [ecx - 1]
and eax, ecx
mov ecx, dword [esp + 0x68]
mov esi, eax
mov eax, dword [esp + 0x14]
dec ecx
jne 0x553b31
movzx edx, byte [esp + 0x40]
mov ecx, dword [esp + 0x5c]
call fcn.005aa9d0
mov eax, dword [esp + 0x2c]
lock dec dword [eax]
jne 0x553dc7
lea ecx, [esp + 0xcc]
call fcn.00552f78
mov esi, dword [esp + 0xfc]
jmp 0x5539b4
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x20]
mov ecx, ebx
mov edx, ebp
or eax, dword [esp + 0x28]
or edi, dword [esp + 0x38]
mov dword [esp + 0x10], eax
push dword [esp + 0x50]
push dword [esp + 0x58]
push dword [esp + 0x60]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x18]
push esi
call fcn.005bcc70
add esp, 0x10
mov dword [esp + 0x4c], ecx
mov ecx, ebx
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], eax
mov edx, ebp
push dword [esp + 4]
push dword [esp + 0xc]
push dword [esp + 8]
push esi
call fcn.005a6470
add esp, 0x10
mov ebx, dword [esp + 0x10]
mov esi, edx
mov dword [esp + 4], edi
or ebx, edi
je 0x554409
mov edi, 0x3b9aca00
mul edi
mov ebx, eax
mov eax, esi
mov dword [esp], edx
mul edi
mov ebp, eax
mov eax, 0
add ebp, dword [esp]
adc edx, eax
cmp ecx, edi
cmove ecx, eax
cmove ebx, eax
cmove edx, eax
cmove ebp, eax
add ebx, ecx
adc ebp, eax
mov esi, ebx
mov dword [esp + 0x14], ebx
adc edx, eax
mov dword [esp + 0x6c], ebp
setb al
mov dword [esp + 0x70], edx
movzx ecx, al
mov byte [esp], al
mov eax, dword [esp + 4]
mov dword [esp + 0x48], ecx
or dword [esp + 0x10], eax
mov eax, ebp
sete bl
or eax, ecx
or esi, edx
mov ecx, dword [esp + 0x20]
or esi, eax
sete al
bsr edi, dword [esp + 0x28]
or al, bl
mov ebx, dword [esp + 0x38]
mov byte [esp + 4], al
xor edi, 0x1f
bsr esi, ebx
add edi, 0x20
xor esi, 0x1f
test ebx, ebx
cmovne edi, esi
bsr eax, dword [esp + 0x3c]
bsr esi, ecx
xor esi, 0x1f
xor eax, 0x1f
add eax, 0x20
test ecx, ecx
cmovne eax, esi
mov esi, dword [esp + 0x28]
add eax, 0x40
or esi, ebx
mov ebx, dword [esp + 0x48]
cmovne eax, edi
bsr esi, edx
xor esi, 0x1f
add esi, 0x20
bsr edi, ebx
xor edi, 0x1f
cmp byte [esp], 0
cmove edi, esi
bsr ecx, dword [esp + 0x14]
bsr esi, ebp
xor esi, 0x1f
xor ecx, 0x1f
add ecx, 0x20
test ebp, ebp
cmovne ecx, esi
mov esi, 0
add ecx, 0x40
or edx, ebx
mov edx, 0
cmovne ecx, edi
mov edi, 0
sub eax, ecx
mov ecx, 0x7f
sbb edx, edx
mov dword [esp + 0x34], eax
sbb edi, edi
mov dword [esp + 0x18], edx
sbb esi, esi
cmp ecx, eax
mov ecx, 0
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1c], edi
sbb ecx, edx
mov ecx, 0
mov edx, dword [esp + 0x14]
sbb ecx, edi
mov ecx, 0
mov edi, esi
sbb ecx, esi
setb cl
mov esi, eax
or cl, byte [esp + 4]
mov ecx, 0
cmovne ebx, ecx
cmovne edx, ecx
cmovne eax, ecx
cmovne ebp, ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
jne 0x55429d
mov edx, dword [esp + 0x34]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x18]
mov eax, edx
or ecx, edi
xor eax, 0x7f
or eax, dword [esp + 0x1c]
or ecx, eax
mov ecx, esi
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x48]
je 0x55429d
mov eax, dword [esp + 0x14]
mov ebp, edi
mov dword [esp + 0xbc], eax
xor eax, eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], esi
mov dword [esp + 0xc0], eax
mov eax, edx
xor al, 0x7f
mov ch, al
shr al, 3
and al, 0xf
and ch, 7
neg al
mov cl, ch
movsx ebx, al
mov esi, dword [esp + ebx + 0xc4]
mov edi, dword [esp + ebx + 0xc8]
shld edi, esi, cl
shl esi, cl
not cl
mov dword [esp + 0xc], edi
mov edi, dword [esp + ebx + 0xc0]
mov eax, edi
shr eax, 1
shr eax, cl
mov cl, ch
or eax, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + ebx + 0xbc]
shld edi, esi, cl
shl esi, cl
mov ecx, dword [esp + 0x1c]
add edx, 1
mov dword [esp], edi
mov edi, 0
adc eax, edi
adc ecx, edi
adc ebp, edi
jae 0x554087
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
xor edi, edi
xor ecx, ecx
jmp 0x55427c
call fcn.0065a0d0
xor al, 1
mov dword [esp + 0x40], eax
jmp 0x553ad3
xor edi, edi
mov dword [esp + 0x30], ebp
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0x60], 0
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x98], edi
mov dword [esp + 0x18], eax
mov eax, edx
mov dword [esp + 0x1c], ecx
mov ch, dl
shr al, 3
and ch, 7
and al, 0xf
mov cl, ch
movzx ebx, al
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + ebx + 0x98]
mov dword [esp + 4], ebp
mov eax, dword [esp + ebx + 0x94]
mov edi, eax
add eax, eax
shrd edi, ebp, cl
mov ebp, dword [esp + ebx + 0x90]
mov ebx, ebp
shr ebx, cl
not cl
shl eax, cl
mov cl, ch
or eax, ebx
mov ebx, dword [esp]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax + 0x8c]
shr dword [esp + 4], cl
mov dword [esp + 0x24], 0
shrd eax, ebp, cl
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x64], eax
add ecx, 0xffffffff
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x20]
adc ecx, 0xffffffff
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x28]
adc ecx, 0xffffffff
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x38]
adc ecx, 0xffffffff
mov dword [esp + 0x80], ecx
mov ecx, esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x30], esi
mov dword [esp], ebx
mov dword [esp + 0x34], edx
mov esi, edi
shld dword [esp + 4], edi, 1
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 8]
mov eax, dword [esp + 0x60]
shld esi, edi, 1
shld edi, edx, 1
shld edx, ebx, 1
shld ebx, ebp, 1
or ebx, eax
mov dword [esp + 0xc], ebx
mov ebx, dword [esp]
shld ebp, ebx, 1
shld ebx, ecx, 1
add ecx, ecx
or ebp, eax
or ebx, eax
or ecx, dword [esp + 0x24]
cmp dword [esp + 0x2c], edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], ebp
sbb eax, edi
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x80]
sbb eax, esi
sbb ecx, dword [esp + 4]
sar ecx, 0x1f
mov eax, ecx
mov ebp, ecx
and eax, 1
and ebp, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov eax, ecx
and eax, dword [esp + 0x38]
mov dword [esp], eax
mov eax, ecx
and ecx, dword [esp + 0x3c]
and eax, dword [esp + 0x28]
sub edx, ecx
sbb edi, ebp
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x1c]
sbb esi, eax
mov eax, dword [esp]
mov dword [esp + 0x68], edi
mov edi, esi
mov esi, dword [esp + 0x30]
sbb dword [esp + 4], eax
mov eax, dword [esp + 0x18]
add edx, 0xffffffff
mov ecx, edx
adc eax, 0xffffffff
adc ebp, 0xffffffff
mov dword [esp + 0x18], eax
adc esi, 0xffffffff
or ecx, ebp
mov dword [esp + 0x1c], ebp
or eax, esi
or ecx, eax
mov ecx, dword [esp + 0x10]
jne 0x554180
mov esi, ecx
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x24]
mov dword [esp], ebx
mov ebp, dword [esp]
shld edx, eax, 1
or edx, ecx
mov dword [esp + 0xc], edx
shld eax, ebp, 1
shld ebp, esi, 1
add esi, esi
or esi, edi
or eax, ecx
or ebp, ecx
mov dword [esp + 0x10], esi
mov esi, eax
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], ebp
imul esi, dword [esp + 0x20]
mul edi
imul ebx, edi
add edx, esi
mov esi, ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 8], eax
mov eax, ecx
add ebx, edx
mul ebp
imul esi, ebp
mov dword [esp + 4], eax
mov eax, ecx
imul eax, dword [esp + 0x38]
add eax, edx
add esi, eax
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov eax, edi
adc esi, ebx
mul ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 8], edx
mul ecx
mov ebp, eax
mov ebx, edx
mov eax, edi
add ebp, dword [esp + 8]
adc ebx, 0
mul dword [esp]
mov edi, eax
mov eax, dword [esp + 0x20]
mov ecx, edx
add edi, ebp
mov ebp, dword [esp + 0x70]
adc ecx, ebx
setb bl
mul dword [esp]
add eax, ecx
movzx ecx, bl
mov ebx, dword [esp + 0x48]
adc edx, ecx
add eax, dword [esp + 4]
mov ecx, dword [esp + 0x14]
adc edx, esi
sub ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x6c]
sbb esi, edi
sbb ebp, eax
sbb ebx, edx
cmp ebp, 1
sbb ebx, 0
jae 0x554449
push 0
push 0x3b9aca00
push esi
mov dword [esp + 0x20], ecx
push ecx
call fcn.00649b60
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov ecx, dword [esp + 0x44]
sub ebx, eax
sbb esi, edx
jb 0x554438
mov edx, dword [esp + 0x14]
imul eax, eax, 0x3b9aca00
sub edx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], edx
cmp eax, edx
jae 0x5543a6
mov eax, ebx
or eax, esi
je 0x554438
mov eax, dword [esp + 0x4c]
add ebx, 0xffffffff
adc esi, 0xffffffff
add eax, 0x3b9aca00
sub eax, dword [esp + 0x14]
mov edx, 0x44b83
mov dword [esp + 0x4c], eax
shr eax, 9
mul edx
shr edx, 7
add ebx, edx
adc esi, 0
jb 0x55446f
mov edi, dword [esp + 0x4c]
imul eax, edx, 0x3b9aca00
sub edi, eax
mov eax, edi
jmp 0x553a78
mov al, 1
jmp 0x5543fe
movzx edx, byte [esp + 0x40]
mov ecx, dword [esp + 0x5c]
call fcn.005aa9d0
lock dec dword [esi]
jne 0x5543fc
lea ecx, [esp + 0xcc]
call fcn.00552f78
xor eax, eax
add esp, 0xe4
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, str.attempt_to_calculate_the_remainder_with_a_divisor_of_zero_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_src_slice_sort.rs
mov edx, 0x39
push 0x7cb3f4
call fcn.006522d0
add esp, 4
ud2
mov ecx, str.interval_assumes_timeout_
mov edx, 0x18
push 0x7b7c80
call fcn.00652640
jmp 0x55441d
mov ecx, str.overflow_when_subtracting_duration_from_instant
mov edx, 0x2f
push 0x7c03bc
jmp 0x554431
mov ecx, str.too_much_time_has_elapsed_since_the_interval_was_supposed_to_tick
mov edx, 0x41
push 0x7cb448
push 0x7c8d04
lea eax, [esp + 0xd4]
push eax
call fcn.006525c0
add esp, 0xc
ud2
lea ecx, [esp + 0xcc]
mov edx, 0x7bf28c
xor eax, eax
mov dword [ecx], str.overflow_in_Duration::new
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], eax
mov dword [ecx + 8], 0x7f59e0
mov dword [ecx + 0xc], eax
call fcn.00652150
ud2