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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xe0
mov dword [esp + 0x74], ecx
mov ecx, dword [ebp + 8]
imul eax, dword [ebp + 0xc], 0xc
mov esi, edx
lea edx, [esp + 0x60]
mov edi, dword [esi]
mov dword [esp + 0x78], esi
add eax, ecx
mov dword [edx], ecx
mov ecx, dword [esi + 8]
lea esi, [esp + 0x88]
mov dword [edx + 4], eax
mov dword [edx + 8], edi
mov dword [edx + 0xc], ecx
mov ecx, esi
call fcn.00422c90
cmp dword [esi + 8], 0
je 0x42244f
push 4
pop ecx
call fcn.0041c17c
lea esi, [esp + 0x88]
xor edi, edi
lea ecx, [esp + 0x28]
lea ebx, [esp + 0x38]
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], 0
movsd xmm0, qword [esi + 0x10]
movsd xmm1, qword [esi]
movsd xmm2, qword [esi + 8]
inc edi
mov dword [esp + 4], edi
movsd qword [eax], xmm1
movsd qword [eax + 8], xmm2
movsd qword [eax + 0x10], xmm0
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], 1
movsd xmm0, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
movsd qword [ebx + 8], xmm1
movsd qword [ebx], xmm0
mov ecx, esi
mov edx, ebx
call fcn.00422c90
cmp dword [esp + 0x90], 0
je 0x42240e
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0x2c]
jne 0x4223c8
lea ecx, [esp + 0x28]
mov edx, edi
call fcn.0041c1b5
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 4]
movsd xmm0, qword [esp + 0x88]
movsd xmm1, qword [esp + 0x90]
movsd xmm2, qword [esp + 0x98]
mov ecx, dword [esp + 0xc]
dec dword [esp + 0x20]
imul eax, edx, 0x18
inc edx
movsd qword [ecx + eax + 0x10], xmm2
movsd qword [ecx + eax + 8], xmm1
movsd qword [ecx + eax], xmm0
mov dword [esp + 4], edx
mov dword [esp + 0x30], edx
jmp 0x422398
mov edx, dword [esp + 0x94]
xor ecx, ecx
call fcn.0041c24b
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x2c]
cmp ebx, 0x15
mov dword [esp + 0x4c], edi
mov dword [esp + 4], ebx
jae 0x422461
mov esi, dword [esp + 0xc]
cmp ebx, 1
jbe 0x422854
mov ecx, esi
mov edx, ebx
push 1
call fcn.00425a78
pop eax
jmp 0x422854
push 8
pop esi
mov dword [esp + 0x4c], 0
xor ebx, ebx
jmp 0x422854
mov al, byte [0x64fd9c]
shr ebx, 1
imul ecx, ebx, 0x18
push 8
pop edx
call fcn.00404090
mov esi, dword [esp + 0xc]
test eax, eax
je 0x422bd0
mov dword [esp + 0x10], eax
push 0x10
pop ecx
mov ebx, ecx
call fcn.00425923
test eax, eax
je 0x422bdf
lea ecx, [esi + 0x30]
mov edi, eax
xor edx, edx
mov dword [esp + 0x24], 0
mov dword [esp + 0x50], ecx
mov ecx, ebx
mov esi, dword [esp + 4]
sub esi, edx
jbe 0x422836
cmp esi, 2
mov dword [esp], edx
mov dword [esp + 0x14], edi
mov dword [esp + 8], ecx
jae 0x4224cf
mov ebx, dword [esp + 4]
jmp 0x42257a
mov ecx, dword [esp + 0xc]
imul eax, edx, 0x18
add ecx, eax
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 0x18]
ucomisd xmm0, xmm1
ja 0x422514
mov ecx, dword [esp + 0x20]
add eax, dword [esp + 0x50]
movapd xmm2, xmm1
add ecx, edx
push 2
pop edx
lea edi, [ecx + edx]
cmp edi, 1
je 0x422543
movsd xmm3, qword [eax]
ucomisd xmm2, xmm3
ja 0x422541
inc edx
add eax, 0x18
movapd xmm2, xmm3
jmp 0x4224f8
mov ecx, dword [esp + 0x20]
add eax, dword [esp + 0x50]
movapd xmm2, xmm1
add ecx, edx
push 2
pop edx
lea edi, [ecx + edx]
cmp edi, 1
je 0x422543
movsd xmm3, qword [eax]
ucomisd xmm2, xmm3
jbe 0x422541
inc edx
add eax, 0x18
movapd xmm2, xmm3
jmp 0x422525
mov esi, edx
mov edx, dword [esp]
mov edi, dword [esp + 0x14]
ucomisd xmm0, xmm1
lea ebx, [esi + edx]
jbe 0x422576
mov ecx, edx
mov edx, ebx
push 0x5be720
push dword [esp + 8]
push dword [esp + 0x14]
call fcn.0041bf4d
add esp, 0xc
mov ecx, eax
call fcn.0041bf82
mov edx, dword [esp]
mov ecx, dword [esp + 8]
cmp ebx, edx
jb 0x422bac
cmp ebx, dword [esp + 4]
ja 0x422bac
jae 0x4225ce
cmp esi, 9
ja 0x4225ce
mov eax, dword [esp + 4]
lea ebx, [edx + 0xa]
mov ecx, edx
cmp ebx, eax
cmovae ebx, eax
cmp esi, 1
mov edx, ebx
adc esi, 0
push 0x5be7ec
push eax
push dword [esp + 0x14]
call fcn.0041bf4d
add esp, 0xc
mov ecx, eax
push esi
call fcn.00425a78
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0xc]
add esp, 4
mov esi, dword [esp + 0x24]
mov dword [esp + 0x58], ebx
cmp esi, ecx
jne 0x422616
mov ebx, ecx
add ecx, ecx
mov dword [esp + 0x54], ecx
call fcn.00425923
test eax, eax
je 0x422bbb
mov edi, eax
shl ebx, 3
push ebx
mov ebx, dword [esp + 0x18]
push ebx
push eax
call fcn.00570e70
add esp, 0xc
mov ecx, ebx
push 4
pop edx
call fcn.004040f0
mov ebx, dword [esp + 0x58]
mov edx, dword [esp]
jmp 0x42261a
mov dword [esp + 0x54], ecx
sub ebx, edx
mov dword [esp + 0x14], edi
mov dword [edi + esi*8], ebx
mov dword [edi + esi*8 + 4], edx
inc esi
mov ebx, dword [esp + 4]
mov edx, esi
mov ecx, edi
push ebx
call fcn.00404cc5
pop ecx
cmp eax, 1
mov dword [esp + 0x24], esi
jne 0x422829
mov ecx, edi
mov ebx, edi
mov edi, edx
mov edx, esi
push 0x5be730
push edi
call fcn.00424742
pop ecx
pop edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x80], edi
inc edi
mov edx, esi
mov dword [esp + 0x5c], ecx
mov ecx, ebx
mov dword [esp + 0x18], eax
push 0x5be740
mov dword [esp + 0x88], edi
push edi
call fcn.00424742
pop ecx
pop edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x7c], ecx
add edx, ecx
mov ecx, dword [esp + 0x18]
push 0x5be750
push dword [esp + 8]
push dword [esp + 0x14]
call fcn.0041bf4d
add esp, 0xc
mov ebx, dword [esp + 0x5c]
imul ecx, edx, 0x18
mov dword [esp], eax
imul esi, ebx, 0x18
sub edx, ebx
lea edi, [eax + esi]
cmp edx, ebx
jae 0x42274b
imul esi, edx, 0x18
push esi
push edi
mov ebx, dword [esp + 0x18]
push ebx
mov dword [esp + 0x14], ecx
call fcn.00570e70
add esp, 0xc
mov ecx, dword [esp]
mov eax, dword [esp + 8]
add esi, ebx
mov ebx, ecx
lea eax, [ecx + eax - 0x18]
cmp edi, ebx
jbe 0x4227bc
cmp esi, dword [esp + 0x10]
jbe 0x4227bc
movsd xmm0, qword [edi - 0x18]
movsd xmm1, qword [esi - 0x18]
xor ecx, ecx
xor edx, edx
ucomisd xmm0, xmm1
setbe cl
seta dl
neg ecx
neg edx
imul ecx, ecx, 0x18
imul edx, edx, 0x18
add esi, ecx
add edi, edx
ucomisd xmm0, xmm1
mov ecx, esi
cmova ecx, edi
movsd xmm0, qword [ecx + 0x10]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
add eax, 0xffffffe8
jmp 0x4226e9
add ecx, eax
mov dword [esp + 8], ecx
push esi
push eax
mov ebx, dword [esp + 0x18]
push ebx
call fcn.00570e70
add esp, 0xc
add esi, ebx
mov dword [esp + 0x1c], esi
cmp ebx, esi
jae 0x4227c2
cmp edi, dword [esp + 8]
jae 0x4227c2
movsd xmm0, qword [ebx]
xor ecx, ecx
xor edx, edx
mov eax, ebx
mov esi, dword [esp]
ucomisd xmm0, qword [edi]
cmova eax, edi
setbe cl
seta dl
movsd xmm0, qword [eax + 0x10]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
imul eax, edx, 0x18
add edi, eax
imul eax, ecx, 0x18
add ebx, eax
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
add esi, 0x18
mov dword [esp], esi
mov esi, dword [esp + 0x1c]
jmp 0x422766
mov ebx, dword [esp + 0x10]
jmp 0x4227c5
mov edi, dword [esp]
sub esi, ebx
push esi
push ebx
push edi
call fcn.00570e70
add esp, 0xc
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp esi, dword [esp + 0x84]
jbe 0x422b6f
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x18]
add eax, dword [esp + 0x5c]
cmp esi, edx
mov dword [edi + edx*8 + 8], eax
mov dword [edi + edx*8 + 0xc], ecx
jbe 0x422b7d
lea eax, [edi + edx*8]
lea ecx, [edi + edx*8 + 8]
not edx
add edx, esi
shl edx, 3
push edx
push ecx
push eax
call fcn.00570e70
add esp, 0xc
dec esi
jmp 0x422628
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
jmp 0x4224aa
push 4
pop edx
mov ecx, edi
call fcn.004040f0
push 8
pop edx
mov ecx, dword [esp + 0x10]
call fcn.004040f0
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 4]
imul edi, ebx, 0x18
mov ecx, ebx
mov dword [esp + 0xc], esi
lea eax, [esi + edi]
mov dword [esp + 8], eax
call fcn.0041be68
lea esi, [esp + 0x28]
mov dword [esi], eax
mov dword [esi + 4], edx
and dword [esi + 8], 0
mov ecx, esi
mov edx, ebx
call fcn.0041bea8
mov ebx, dword [esi + 8]
imul eax, ebx, 0xc
add eax, dword [esi]
mov esi, dword [esp + 0xc]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x38], esi
lea ecx, [esi + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], eax
test edi, edi
je 0x422925
mov edx, dword [esi + 0xc]
cmp dword [esi + 8], 0
je 0x42292d
movsd xmm0, qword [esi + 0x10]
lea eax, [esp + 0x90]
mov dword [esp + 0x10], edx
mov edx, edi
mov edi, ecx
mov ecx, ebx
mov ebx, esi
movsd qword [esp + 0x98], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x90], xmm1
movsd qword [esp + 0x88], xmm0
mov esi, dword [eax + 8]
movsd xmm0, qword [eax]
mov eax, dword [esp]
mov dword [esp + 0x68], esi
movsd qword [esp + 0x60], xmm0
mov dword [eax + 8], esi
lea esi, [ebx + 0x18]
mov ebx, ecx
mov ecx, edi
mov edi, edx
movsd qword [eax], xmm0
add eax, 0xc
inc ebx
add ecx, 0x18
add edi, 0xffffffe8
mov dword [esp], eax
jmp 0x4228a9
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
lea esi, [esp + 0x38]
mov dword [esi + 8], ecx
xor ecx, ecx
call fcn.0041c24b
mov ecx, esi
mov dword [esp + 0x30], ebx
call fcn.00419772
mov eax, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x28]
test eax, eax
mov dword [esp + 0x90], eax
movsd qword [esp + 0x88], xmm0
je 0x422995
dec eax
mov dword [esp + 0x90], eax
imul eax, eax, 0xc
mov ecx, dword [esp + 0x88]
mov edx, dword [ecx + eax]
movsd xmm0, qword [ecx + eax + 4]
test edx, edx
movsd qword [esp + 0xc8], xmm0
mov dword [esp + 0x1c], edx
sete byte [esp + 0x10]
jmp 0x4229a2
mov dword [esp + 0x1c], 0
mov byte [esp + 0x10], 1
lea edi, [esp + 0x88]
mov ecx, edi
call fcn.0053d5e4
xor ecx, ecx
xor ebx, ebx
call fcn.0041de71
mov edx, dword [esp + 0x74]
mov ecx, eax
mov dword [esp + 8], eax
call fcn.0041db6c
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
movsd xmm0, qword [eax]
mov eax, dword [eax + 8]
mov ecx, esi
mov dword [edi + 0xb], eax
movsd qword [edi + 3], xmm0
mov eax, dword [esp + 0x78]
movsd xmm0, qword [edi]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [edi + 7]
movsd qword [esp + 0x2f], xmm0
movsd xmm0, qword [eax]
mov eax, dword [eax + 8]
movsd qword [edi + 3], xmm0
mov dword [edi + 0xb], eax
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 7]
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x67], xmm1
call fcn.0041be68
lea edi, [esp + 0x38]
mov dword [edi], eax
mov dword [edi + 4], edx
and dword [edi + 8], 0
mov ecx, edi
mov edx, esi
call fcn.0041bea8
mov eax, dword [edi + 8]
test esi, esi
je 0x422a93
imul edx, eax, 0xc
add eax, esi
mov ecx, esi
mov esi, dword [ebp + 8]
add edx, dword [esp + 0x38]
mov dword [esp + 0x18], eax
mov dword [esp], edx
mov edx, dword [esi + ebx]
mov edi, ecx
lea ecx, [esp + 0x88]
push dword [esi + ebx + 8]
call fcn.00413c80
mov ecx, edi
add esp, 4
mov eax, dword [esp + 0x90]
mov edx, dword [esp]
mov dword [edx + ebx + 8], eax
movsd xmm0, qword [esp + 0x88]
movsd qword [edx + ebx], xmm0
add ebx, 0xc
dec ecx
jne 0x422a53
mov eax, dword [esp + 0x18]
movsd xmm0, qword [esp + 0x38]
lea edi, [esp + 0x88]
movsd xmm1, qword [esp + 0x2f]
movsd xmm3, qword [esp + 0x67]
mov esi, dword [esp + 8]
mov dword [edi + 0xb], eax
mov al, 2
mov edx, edi
movsd qword [edi + 3], xmm0
mov ecx, esi
movsd xmm0, qword [edi]
mov byte [edi], 1
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [edi + 7]
mov byte [edi + 4], al
movsd qword [esp + 0x3f], xmm0
movsd xmm0, qword [esp + 0x28]
movsd xmm2, qword [esp + 0x3f]
movsd qword [edi + 5], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [edi + 0xc], xmm1
mov byte [edi + 0x14], 5
mov byte [edi + 0x18], al
movsd qword [edi + 0x20], xmm3
movsd qword [edi + 0x19], xmm0
movsd xmm0, qword [esp + 0x38]
mov byte [edi + 0x28], 4
mov byte [edi + 0x2c], 3
movsd qword [edi + 0x34], xmm2
movsd qword [edi + 0x2d], xmm0
call fcn.00422bee
cmp byte [esp + 0x10], 0
jne 0x422b65
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], eax
mov byte [esp + 0x88], 2
push 0xc
pop edx
mov ecx, esi
push edi
call fcn.0041e23f
pop ecx
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x88]
mov edx, 0x5be760
jmp 0x422b89
lea ecx, [esp + 0x88]
mov edx, 0x5be7a0
mov dword [ecx], str.Index_out_of_bounds
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.assertion_failed:_mid___self.len__chunk_size_must_be_non_zero
and dword [ecx + 0xc], 0
call fcn.00580e60
ud2
push 0x2c
pop edx
mov ecx, str.assertion_failed:_end___start__end___len
push 0x5be7dc
jmp 0x422bc8
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
push 0x5be790
call fcn.00580fe0
pop eax
ud2
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
push 0x5be770
jmp 0x422bc8
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
push 0x5be780
jmp 0x422bc8