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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x358
movdqa xmmword [rsp + 0x340], xmm6
mov rsi, rcx
movabs rcx, 0x7ffffffffffffffe
mov rax, qword [rdx + 0x80]
cmp rax, rcx
jbe 0x180066142
lea rcx, str.PeInfoborrow_export_info
mov edx, 6
call fcn.1800110d0
mov edi, eax
test eax, eax
mov ebx, 1
cmove edi, ebx
lea rcx, [0x180077926]
mov edx, 0x12
call fcn.1800110d0
test eax, eax
cmove eax, ebx
mov dword [rsi], edi
mov dword [rsi + 4], eax
mov qword [rsi + 8], 0
mov qword [rsi + 0x10], 0x3c7fd17a
jmp 0x18006672e
mov rdi, rdx
lea r13, [rdx + 0x80]
lea rcx, [rax + 1]
mov qword [rdx + 0x80], rcx
lea r14, [rdx + 0x88]
cmp byte [rdx + 0xf2], 2
jne 0x18006657c
mov qword [rdi + 0x80], rax
mov rax, qword [rdi]
mov ecx, dword [rax + 0x48]
test ecx, ecx
je 0x180066d80
mov rdx, qword [rax + 0x188]
dec ecx
add rcx, rdx
jb 0x180066d80
sub rcx, rdx
mov qword [rsp + 0x118], r8
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x128], rdx
mov r12, qword [rdi + 8]
mov qword [rsp + 0xd0], 8
pxor xmm6, xmm6
movdqu xmmword [rsp + 0xd8], xmm6
mov qword [rsp + 0xe8], 1
movdqu xmmword [rsp + 0xf0], xmm6
mov r8, qword [rax + 0x78]
mov qword [rsp + 0xa0], r8
movdqu xmmword [rsp + 0xa8], xmm6
movdqu xmmword [rsp + 0xb8], xmm6
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0x100], 0
mov dword [rsp + 0x107], 0
test r8d, r8d
mov qword [rsp + 0x188], r14
je 0x18006658f
lea rbp, [rsp + 0xd0]
movdqa xmmword [rsp + 0x40], xmm6
movdqa xmmword [rsp + 0x30], xmm6
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x20], 0x28
lea rcx, [rsp + 0x68]
lea rdx, [rsp + 0x118]
lea r9, [rsp + 0x30]
call fcn.180058640
cmp dword [rsp + 0x68], 0
je 0x1800666fc
mov r14, qword [rsp + 0x68]
movdqu xmm6, xmmword [rsp + 0x70]
mov rbx, r14
shr rbx, 0x20
mov r15, r14
shr r15, 0x28
mov rcx, rbp
call fcn.180033360
mov r8, qword [rsp + 0xf8]
mov ecx, 1
mov edx, 1
call fcn.18000f2e0
mov bpl, 2
test rax, rax
je 0x180066621
mov r9, rdx
mov rdx, qword [rsp + 0xe8]
mov r10, qword [section..data]
lea rcx, [0x180077a08]
mov r8, rax
call qword [r10 + 0x20]
cmp bpl, 2
je 0x18006662b
movzx eax, word [rsp + 0x180]
mov word [rsp + 0x2a0], ax
movaps xmm0, xmmword [rsp + 0x170]
movaps xmmword [rsp + 0x290], xmm0
movaps xmm1, xmmword [rsp + 0x130]
movaps xmm2, xmmword [rsp + 0x140]
movaps xmm3, xmmword [rsp + 0x150]
movaps xmm4, xmmword [rsp + 0x160]
movaps xmmword [rsp + 0x280], xmm4
movaps xmmword [rsp + 0x270], xmm3
movaps xmmword [rsp + 0x260], xmm2
movaps xmmword [rsp + 0x250], xmm1
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x88], eax
movzx eax, byte [rsp + 0x94]
mov byte [rsp + 0x8c], al
movaps xmmword [rsp + 0x1d0], xmm0
movaps xmmword [rsp + 0x1c0], xmm4
movaps xmmword [rsp + 0x1b0], xmm3
movaps xmmword [rsp + 0x1a0], xmm2
movaps xmmword [rsp + 0x190], xmm1
movzx eax, word [rsp + 0x2a0]
mov word [rsp + 0x1e0], ax
movzx eax, byte [rsp + 0x8c]
mov byte [rsp + 0x84], al
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x80], eax
movzx eax, word [rsp + 0x1e0]
mov word [rsp + 0x240], ax
movaps xmm0, xmmword [rsp + 0x1d0]
movaps xmmword [rsp + 0x230], xmm0
movaps xmm0, xmmword [rsp + 0x190]
movaps xmm1, xmmword [rsp + 0x1a0]
movaps xmm2, xmmword [rsp + 0x1b0]
movaps xmm3, xmmword [rsp + 0x1c0]
movaps xmmword [rsp + 0x220], xmm3
movaps xmmword [rsp + 0x210], xmm2
movaps xmmword [rsp + 0x200], xmm1
movaps xmmword [rsp + 0x1f0], xmm0
movzx eax, byte [rsp + 0x84]
mov byte [rsp + 0x9c], al
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x98], eax
cmp qword [r13], 0
jne 0x180066d9a
shl r15, 0x28
movzx eax, bl
shl rax, 0x20
or rax, r15
mov ebx, r14d
or rbx, rax
movq r14, xmm6
pshufd xmm0, xmm6, 0xee
movq r15, xmm0
mov r12, r15
shr r12, 0x20
mov qword [rdi + 0x80], 0xffffffffffffffff
mov rax, 0xffffffffffffffff
cmp byte [rdi + 0xf2], 2
je 0x1800664ac
lea rcx, [rdi + 0xb8]
call fcn.180033360
mov rcx, qword [rdi + 0xd0]
mov rdx, qword [rdi + 0xe0]
call fcn.1800336e0
mov rax, qword [rdi + 0x80]
mov qword [rdi + 0x88], rbx
mov qword [rdi + 0x90], r14
mov dword [rdi + 0x98], r15d
mov dword [rdi + 0x9c], r12d
movaps xmm0, xmmword [rsp + 0x1f0]
movdqa xmm1, xmmword [rsp + 0x200]
movaps xmm2, xmmword [rsp + 0x210]
movaps xmm3, xmmword [rsp + 0x220]
movups xmmword [rdi + 0xa0], xmm0
movdqu xmmword [rdi + 0xb0], xmm1
movups xmmword [rdi + 0xc0], xmm2
movups xmmword [rdi + 0xd0], xmm3
movdqa xmm0, xmmword [rsp + 0x230]
movdqu xmmword [rdi + 0xe0], xmm0
movzx ecx, word [rsp + 0x240]
mov word [rdi + 0xf0], cx
mov byte [rdi + 0xf2], bpl
mov ecx, dword [rsp + 0x98]
mov dword [rdi + 0xf3], ecx
movzx ecx, byte [rsp + 0x9c]
mov byte [rdi + 0xf7], cl
lea rcx, [rax + 1]
mov qword [rdi + 0x80], rcx
movabs rdx, 0x7ffffffffffffffe
cmp rcx, rdx
ja 0x180066dc8
add rax, 2
mov qword [r13], rax
mov rax, qword [rsp + 0x188]
mov qword [rsi + 8], rax
jmp 0x180066580
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], r13
mov dword [rsi], 0
jmp 0x18006672e
mov byte [rsp + 0x104], 1
mov r14, qword [rsp + 0xa0]
mov rbx, r14
shr rbx, 0x20
mov r15, r14
shr r15, 0x28
movups xmm0, xmmword [rsp + 0xb8]
movaps xmmword [rsp + 0x130], xmm0
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x148], rax
movups xmm0, xmmword [rsp + 0xd8]
movaps xmmword [rsp + 0x150], xmm0
movups xmm0, xmmword [rsp + 0xe8]
movaps xmmword [rsp + 0x160], xmm0
movzx eax, word [rsp + 0x108]
mov word [rsp + 0x180], ax
movdqu xmm0, xmmword [rsp + 0xf8]
movdqa xmmword [rsp + 0x170], xmm0
xor ebp, ebp
cmp bpl, 2
jne 0x1800662e7
movq rax, xmm6
pshufd xmm0, xmm6, 0xee
movd ecx, xmm0
xor r15d, r15d
xor edi, edi
test r14d, r14d
mov r14d, 0x3c7fd18d
cmovne r14d, ecx
sete dil
cmovne r15, rax
lea rax, [0x180075e74]
lea rbx, [0x180075e7e]
cmove rbx, rax
add rdi, 9
lea rcx, [0x180075e87]
mov edx, 0xa
call fcn.1800110d0
mov ebp, eax
mov rcx, rbx
mov rdx, rdi
call fcn.1800110d0
movd xmm0, eax
movd xmm1, ebp
punpckldq xmm1, xmm0
pxor xmm6, xmm6
pcmpeqd xmm6, xmm1
movdqa xmm0, xmm6
pandn xmm0, xmm1
psrld xmm6, 0x1f
por xmm6, xmm0
mov qword [rsp + 0x130], r15
mov dword [rsp + 0x138], r14d
mov rax, qword [section..data]
lea rdx, [0x180077a08]
lea rcx, [rsp + 0xa0]
mov r8d, 0x10
mov r9d, 8
call qword [rax + 0x18]
cmp byte [rsp + 0xa0], 0
je 0x180066710
lea rcx, [rsp + 0x130]
call fcn.1800366d0
xor eax, eax
jmp 0x18006671f
cmp qword [rsp + 0x78], 0x28
jne 0x18006674a
mov qword [rsp + 0x60], r13
mov rbx, qword [rsp + 0x70]
jmp 0x18006678d
mov rax, qword [rsp + 0xa8]
mov qword [rax], r15
mov dword [rax + 8], r14d
movq qword [rsi], xmm6
mov qword [rsi + 8], rax
mov dword [rsi + 0x10], 0x3c7fd18c
movaps xmm6, xmmword [rsp + 0x340]
add rsp, 0x358
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, dword [rsp + 0xa0]
mov qword [rsp + 0x20], 0x28
lea rcx, [rsp + 0x68]
lea rdx, [rsp + 0x118]
lea rbx, [rsp + 0x30]
mov r9, rbx
call fcn.180058440
cmp dword [rsp + 0x68], 0
jne 0x180066279
mov qword [rsp + 0x60], r13
mov byte [rsp + 0x102], 1
lea rax, [rsp + 0xe8]
mov ecx, dword [rbx + 0x24]
mov edx, dword [rbx + 8]
mov r8, qword [rbx + 0xc]
movq xmm0, qword [rbx]
movq xmm1, r8
punpcklqdq xmm0, xmm1
movups xmm1, xmmword [rbx + 0x14]
movdqu xmmword [rsp + 0xa8], xmm0
movups xmmword [rsp + 0xb8], xmm1
mov dword [rsp + 0xc8], ecx
mov dword [rsp + 0xcc], edx
mov r9d, dword [r12 + 0x1f8]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x118]
call fcn.1800580d0
movzx eax, byte [rsp + 0x30]
cmp rax, 3
jne 0x18006694a
movzx eax, byte [rsp + 0x31]
mov byte [rsp + 0x103], al
mov ecx, dword [r12 + 0x1f0]
mov eax, dword [rsp + 0xb8]
cmp eax, ecx
cmovb ecx, eax
mov dword [rsp + 0x110], ecx
test ecx, ecx
je 0x1800669b2
xor r13d, r13d
mov ebp, dword [rsp + 0xc0]
jmp 0x18006689d
lea rcx, [rsp + 0xd0]
mov rdx, rbx
call fcn.180032a40
cmp al, 8
jne 0x180066cda
inc r13d
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
lea rdx, [rcx + rcx*4]
mov dword [rax + rdx*8], 0
mov qword [rax + rdx*8 + 8], 0
mov dword [rax + rdx*8 + 0x20], r15d
mov dword [rax + rdx*8 + 0x24], r14d
inc rcx
mov qword [rsp + 0xd8], rcx
add ebp, 4
cmp dword [rsp + 0x110], r13d
je 0x1800669b2
test ebp, ebp
js 0x1800669b2
mov dword [rsp + 0x68], 0
mov qword [rsp + 0x20], 4
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x118]
mov r8d, ebp
lea r9, [rsp + 0x68]
call fcn.180058640
mov r14d, dword [rsp + 0x30]
test r14d, r14d
jne 0x180066995
cmp qword [rsp + 0x40], 4
jne 0x1800669aa
mov rax, qword [rsp + 0x38]
mov r14d, dword [rax]
mov r15d, dword [rsp + 0xb4]
add r15d, r13d
mov rbx, qword [rsp + 0xd8]
inc rbx
je 0x180066cd8
cmp rbx, qword [rsp + 0xe0]
jbe 0x180066850
mov rcx, rbx
call fcn.180008a30
cmp rax, rbx
jbe 0x180066838
lea rcx, [rsp + 0xd0]
mov rdx, rax
call fcn.180032a40
cmp al, 8
jne 0x180066838
jmp 0x180066850
movzx ecx, byte [rsp + 0x3f]
shl ecx, 0x10
movzx r15d, word [rsp + 0x3d]
or r15d, ecx
movdqu xmm6, xmmword [rsp + 0x40]
cmp eax, 1
je 0x180066983
cmp eax, 2
jne 0x180066df6
mov r14d, dword [rsp + 0x38]
movzx ebx, byte [rsp + 0x3c]
mov r13, qword [rsp + 0x60]
jmp 0x180066292
movzx ebx, byte [rsp + 0x31]
xor r14d, r14d
mov r13, qword [rsp + 0x60]
jmp 0x180066292
mov ebx, dword [rsp + 0x34]
movups xmm6, xmmword [rsp + 0x38]
mov r15d, ebx
shr r15d, 8
jmp 0x180066d08
mov byte [rsp + 0x101], 1
xor ebx, ebx
mov ebp, 0x80000000
sub ebp, dword [rsp + 0xc4]
cmovb ebp, ebx
mov eax, 0x80000000
shr ebp, 2
sub eax, dword [rsp + 0xc8]
mov ecx, dword [r12 + 0x1f4]
cmovb eax, ebx
shr eax, 1
mov edx, dword [rsp + 0xbc]
cmp edx, ebp
cmovb ebp, edx
mov r8d, dword [r12 + 0x1fc]
mov qword [rsp + 0x110], r8
setne byte [rsp + 0x100]
cmp ebp, eax
cmovae ebp, eax
cmp ebp, ecx
cmovae ebp, ecx
cmp edx, eax
setne byte [rsp + 0x108]
test ebp, ebp
mov r13, qword [rsp + 0x60]
je 0x180066c19
add ebp, ebp
pxor xmm6, xmm6
xor r15d, r15d
jmp 0x180066a47
mov byte [rsp + 0x107], 1
add r15d, 2
add ebx, 4
cmp ebp, r15d
je 0x180066c19
mov r8d, dword [rsp + 0xc4]
add r8d, ebx
mov dword [rsp + 0x68], 0
mov qword [rsp + 0x20], 4
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x118]
lea r9, [rsp + 0x68]
call fcn.180058640
mov r14d, dword [rsp + 0x30]
test r14d, r14d
jne 0x180066cc5
cmp qword [rsp + 0x40], 4
jne 0x180066a2f
mov rax, qword [rsp + 0x38]
mov r12d, dword [rax]
mov r8d, dword [rsp + 0xc8]
add r8d, r15d
mov word [rsp + 0x68], 0
mov qword [rsp + 0x20], 2
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x118]
lea r9, [rsp + 0x68]
call fcn.180058640
mov r14d, dword [rsp + 0x30]
test r14d, r14d
jne 0x180066cc5
cmp qword [rsp + 0x40], 2
jne 0x180066bff
mov rax, qword [rsp + 0x38]
movzx r14d, word [rax]
cmp dword [rsp + 0xb8], r14d
jbe 0x180066c0c
cmp qword [rsp + 0xd8], r14
jbe 0x180066a37
mov qword [rsp + 0x68], 1
lea rax, [rsp + 0x70]
movdqu xmmword [rax], xmm6
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x118]
mov r8d, r12d
mov r9, qword [rsp + 0x110]
call fcn.1800580d0
movzx ecx, byte [rsp + 0x30]
cmp rcx, 3
jne 0x180066d1a
mov qword [rsp + 0x60], r13
mov rax, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xe0]
cmp rax, rdx
cmovb rdx, rax
cmp rdx, r14
jbe 0x180066d6f
mov r12, qword [rsp + 0xd0]
lea r13, [r14 + r14*4]
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
call fcn.180069920
mov dword [r12 + r13*8], 1
mov dword [r12 + r13*8 + 4], eax
lea r14, [r12 + r13*8]
add r14, 8
cmp qword [r12 + r13*8 + 8], 0
je 0x180066be1
mov r8, qword [r14 + 0x10]
mov ecx, 1
mov edx, 1
call fcn.18000f2e0
test rax, rax
je 0x180066be1
mov r9, rdx
mov rdx, qword [r14]
mov r10, qword [section..data]
lea rcx, [0x180077a08]
mov r8, rax
call qword [r10 + 0x20]
mov rax, qword [rsp + 0x78]
mov qword [r14 + 0x10], rax
movdqu xmm0, xmmword [rsp + 0x68]
movdqu xmmword [r14], xmm0
mov r13, qword [rsp + 0x60]
jmp 0x180066a37
mov byte [rsp + 0x109], 1
jmp 0x180066a37
mov byte [rsp + 0x10a], 1
jmp 0x180066a37
lea rax, [rsp + 0xb8]
mov byte [rsp + 0x104], 1
mov r14, qword [rsp + 0xa0]
mov rbx, r14
shr rbx, 0x20
mov r15, r14
shr r15, 0x28
movdqu xmm6, xmmword [rsp + 0xa8]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmm3, xmmword [rax + 0x30]
movaps xmmword [rsp + 0x130], xmm0
movaps xmmword [rsp + 0x140], xmm1
movaps xmmword [rsp + 0x150], xmm2
movaps xmmword [rsp + 0x160], xmm3
movdqu xmm0, xmmword [rax + 0x40]
movdqa xmmword [rsp + 0x170], xmm0
movzx eax, word [rax + 0x50]
mov word [rsp + 0x180], ax
movzx ebp, byte [rsp + 0x10a]
mov eax, dword [rsp + 0x10b]
mov dword [rsp + 0x90], eax
movzx eax, byte [rsp + 0x10f]
mov byte [rsp + 0x94], al
cmp bpl, 2
je 0x18006662b
jmp 0x1800662e7
mov ebx, dword [rsp + 0x34]
movdqu xmm6, xmmword [rsp + 0x38]
mov r15d, ebx
shr r15d, 8
jmp 0x180066d0d
mov al, 7
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x50], r15d
mov dword [rsp + 0x54], r14d
mov byte [rsp + 0x58], al
lea rcx, [rsp + 0x30]
call fcn.180035df0
mov ebx, eax
xor r14d, r14d
mov r13, qword [rsp + 0x60]
lea rbp, [rsp + 0xd0]
jmp 0x180066292
movzx eax, byte [rsp + 0x3f]
movzx r15d, word [rsp + 0x3d]
movdqu xmm6, xmmword [rsp + 0x40]
cmp ecx, 1
je 0x180066d45
cmp ecx, 2
jne 0x180066df6
mov r14d, dword [rsp + 0x38]
movzx ebx, byte [rsp + 0x3c]
jmp 0x180066d4d
movzx ebx, byte [rsp + 0x31]
xor r14d, r14d
lea rbp, [rsp + 0xd0]
shl eax, 0x10
or r15d, eax
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x78]
call fcn.1800336e0
jmp 0x180066292
lea r8, [0x180075ea0]
mov rcx, r14
call fcn.18000b9f0
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value1AF0A12B
lea r8, [0x1800778d8]
mov edx, 0x2b
call fcn.18000c680
ud2
lea rax, [0x1800778f0]
mov qword [rsp + 0x20], rax
lea rcx, str.already_borrowedBE00B4CF
lea r9, [0x1800779c8]
lea r8, [rsp + 0xa0]
mov edx, 0x10
call fcn.18000cfc0
ud2
lea rax, [0x180077908]
mov qword [rsp + 0x20], rax
lea rcx, str.already_mutably_borrowed
lea r9, [0x1800779e8]
lea r8, [rsp + 0xa0]
mov edx, 0x18
call fcn.18000cfc0
ud2
lea rax, [0x180075d98]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, [0x180077a08]
mov qword [rsp + 0x40], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x48], xmm0
lea rdx, [0x180075db8]
lea rcx, [rsp + 0x30]
call fcn.18000b980
ud2