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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x298
mov dword [esp + 0x78], 2
and dword [esp + 0x88], 0
mov edi, edx
lea ebx, [edx + 0x18]
lea eax, [edx + 0x1c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ebx
mov dword [esp + 8], edx
mov esi, dword [ebx]
lea eax, [esi - 3]
cmp eax, 2
jae 0x4661da
mov eax, dword [edi]
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
cmp ecx, eax
sbb edx, 0
jae 0x4661e9
cmp eax, ecx
je 0x4661e9
jmp 0x4663cd
mov ecx, ebx
call fcn.004669ae
test al, al
jne 0x4663fc
and dword [edi + 0x14], 0
and dword [edi + 0x10], 0
and dword [edi], 0
cmp esi, 3
mov dword [edi + 0x18], 4
jne 0x4666c1
mov eax, dword [esp + 0x34]
mov edx, dword [edi + 0xc0]
mov ecx, dword [edi + 0x2c]
mov word [esp + 0x5c], 0x904
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
add edx, 9
mov dword [esp + 0x48], ecx
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x58]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edi
lea edi, [esp + 0x38]
mov edx, edi
movsd qword [esp + 0x20], xmm1
movsd qword [esp + 0x18], xmm0
call fcn.0042950c
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov esi, dword [ecx]
mov ecx, dword [esp + 0x1c]
mov ebx, esi
mov dword [esp + 0x4c], ecx
not ebx
cmp ebx, eax
cmovae ebx, eax
cmp ecx, ebx
jbe 0x4662c5
lea edi, [esp + 0x90]
lea edx, [esp + 0x18]
mov ecx, edi
push ebx
call fcn.00417f17
pop eax
mov edx, dword [esp + 0x90]
lea ecx, [esp + 0x38]
push dword [esp + 0x94]
call fcn.00423eab
pop eax
push edi
call fcn.0042064a
pop eax
movsd xmm0, qword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
movsd qword [esp + 0x90], xmm0
mov dword [esp + 0x98], eax
mov dword [esp + 0x14], ecx
jmp 0x4662dc
mov edx, dword [esp + 0x18]
mov eax, ecx
mov ecx, edi
push eax
call fcn.00423eab
pop eax
mov dword [esp + 0x14], 0
mov edi, dword [esp + 0x3c]
xor edx, edx
lea ecx, [esp + 0x50]
mov eax, dword [edi]
and dword [esp + 0x50], 0
sub eax, esi
bswap eax
mov dword [esp + 0x54], eax
push 0x5250f8
push 5
call fcn.0042ab14
pop ecx
pop ecx
mov esi, dword [esp + 0x14]
test edx, edx
je 0x466319
dec edx
cmp byte [eax], 0
lea eax, [eax + 1]
je 0x466307
jmp 0x46681e
xor ecx, ecx
push 3
pop edx
push 0x525158
push dword [edi]
push dword [edi + 0xc]
call fcn.0046d70c
add esp, 0xc
mov ecx, eax
push 0x525168
push 3
lea eax, [esp + 0x5d]
push eax
call fcn.004bda8a
add esp, 0xc
test esi, esi
je 0x466360
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
cmp edx, 5
jb 0x46680e
mov eax, dword [eax + 0xc]
add byte [eax + 4], 0xfc
cmp dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x98]
movsd xmm0, qword [esp + 0x90]
mov dword [esp + 0x68], eax
movsd qword [esp + 0x60], xmm0
ja 0x46638b
lea eax, [esp + 0x18]
push eax
call fcn.0042064a
pop eax
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
test esi, esi
je 0x4661b8
mov ecx, ebx
call fcn.0045d328
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x34]
movsd xmm0, qword [esp + 0x60]
mov dword [edi + 0x18], 3
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov ecx, dword [esp + 0x48]
mov dword [edi + 0x28], esi
mov dword [edi + 0x2c], ecx
jmp 0x4661b8
cmp byte [edi + 0xc4], 0
je 0x46650b
mov eax, 0x200
lea ecx, [esp + 0x90]
test eax, eax
je 0x46642b
and dword [ecx], 0
mov dword [ecx + 4], str._rustc_90c541806f23a127002de5b4038be731ba1458calibrarycore_src_strpattern.rs
add ecx, 8
add eax, 0xfffffff8
jmp 0x4663e6
cmp byte [edi + 0xc4], 0
je 0x466569
mov eax, 0x200
lea ecx, [esp + 0x90]
test eax, eax
je 0x466478
and dword [ecx], 0
mov dword [ecx + 4], str._rustc_90c541806f23a127002de5b4038be731ba1458calibrarycore_src_strpattern.rs
add ecx, 8
add eax, 0xfffffff8
jmp 0x466415
lea esi, [esp + 0x90]
mov ecx, edi
mov edx, esi
call fcn.00466956
mov ecx, esi
mov edx, eax
push 0x539864
call fcn.00457305
pop ecx
mov ecx, dword [edi + 0xcc]
push edx
push eax
push dword [ebp + 8]
push dword [edi + 0xc8]
lea eax, [esp + 0x28]
push eax
call dword [ecx + 0x1c]
add esp, 0x14
cmp byte [esp + 0x18], 5
jne 0x466585
mov al, 5
jmp 0x466560
lea esi, [esp + 0x90]
mov ecx, edi
mov edx, esi
call fcn.00466956
mov dword [esp + 0x14], eax
mov ecx, eax
mov edx, esi
push 0x53c290
push 0x40
call fcn.0045729c
pop ecx
pop ecx
mov esi, eax
xor eax, eax
test edx, edx
je 0x4664c5
mov ecx, ebx
call fcn.00466944
test eax, eax
mov eax, 0
je 0x4664c5
mov ecx, ebx
call fcn.004668e6
mov dword [esi], edx
mov dword [esi + 4], eax
xor eax, eax
inc eax
add eax, dword [esp + 0x14]
lea ecx, [esp + 0x90]
mov edx, eax
push 0x539864
call fcn.00457305
pop ecx
mov ecx, dword [edi + 0xcc]
push edx
push eax
push dword [ebp + 8]
push dword [edi + 0xc8]
lea eax, [esp + 0x28]
push eax
call dword [ecx + 0x1c]
add esp, 0x14
cmp byte [esp + 0x18], 5
jne 0x4665ad
mov al, 5
jmp 0x46668a
mov ecx, edi
call fcn.00466981
mov ecx, dword [edi + 0xcc]
push edx
push eax
push dword [ebp + 8]
push dword [edi + 0xc8]
lea eax, [esp + 0xa0]
push eax
call dword [ecx + 0x10]
add esp, 0x14
cmp byte [esp + 0x90], 5
mov al, 5
je 0x466560
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
cmp al, 4
je 0x466595
mov ecx, eax
shrd ecx, edx, 8
shr edx, 8
mov dword [esp + 0x30], ecx
mov dword [esp + 8], edx
mov edx, dword [esp + 8]
jmp 0x466655
mov eax, dword [edi]
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
cmp ecx, eax
sbb edx, 0
jae 0x4665bb
cmp eax, ecx
je 0x4665bb
mov ecx, edi
call fcn.00466981
jmp 0x4665c2
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
cmp al, 4
jne 0x466648
mov ecx, edi
call fcn.004668ac
mov dword [esp + 0x30], 0
mov al, 4
xor edx, edx
jmp 0x466655
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 8]
jmp 0x466603
mov ecx, ebx
call fcn.004668e6
mov ecx, dword [edi + 0xcc]
push edx
push eax
push dword [ebp + 8]
push dword [edi + 0xc8]
lea eax, [esp + 0xa0]
push eax
call dword [ecx + 0x10]
add esp, 0x14
cmp byte [esp + 0x90], 5
mov edx, dword [esp + 8]
mov al, 5
je 0x46668e
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
cmp al, 4
jne 0x466635
mov dword [esp + 4], ecx
mov ecx, dword [edi + 0x10]
mov eax, dword [edi]
mov esi, dword [edi + 0x14]
mov edx, ecx
sub edx, eax
sbb esi, 0
jae 0x466662
cmp eax, ecx
je 0x466662
mov eax, dword [esp + 4]
neg edx
mov ecx, edi
mov esi, eax
sub esi, edx
jbe 0x466671
call fcn.004668ac
jmp 0x466666
mov esi, eax
shrd esi, ecx, 8
shr ecx, 8
mov dword [esp + 0x10], esi
mov dword [esp + 4], ecx
jmp 0x46668e
mov ecx, eax
shrd ecx, edx, 8
shr edx, 8
mov dword [esp + 0x30], ecx
cmp al, 4
je 0x4661b4
jmp 0x4667ee
mov esi, dword [esp + 4]
mov ecx, ebx
mov edx, esi
call fcn.00466832
jmp 0x466678
mov edx, eax
call fcn.004668ac
mov dword [esp + 0x10], 0
mov al, 4
mov dword [esp + 4], 0
mov edx, dword [esp + 8]
cmp al, 4
je 0x4661b4
movzx eax, al
cmp eax, 5
je 0x4667a7
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
shld ecx, edx, 8
shl edx, 8
or edx, eax
mov dword [esi + 4], ecx
mov dword [esi], edx
jmp 0x4667d4
cmp esi, 4
je 0x466785
mov ecx, dword [esp + 0x34]
movsd xmm2, qword [edi + 0x48]
movsd xmm1, qword [ecx + 8]
mov eax, dword [ecx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [esp + 0xa8], xmm2
movsd xmm2, qword [edi + 0x30]
lea ecx, [edi + 0x50]
movsd qword [esp + 0x20], xmm1
movsd xmm1, qword [edi + 0x40]
mov dword [esp + 0x28], eax
movsd qword [esp + 0x18], xmm0
movsd qword [esp + 0x90], xmm2
movsd qword [esp + 0xa0], xmm1
movsd xmm1, qword [edi + 0x38]
movsd qword [esp + 0x98], xmm1
call fcn.0045d342
movsd xmm1, qword [esp + 0x20]
mov dword [edi + 0x50], esi
movsd xmm0, qword [esp + 0x18]
mov eax, dword [esp + 0x28]
movsd xmm3, qword [esp + 0x90]
movsd xmm2, qword [esp + 0xa0]
movsd qword [edi + 0x5c], xmm1
movsd xmm1, qword [esp + 0x98]
movsd qword [edi + 0x54], xmm0
mov dword [edi + 0x64], eax
movsd qword [edi + 0x68], xmm3
movsd qword [edi + 0x78], xmm2
movsd qword [edi + 0x70], xmm1
movsd xmm1, qword [esp + 0xa8]
movsd qword [edi + 0x80], xmm1
mov eax, dword [edi + 0xcc]
lea esi, [esp + 0x90]
push dword [ebp + 8]
push dword [edi + 0xc8]
push esi
call dword [eax + 0x14]
add esp, 0xc
cmp byte [esi], 5
jne 0x4667b0
mov eax, dword [esp + 0xc]
mov byte [eax], 5
jmp 0x4667d4
mov eax, dword [esp + 0x90]
cmp al, 4
jne 0x4667c4
mov eax, dword [esp + 0xc]
mov byte [eax], 4
jmp 0x4667d4
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x94]
mov dword [edx], eax
mov dword [edx + 4], ecx
lea esi, [esp + 0x70]
mov ecx, esi
call fcn.0042230b
mov ecx, esi
call fcn.0042231c
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movzx eax, al
cmp eax, 5
je 0x4667a7
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0xc]
shld edx, ecx, 8
shl ecx, 8
or ecx, eax
mov dword [esi + 4], edx
mov dword [esi], ecx
jmp 0x4667d4
push 4
pop ecx
push 0x525178
call fcn.0050aeb0
pop eax
ud2
push 0x3e
pop edx
mov ecx, str.assertion_failed:_payload_len_be_0..5_.iter__.all_b_b__0_
push 0x525148
call fcn.0050af40
jmp 0x46681b