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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1b0
mov esi, dword [edx + 0x10]
call 0x42ec5f
pop edi
mov eax, ecx
mov dword [esp + 0xd4], edi
test esi, esi
mov dword [esp + 0x28], esi
je 0x42f066
mov ecx, dword [ebp + 8]
mov ebx, dword [edx]
mov dword [esp + 0x24], edx
mov edi, dword [edx + 4]
lea esi, [esp + 0x58]
mov dword [esp + 4], eax
mov edx, dword [ecx]
mov ecx, esi
mov dword [esp + 0x40], edx
call fcn.00411722
movzx eax, word [esi]
mov si, 0x18
test ax, ax
je 0x42eca7
movzx esi, word [esp + 0x5a]
cmp si, 2
jbe 0x42fa2a
movzx ecx, word [esp + 0x5c]
cmp ebx, 1
mov edx, 0
mov word [esp + 0x32], si
movq xmm2, qword [0x468420]
sbb edx, edx
or edx, edi
test ax, ax
movzx eax, si
mov esi, 0x4f
mov edi, dword [esp + 0x28]
mov dword [esp + 0x100], edx
cmovne esi, ecx
cmp edx, eax
cmovb eax, edx
mov dword [esp + 0xd8], esi
add eax, 0xfffffffe
xor ecx, ecx
movd xmm1, edi
inc ecx
cmp edx, 3
por xmm1, xmm2
cmovb eax, ecx
subsd xmm1, xmm2
mov dword [esp + 0xc], ecx
movd xmm0, eax
mov dword [esp + 0x18], eax
movapd xmmword [esp + 0x190], xmm1
por xmm0, xmm2
subsd xmm0, xmm2
divsd xmm1, xmm0
sub esp, 8
movsd qword [esp], xmm1
call fcn.0045b920
add esp, 8
fstp qword [esp + 0x188]
xorpd xmm1, xmm1
lea ebx, [esp + 0xbc]
movsd xmm0, qword [esp + 0x188]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x44], 4
maxsd xmm0, xmm1
minsd xmm0, qword [0x468428]
cvttsd2si eax, xmm0
subsd xmm0, qword [0x468430]
mov ecx, eax
sar ecx, 0x1f
cvttsd2si edx, xmm0
and edx, ecx
mov ecx, dword [esi + 0x18]
or edx, eax
mov eax, dword [esi + 0x14]
cmp edx, 2
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 8]
setae byte [esp + 3]
mov dword [ebx - 0xc], edx
mov dword [ebx - 8], eax
mov dword [ebx - 4], ecx
mov ecx, 0
lea eax, [esp + 0xc0]
lea edx, [esp + 0x148]
mov dword [ebx], ecx
mov dword [eax], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 8]
mov byte [eax + 4], 1
mov eax, 0x110000
mov dword [edx - 0x28], eax
mov dword [edx], eax
lea eax, [edi + edi*2]
mov edi, 0xa
lea eax, [ecx + eax*4]
mov dword [edx + 0x28], ecx
mov dword [esp + 0xd0], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0xdc], eax
mov dword [edx + 0x2c], eax
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x120]
call fcn.0042d924
test eax, eax
jne 0x42ee9c
mov eax, dword [esp + 0x170]
test eax, eax
je 0x42ee88
cmp eax, dword [esp + 0x174]
je 0x42ee88
lea ecx, [eax + 0xc]
mov dword [esp + 0x170], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x120], edi
mov dword [esp + 0x124], ecx
xor ecx, ecx
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], 1
mov dword [esp + 0x138], edi
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], eax
mov word [esp + 0x144], 1
jmp 0x42edfd
lea ecx, [esp + 0x148]
call fcn.0042d924
test eax, eax
je 0x42f037
mov ecx, 4
mov ebx, eax
mov esi, edx
call fcn.0042d8d3
lea ecx, [esp + 0x34]
mov dword [eax], ebx
mov dword [eax + 4], esi
mov dword [esp + 0xe0], eax
lea edi, [esp + 0x58]
lea esi, [esp + 0x120]
xor ebx, ebx
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], 1
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 8], 8
lea ecx, [esp + 0x58]
call fcn.0042d924
test eax, eax
jne 0x42ef60
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x42ef48
cmp eax, dword [esp + 0xac]
je 0x42ef48
lea ecx, [eax + 0xc]
mov edx, 0xa
mov dword [esp + 0xa8], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], eax
mov word [esp + 0x7c], 1
jmp 0x42eee2
lea ecx, [esp + 0x80]
call fcn.0042d924
mov esi, edx
mov edx, dword [esp + 0x38]
test eax, eax
jne 0x42ef66
jmp 0x42efbe
mov esi, edx
mov edx, dword [esp + 0x38]
mov edi, eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
cmp eax, edx
je 0x42ef97
mov edx, dword [esp + 0xe0]
add ecx, 8
mov dword [esp + 8], ecx
mov dword [edx + eax*8], edi
mov dword [edx + eax*8 + 4], esi
inc eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x3c], eax
jmp 0x42eee2
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x34]
push 1
call fcn.00466f1e
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
add esp, 4
mov edx, dword [esp + 0x34]
mov dword [esp + 0xe0], edx
jmp 0x42ef74
mov eax, dword [esp + 0x34]
cmp dword [esp + 0xc], 0
mov esi, dword [esp + 8]
mov dword [esp + 0x14], edx
mov dword [esp + 0xe0], eax
je 0x42f012
lea eax, [esp + 0x44]
mov ecx, dword [esp + 0xe0]
mov edx, dword [eax + 8]
lea ebx, [ecx + 4]
mov edi, dword [ebx]
cmp edx, dword [esp + 0x48]
jne 0x42effe
lea ecx, [esp + 0x44]
call fcn.0042ded6
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
add ebx, 8
mov dword [eax + edx*4], edi
inc edx
add esi, 0xfffffff8
mov dword [esp + 0x4c], edx
jne 0x42efe9
cmp dword [esp + 0x14], 0
je 0x42f037
push dword [esp + 0xe0]
push 0
push dword [0x4c0838]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x40]
lea esi, [esp + 0x58]
mov ecx, esi
mov eax, dword [eax + 4]
mov dword [esp + 0x104], eax
push eax
call fcn.00411a05
add esp, 4
cmp byte [esi], 4
mov ebx, dword [esp + 0x54]
jne 0x42f08a
mov ecx, dword [esp + 0x1c]
jmp 0x42f09a
lea ecx, [eax + 4]
mov edx, 0x27
push 0x25
push str.Empty_list_of_items_given_to__Select___Page__
mov esi, eax
call fcn.00456b13
add esp, 8
mov dword [esi], 1
jmp 0x42f8cc
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x1c]
cmp al, 4
jne 0x42f899
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], 0
lea edx, [eax + 0x20]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x108], edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x28]
add eax, 0xffffffff
mov dword [esp + 0xcc], eax
mov eax, 0
adc eax, 0xffffffff
mov dword [esp + 0xfc], eax
mov eax, dword [ebp + 8]
mov al, byte [eax + 5]
mov byte [esp + 0x23], al
mov al, 1
mov dword [esp + 0x2c], eax
xor eax, eax
inc eax
mov dword [esp + 0xc8], eax
cmp dword [esp + 0x50], 0
mov dword [esp + 0x1c], ecx
je 0x42f18d
mov eax, dword [esp + 0x108]
cmp byte [esp + 3], 0
mov dword [esp + 0x34], eax
je 0x42f126
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], 1
inc eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
jmp 0x42f135
cmp byte [esp + 0x2c], 0
je 0x42f16e
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
lea ecx, [esp + 0x120]
lea edx, [esp + 0xb0]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.0042faac
add esp, 8
cmp byte [esp + 0x120], 4
je 0x42f16e
mov eax, dword [esp + 0x120]
cmp al, 4
jne 0x42f8da
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x58]
call fcn.00410e1c
cmp byte [esp + 0x58], 4
je 0x42f18d
mov eax, dword [esp + 0x58]
cmp al, 4
jne 0x42f8d4
cmp dword [esp + 0x18], 0
je 0x42f3f0
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0xbc]
mov dword [esp + 8], 0
mov dword [esp + 0x54], ebx
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0xb4]
mov ecx, eax
mov dword [esp + 0xe0], eax
imul ecx, dword [esp + 0x10]
mov dword [esp + 0x114], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x110], edx
mov edx, dword [esp + 0xd0]
test ecx, ecx
je 0x42f21d
mov eax, dword [esp + 0xdc]
mov esi, edx
sub eax, edx
mov edx, 0xaaaaaaab
mul edx
shr edx, 3
cmp edx, ecx
jbe 0x42f3f0
add dword [esp + 8], ecx
lea eax, [ecx + ecx*2]
mov edx, esi
lea edx, [esi + eax*4]
jmp 0x42f22a
cmp edx, dword [esp + 0xdc]
je 0x42f3f0
xor ecx, ecx
cmp ebx, dword [esp + 8]
mov eax, dword [edx]
mov dword [esp + 0x14], edx
mov edx, dword [edx + 8]
mov dword [esp + 0x58], 1
sete cl
xor esi, esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
push ecx
push edx
push eax
push 0x4b0538
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x128]
mov eax, dword [esp + 0x128]
call dword [eax + 0x44]
add esp, 0x18
test al, al
je 0x42f298
lea ecx, [esp + 0x120]
call fcn.0042db49
cmp byte [esp + 0x120], 4
je 0x42f298
mov eax, dword [esp + 0x120]
cmp al, 4
jne 0x42f398
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x2c], edi
test ecx, ecx
mov dword [esp + 0x11c], eax
mov dword [esp + 0x118], ecx
je 0x42f33a
lea esi, [eax + ecx]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov bl, byte [eax]
movzx edi, bl
test bl, bl
js 0x42f2cf
inc eax
jmp 0x42f32a
movzx edx, byte [eax + 1]
and edi, 0x1f
and edx, 0x3f
cmp bl, 0xdf
jbe 0x42f314
movzx esi, byte [eax + 2]
shl edx, 6
and esi, 0x3f
or esi, edx
cmp bl, 0xf0
jb 0x42f31e
movzx edx, byte [eax + 3]
and edi, 7
shl esi, 6
mov ebx, edi
shl ebx, 0x12
and edx, 0x3f
or edx, esi
mov edi, edx
or edi, ebx
cmp edi, 0x110000
je 0x42f33c
add eax, 4
jmp 0x42f326
shl edi, 6
add eax, 2
or edi, edx
jmp 0x42f32a
shl edi, 0xc
add eax, 3
or edi, esi
mov esi, dword [esp + 0xc]
xor edx, edx
cmp edi, 0xa
sete dl
add ecx, edx
cmp eax, esi
jne 0x42f2c3
jmp 0x42f33c
xor ecx, ecx
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x10c]
lea edi, [ecx + edi + 1]
lea ecx, [esp + 0x34]
mov dword [esp + 0xbc], edi
mov edx, dword [eax]
push dword [esp + 0x118]
push dword [esp + 0x120]
call fcn.0041080a
add esp, 8
cmp dword [esp + 0x5c], 0
je 0x42f387
push dword [esp + 0x58]
push 0
push dword [0x4c0838]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp byte [esp + 0x34], 4
mov ebx, dword [esp + 0x54]
jne 0x42f3c0
mov edx, dword [esp + 0x14]
jmp 0x42f3d0
mov ecx, dword [esp + 0x124]
cmp dword [esp + 0x5c], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
je 0x42f3c0
push dword [esp + 0x58]
push 0
push dword [0x4c0838]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
cmp al, 4
jne 0x42f89f
mov eax, dword [esp + 0xe0]
inc dword [esp + 8]
add edx, 0xc
xor ecx, ecx
dec eax
test eax, eax
mov dword [esp + 0xe0], eax
jne 0x42f1ee
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x58]
call fcn.00410e1c
cmp byte [esp + 0x58], 4
je 0x42f40f
mov eax, dword [esp + 0x58]
cmp al, 4
jne 0x42f899
movzx edx, byte [esp + 0x23]
lea ecx, [esp + 0x58]
call fcn.00410a4c
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
lea esi, [edx - 2]
cmp esi, 0x12
ja 0x42f46f
mov esi, dword [esi*4 + 0x42fa4c]
add esi, dword [esp + 0xd4]
jmp esi
cmp edx, 1
jne 0x42f51e
test ecx, ecx
je 0x42f51e
push eax
push 0
push dword [0x4c0838]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x42f51e
mov edx, ebx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x58]
call fcn.00411722
cmp word [esp + 0x58], 0
movzx edi, word [esp + 0x5a]
movzx esi, word [esp + 0x5c]
mov cx, 0x18
mov ax, 0x4f
cmove di, cx
cmove si, ax
mov ecx, dword [esp + 0x1c]
cmp word [esp + 0x32], di
jne 0x42f56a
cmp word [esp + 0xd8], si
je 0x42f613
cmp di, 2
jbe 0x42fa2a
mov eax, dword [esp + 0x100]
movzx ecx, di
mov edx, 1
movsd xmm1, qword [0x468420]
cmp eax, ecx
cmovb ecx, eax
add ecx, 0xfffffffe
cmp eax, 3
cmovb ecx, edx
movd xmm0, ecx
mov dword [esp + 0x18], ecx
por xmm0, xmmword [0x468440]
subsd xmm0, xmm1
movapd xmm1, xmmword [esp + 0x190]
divsd xmm1, xmm0
sub esp, 8
movsd qword [esp], xmm1
call fcn.0045b920
add esp, 8
fstp qword [esp + 0x180]
xorpd xmm1, xmm1
movsd xmm0, qword [esp + 0x180]
mov word [esp + 0x32], di
maxsd xmm0, xmm1
minsd xmm0, qword [0x468428]
cvttsd2si eax, xmm0
subsd xmm0, qword [0x468430]
mov ecx, eax
sar ecx, 0x1f
cvttsd2si edx, xmm0
and edx, ecx
mov ecx, edx
or ecx, eax
mov eax, esi
mov dword [esp + 0xd8], eax
cmp byte [esp + 3], 0
mov edx, ecx
mov dword [esp + 0x1c], edx
sete al
cmp ecx, 2
setae cl
xor cl, al
je 0x42f637
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
xor eax, eax
jmp 0x42f67a
cmp edx, 2
movzx eax, byte [esp + 0x104]
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x58]
setae byte [esp + 3]
push dword [esp + 0x18]
push eax
call fcn.00410edf
add esp, 8
cmp byte [esp + 0x58], 4
mov edi, dword [esp + 0x14]
jne 0x42f66b
mov al, 1
jmp 0x42f676
mov ebx, dword [esp + 0x58]
mov al, 1
cmp bl, 4
jne 0x42f6b4
mov ecx, dword [esp + 0x18]
cmp edi, 0xffffffff
mov dword [esp + 0x2c], eax
je 0x42f6ae
mov edx, dword [esp + 0x10]
mov eax, ecx
imul eax, edx
cmp eax, edi
ja 0x42f69e
lea eax, [edx + 1]
imul eax, ecx
cmp eax, edi
jbe 0x42f69e
mov eax, edx
jmp 0x42f6c7
test ecx, ecx
je 0x42fa11
mov eax, edi
xor edx, edx
div ecx
jmp 0x42f6c7
mov eax, dword [esp + 0x10]
jmp 0x42f6c7
mov al, 1
cmp bl, 4
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
jne 0x42f9e3
cmp byte [esp + 3], 0
mov dword [esp + 0x10], eax
je 0x42f723
mov esi, dword [esp + 0xc0]
mov eax, dword [esp + 0xb0]
lea ecx, [esp + 0x58]
add esi, dword [esp + 0xbc]
mov edx, dword [eax]
push esi
push dword [eax + 4]
call fcn.00410edf
add esp, 8
cmp byte [esp + 0x58], 4
je 0x42f70c
mov eax, dword [esp + 0x58]
cmp al, 4
jne 0x42f899
mov dword [esp + 0xbc], 0
lea ecx, [esp + 0xc0]
jmp 0x42f87a
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xbc]
test edi, edi
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
je 0x42f83a
mov ebx, dword [esp + 0x44]
shl edi, 2
mov eax, dword [esp + 0xc]
mov esi, dword [ebx]
lea ecx, [esp + 0x58]
mov edx, dword [eax]
call fcn.00411722
cmp word [esp + 0x58], 0
mov ax, 0x4f
je 0x42f76e
movzx eax, word [esp + 0x5c]
movzx eax, ax
cmp esi, eax
jbe 0x42f82e
movd xmm1, esi
movsd xmm0, qword [0x468420]
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x58]
por xmm1, xmmword [0x468440]
mov edx, dword [eax]
subsd xmm1, xmm0
addsd xmm1, qword [0x468450]
movapd xmmword [esp + 0xe0], xmm1
call fcn.00411722
cmp word [esp + 0x58], 0
mov ax, 0x4f
je 0x42f7c2
movzx eax, word [esp + 0x5c]
movapd xmm1, xmmword [esp + 0xe0]
movzx eax, ax
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm1, xmm0
sub esp, 8
movsd qword [esp], xmm1
call fcn.0045b920
add esp, 8
fstp qword [esp + 0x178]
xorpd xmm1, xmm1
movsd xmm0, qword [esp + 0x178]
maxsd xmm0, xmm1
minsd xmm0, qword [0x468428]
cvttsd2si eax, xmm0
subsd xmm0, qword [0x468430]
mov ecx, eax
sar ecx, 0x1f
cvttsd2si edx, xmm0
and edx, ecx
or edx, eax
mov eax, dword [esp + 8]
lea eax, [eax + edx - 1]
mov dword [esp + 8], eax
add ebx, 4
add edi, 0xfffffffc
jne 0x42f74c
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x58]
mov edx, dword [eax]
push dword [esp + 8]
push dword [eax + 4]
call fcn.00410edf
add esp, 8
cmp byte [esp + 0x58], 4
jne 0x42f867
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0xbc]
jmp 0x42f87a
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0xbc]
cmp al, 4
jne 0x42f88b
mov dword [ecx], 0
mov ecx, dword [esp + 0x1c]
mov ebx, edi
jmp 0x42f0ee
mov ecx, dword [esp + 0x1c]
cmp al, 4
mov ebx, edi
je 0x42f0ee
mov ecx, dword [esp + 0x5c]
jmp 0x42f8a3
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 4]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov dword [edx], 1
cmp dword [esp + 0x48], 0
je 0x42f8cc
push dword [esp + 0x44]
push 0
push dword [0x4c0838]
call dword [sym.imp.kernel32.dll_HeapFree]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x5c]
jmp 0x42f8e1
mov ecx, dword [esp + 0x124]
mov edx, eax
movzx eax, al
shrd edx, ecx, 8
shr ecx, 8
shld ecx, edx, 8
shl edx, 8
or eax, edx
mov edx, dword [esp + 4]
mov dword [edx + 8], ecx
mov dword [edx + 4], eax
jmp 0x42f8ad
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
mov dword [edx + 4], ebx
jmp 0x42f8aa
mov ecx, str.attempt_to_divide_by_zeroan_error_occurred_when_formatting_an_argument
mov edx, 0x19
push 0x4b0684
call fcn.00465d70
add esp, 4
ud2
mov ecx, str.assertion_failed:_min___max_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_srccmp.rs
mov edx, 0x1c
push 0x4b04d4
jmp 0x42fa20