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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1e8
mov esi, ecx
cmp edx, 0x15
jae 0x1003013d
mov ecx, edx
jmp 0x100308c5
mov eax, dword [ebp + 0x10]
mov bh, 1
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x38], eax
mov ah, 1
test bh, bh
mov dword [esp + 0x40], edx
mov edi, edx
mov edx, esi
mov byte [esp + 0x32], bh
mov dword [esp + 0x2c], esi
sete al
test ah, ah
sete cl
or cl, al
mov eax, esi
mov byte [esp + 0x33], cl
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp dword [esp + 0x3c], 0
je 0x10030a48
test bh, bh
mov dword [esp + 8], edx
je 0x100307ba
mov ecx, edi
mov dword [esp + 0x24], edi
shr ecx, 2
cmp edi, 0x31
lea ebx, [ecx + ecx]
lea eax, [ecx + ecx*2]
mov dword [esp + 0x1c], ecx
mov dword [esp + 4], eax
jbe 0x10030210
imul eax, ecx, 0xd0
mov edi, edx
mov dword [esp + 0x14], ebx
mov ecx, dword [edx + eax + 0x7c]
mov esi, dword [edx + eax + 0x78]
mov edx, dword [edx + eax - 0x58]
mov edi, dword [edi + eax - 0x54]
cmp esi, edx
mov eax, ecx
mov dword [esp + 0x18], ecx
sbb eax, edi
mov eax, dword [esp + 0x1c]
lea ecx, [eax - 1]
mov dword [esp + 0x34], ecx
lea ecx, [eax + 1]
mov dword [esp + 0x10], ecx
jae 0x10030220
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov dword [esp], 1
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0xc], eax
jmp 0x10030241
mov dword [esp], 0
jmp 0x10030454
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x20], edx
mov dword [esp + 0xc], eax
mov edx, esi
mov dword [esp], 0
mov dword [esp + 0x1c], ecx
imul eax, dword [esp + 0x10], 0xd0
mov ebx, dword [esp + 8]
mov ecx, dword [ebx + eax + 0x78]
mov esi, dword [ebx + eax + 0x7c]
mov eax, dword [esp + 0xc]
cmp ecx, edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], ecx
sbb esi, edi
mov esi, dword [esp]
setb cl
adc esi, 0
test cl, cl
cmovne eax, dword [esp + 0x10]
test cl, cl
cmovne edi, dword [esp + 0x34]
test cl, cl
cmovne edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
sbb edi, dword [esp + 0x28]
setb cl
adc esi, 0
test cl, cl
mov ecx, dword [esp + 0x14]
cmovne eax, edx
mov dword [esp + 0x1c], eax
mov eax, ecx
or eax, 1
mov dword [esp + 0x10], eax
imul eax, ecx, 0xd0
mov edx, dword [ebx + eax + 0x7c]
mov edi, dword [ebx + eax + 0x78]
mov dword [esp + 0xc], edx
mov edx, dword [ebx + eax - 0x58]
mov ebx, dword [ebx + eax - 0x54]
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0xc]
cmp edi, edx
mov edi, ecx
lea ecx, [ecx - 1]
sbb eax, ebx
mov eax, esi
jae 0x10030300
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
inc eax
mov dword [esp], eax
mov dword [esp + 0x28], esi
mov esi, edx
mov edx, ecx
mov dword [esp + 0x20], edi
jmp 0x10030319
mov dword [esp + 0x28], ebx
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x20], edx
mov edx, edi
mov dword [esp + 0x14], ecx
mov dword [esp], eax
imul eax, dword [esp + 0x10], 0xd0
mov ecx, dword [esp + 8]
mov edi, dword [ecx + eax + 0x78]
mov eax, dword [ecx + eax + 0x7c]
mov dword [esp + 0xc], edi
cmp edi, esi
mov edi, esi
mov esi, eax
mov dword [esp + 0x18], eax
sbb esi, ebx
mov esi, dword [esp]
setb al
adc esi, 0
test al, al
cmovne edx, dword [esp + 0x10]
test al, al
cmovne ebx, dword [esp + 0x18]
test al, al
mov eax, dword [esp + 0x14]
cmovne edi, dword [esp + 0xc]
cmp edi, dword [esp + 0x20]
sbb ebx, dword [esp + 0x28]
setb bl
adc esi, 0
test bl, bl
mov ebx, edx
mov dword [esp], esi
cmovne ebx, eax
imul eax, dword [esp + 4], 0xd0
mov dword [esp + 0x14], ebx
mov edx, dword [ecx + eax + 0x7c]
mov esi, dword [ecx + eax - 0x58]
mov edi, dword [ecx + eax - 0x54]
mov dword [esp + 0x44], edx
mov edx, dword [ecx + eax + 0x78]
mov ecx, dword [esp + 4]
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x44]
cmp edx, esi
mov esi, edx
mov edx, eax
sbb eax, edi
lea eax, [ecx - 1]
mov dword [esp + 0x18], eax
lea eax, [ecx + 1]
jae 0x100303d0
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
inc dword [esp]
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], ecx
jmp 0x100303ea
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], edi
mov edi, edx
mov dword [esp + 0xc], ebx
mov dword [esp + 4], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x34], eax
imul eax, eax, 0xd0
mov ecx, dword [edx + eax + 0x78]
mov ebx, dword [edx + eax + 0x7c]
mov eax, esi
cmp ecx, esi
mov esi, ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ebx
sbb esi, edi
mov esi, dword [esp]
setb bl
adc esi, 0
test bl, bl
cmovne ecx, dword [esp + 0x34]
test bl, bl
cmovne edi, dword [esp + 0x18]
test bl, bl
mov ebx, dword [esp + 0x14]
cmovne eax, dword [esp + 0x28]
cmp eax, dword [esp + 0xc]
sbb edi, dword [esp + 0x20]
setb al
adc esi, 0
mov dword [esp], esi
mov esi, dword [esp + 4]
test al, al
cmove esi, ecx
mov dword [esp + 4], esi
imul ecx, ebx, 0xd0
mov eax, edx
mov dword [esp + 0x14], ebx
mov esi, dword [edx + ecx + 0x78]
mov ecx, dword [edx + ecx + 0x7c]
imul edx, dword [esp + 0x1c], 0xd0
mov ebx, dword [eax + edx + 0x78]
mov edi, dword [eax + edx + 0x7c]
mov edx, ecx
mov eax, ecx
cmp esi, ebx
sbb edx, edi
jae 0x100304a0
mov ecx, dword [esp + 0x1c]
inc dword [esp]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], ecx
jmp 0x100304bc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
mov ebx, esi
mov edi, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], edx
imul esi, dword [esp + 4], 0xd0
mov eax, dword [esp + 8]
mov ecx, dword [eax + esi + 0x78]
mov eax, dword [eax + esi + 0x7c]
mov dword [esp + 0x1c], ecx
cmp ecx, ebx
mov esi, eax
mov ecx, dword [esp]
sbb esi, edi
mov esi, dword [esp + 0x20]
setb dl
adc ecx, 0
test dl, dl
cmovne esi, dword [esp + 4]
test dl, dl
cmovne edi, eax
test dl, dl
cmovne ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x10]
sbb edi, dword [esp + 0xc]
jae 0x10030520
cmp ecx, 0xb
jae 0x10030550
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
inc ecx
jmp 0x10030526
mov ebx, esi
mov esi, dword [esp + 0x2c]
lea edi, [esp + 0x48]
test ecx, ecx
sete al
test al, al
sete al
or al, byte [esp + 0x33]
jne 0x100305d7
jmp 0x100307d0
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 8]
mov esi, eax
imul eax, eax, 0xd0
shr esi, 1
lea edi, [ebx + eax - 0xd0]
nop dword [eax]
push 0xd0
push ebx
lea eax, [esp + 0x50]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0xd0
push edi
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0xd0
lea eax, [esp + 0x4c]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, 0xd0
add edi, 0xffffff30
dec esi
jne 0x10030570
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
mov al, 1
lea edi, [esp + 0x48]
not ebx
add ebx, dword [esp + 0x24]
test al, al
sete al
or al, byte [esp + 0x33]
je 0x100307d0
cmp dword [esp + 0x38], 0
mov edx, dword [esp + 8]
je 0x100307f0
cmp ebx, dword [esp + 0x24]
jae 0x10030a5f
mov ecx, dword [esp + 0x38]
imul esi, ebx, 0xd0
mov eax, dword [ecx + 0x78]
mov ecx, dword [ecx + 0x7c]
cmp eax, dword [edx + esi + 0x78]
sbb ecx, dword [edx + esi + 0x7c]
jb 0x10030800
add esi, edx
push 0xd0
push edx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0xd0
push esi
push dword [esp + 0x10]
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
push 0xd0
push edi
push esi
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x14]
add esp, 0xc
lea eax, [edx + 0xd0]
mov ecx, 0x1e
lea edi, [esp + 0x118]
mov esi, edx
xor ebx, ebx
mov dword [esp + 0x10], eax
rep movsd dword es:[edi], dword [esi]
lea esi, [edx + 0x80]
mov ecx, 0x14
lea edi, [esp + 0x190]
mov eax, dword [edx + 0x78]
mov dword [esp + 0x14], esi
mov dword [esp], eax
mov eax, dword [edx + 0x7c]
mov dword [esp + 4], eax
lea eax, [edx + 0x148]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x24]
lea eax, [edi - 1]
cmp ebx, eax
jae 0x100306cf
imul ecx, ebx, 0xd0
add ecx, dword [esp + 0x1c]
nop word cs:[eax + eax]
nop
mov edx, dword [esp]
mov esi, dword [esp + 4]
cmp edx, dword [ecx]
sbb esi, dword [ecx + 4]
jb 0x100306cb
inc ebx
add ecx, 0xd0
cmp eax, ebx
jne 0x100306b0
mov ebx, eax
mov edx, dword [esp + 8]
imul eax, edi, 0xd0
add eax, edx
nop word [eax + eax]
dec edi
cmp ebx, edi
jae 0x10030760
mov ecx, dword [esp]
lea esi, [eax - 0xd0]
cmp ecx, dword [eax - 0x58]
mov ecx, dword [esp + 4]
sbb ecx, dword [eax - 0x54]
mov eax, esi
jb 0x100306e0
imul eax, ebx, 0xd0
add eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
push 0xd0
push eax
lea eax, [esp + 0x50]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0xd0
push esi
push dword [esp + 0x14]
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
push 0xd0
lea eax, [esp + 0x4c]
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x14]
add esp, 0xc
inc ebx
lea eax, [edi - 1]
cmp ebx, eax
jb 0x1003069a
jmp 0x100306cf
mov ecx, 0x1e
mov edi, edx
lea esi, [esp + 0x118]
inc ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x14
lea esi, [esp + 0x190]
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x14]
mov dword [edx + 0x7c], eax
mov eax, dword [esp]
mov dword [edx + 0x78], eax
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x24]
mov ecx, eax
sub ecx, ebx
jb 0x10030a73
imul eax, ebx, 0xd0
mov bh, byte [esp + 0x32]
mov edi, ecx
add edx, eax
cmp ecx, 0x15
jae 0x10030180
jmp 0x100308c3
mov ecx, edx
mov edx, edi
call fcn.100f3b10
mov edx, dword [esp + 8]
dec dword [esp + 0x3c]
jmp 0x10030197
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x24]
call fcn.100f42a0
test al, al
je 0x100305d7
jmp 0x10030a57
mov edi, dword [esp + 0x40]
jmp 0x10030806
mov edi, dword [esp + 0x24]
mov esi, edx
mov ecx, esi
mov edx, edi
push ebx
call fcn.10030ab0
add esp, 4
mov byte [esp], dl
mov ebx, eax
mov edx, edi
mov ecx, edi
sub edx, ebx
cmp ebx, edx
cmovbe edx, ebx
shr ecx, 3
cmp edx, ecx
mov ecx, ebx
setae bh
sub edi, ecx
jb 0x10030a84
je 0x10030a8b
mov eax, edi
imul edi, ecx, 0xd0
mov edx, esi
add edi, esi
dec eax
lea esi, [edi + 0xd0]
cmp ecx, eax
mov dword [esp + 4], esi
mov esi, ecx
jae 0x10030890
mov ecx, edx
mov edx, esi
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push dword [ebp + 8]
mov esi, eax
call fcn.10030120
add esp, 0xc
mov edx, esi
mov ecx, esi
mov esi, dword [esp + 4]
mov dword [esp + 0x38], edi
mov ah, byte [esp]
and ah, 1
cmp ecx, 0x15
jae 0x1003014f
jmp 0x100308c5
mov ecx, dword [esp + 4]
mov dword [esp + 0x2c], edx
mov edx, eax
push dword [esp + 0x3c]
push edi
push dword [ebp + 8]
call fcn.10030120
add esp, 0xc
mov ecx, esi
mov edx, esi
mov esi, dword [esp + 0x2c]
mov ah, byte [esp]
and ah, 1
cmp ecx, 0x15
jae 0x1003014f
jmp 0x100308c5
mov esi, edx
cmp ecx, 2
jb 0x10030a57
mov ebx, 1
xor edx, edx
mov edi, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x10], ecx
jmp 0x10030940
mov ebx, dword [esp + 0x2c]
nop word cs:[eax + eax]
nop
mov ecx, 0x1e
mov edi, ebx
lea esi, [esp + 0x48]
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x118]
mov ecx, dword [esp]
mov dword [ebx + 0x78], eax
mov dword [ebx + 0x7c], ecx
sub ebx, 0xffffff80
mov ecx, 0x14
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x38]
dec edx
add edi, 0xd0
cmp ebx, ecx
je 0x10030a57
mov dword [esp + 8], edx
mov edx, esi
imul esi, ebx, 0xd0
mov dword [esp + 0x14], ebx
inc ebx
mov eax, dword [edx + esi + 0x78]
mov dword [esp + 0x1c], esi
cmp eax, dword [edx + esi - 0x58]
mov eax, dword [edx + esi + 0x7c]
sbb eax, dword [edx + esi - 0x54]
mov esi, edx
mov edx, dword [esp + 8]
jae 0x10030931
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x24], edi
dec dword [esp + 0x14]
mov ecx, 0x1e
lea edi, [esp + 0x48]
lea eax, [esi + ebx]
lea edx, [esi + ebx + 0x78]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x118]
mov ecx, dword [edx]
mov dword [esp + 4], ecx
mov ecx, dword [edx + 4]
mov dword [esp], ecx
mov ecx, dword [esp + 0x2c]
lea esi, [ecx + ebx + 0x80]
mov ecx, 0x14
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
imul ebx, edi, 0xd0
add ebx, esi
push 0xd0
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
test edi, edi
je 0x100308f0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 4]
mov edx, dword [esp]
mov edi, dword [esp + 8]
cmp eax, dword [ecx + esi - 0x128]
sbb edx, dword [ecx + esi - 0x124]
mov esi, dword [esp + 0x24]
jae 0x100308f0
nop word cs:[eax + eax]
nop
lea ebx, [esi - 0xd0]
push 0xd0
push ebx
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
inc edi
je 0x100308e1
mov eax, dword [esp + 4]
mov ecx, dword [esp]
cmp eax, dword [esi - 0x128]
sbb ecx, dword [esi - 0x124]
mov esi, ebx
jb 0x10030a10
jmp 0x100308f0
mov ecx, edx
mov edx, edi
push dword [ebp + 8]
call fcn.100f4740
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x101181dc
push dword [esp + 0x28]
push ebx
call fcn.100f98c0
add esp, 0xc
ud2
push 0x101181ec
push eax
push ebx
call fcn.100f9ae0
add esp, 0xc
ud2
push 0x101181fc
jmp 0x10030a90
push 0x1011820c
push 0x23
push str.assertion_failed:_mid___self.len___rustc_dc80ca78b6ec2b6bba02560470347433bcd0bb3clibrarycore_src_slice_sort.rs
call fcn.100f9870
add esp, 0xc
ud2