Function at 0x140088edc
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, 0x298
mov rsi, rdx
mov rdi, rcx
mov dl, byte [rdx + 0xb8]
movzx eax, byte [rsi + 0xd8]
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x140088f37
cmp eax, 1
jne 0x140088f54
cmp dl, 7
jne 0x140088f37
mov cl, 1
mov dl, 4
call fcn.14002bb74
lea rcx, [rsp + 0x190]
mov qword [rcx], 3
mov qword [rcx + 8], rax
jmp 0x1400891b8
movzx eax, byte [rsi + 0x60]
test rax, rax
mov byte [rsp + 0x38], dl
je 0x140088fbc
cmp eax, 1
jne 0x140088fc4
mov r12b, byte [rsi + 0x61]
mov r13b, 1
xor ebp, ebp
jmp 0x140088fc2
mov cl, 1
mov dl, 3
call fcn.14002bb74
mov rdi, rax
mov al, byte [0x1401222b8]
mov ecx, 0xa0
mov edx, 8
call fcn.140034c70
test rax, rax
je 0x140089874
mov rbx, rax
mov qword [rax], 3
mov qword [rax + 8], rdi
mov al, byte [0x1401222b8]
mov ecx, 8
mov edx, 8
call fcn.140034c70
test rax, rax
je 0x140089883
mov rdi, rax
mov qword [rax], rbx
lea rbx, [0x1400d5510]
jmp 0x1400891c3
xor r13d, r13d
mov bpl, 1
jmp 0x140088fff
call fcn.14002d8f6
mov r14, rax
mov rax, qword [rsi + 0x68]
lea rdx, [rax + 0x18]
mov r10, qword [rax]
mov r8, qword [rax + 8]
mov r9, qword [rax + 0x10]
lea rbx, [rsp + 0x60]
mov rcx, rbx
call qword [r10]
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r14 + 0x10], xmm1
movups xmmword [r14], xmm0
mov r13b, 2
xor ebp, ebp
lea rdx, [rsi + 0x88]
mov rax, qword [rsi + 0x70]
mov r8, qword [rsi + 0x78]
mov r9, qword [rsi + 0x80]
lea rbx, [rsp + 0x1a0]
mov rcx, rbx
call qword [rax]
lea rdx, [rsi + 0xa8]
mov rax, qword [rsi + 0x90]
mov r8, qword [rsi + 0x98]
mov r9, qword [rsi + 0xa0]
lea r15, [rsp + 0x60]
mov rcx, r15
call qword [rax]
movzx eax, word [rsi + 0xb0]
mov word [r15 + 0x20], ax
mov byte [rbx - 0x10], r13b
mov byte [rbx - 0xf], r12b
mov qword [rbx - 8], r14
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rbx + 0x20], xmm0
movups xmmword [rbx + 0x30], xmm1
mov rax, qword [r15 + 0x20]
mov qword [rbx + 0x40], rax
mov rbx, qword [rbx + 0x10]
test bpl, bpl
je 0x1400890d8
test rbx, rbx
je 0x1400890fb
cmp byte [rsp + 0x38], 7
jne 0x1400890fb
lea r15, [rsi + 0x60]
mov r14, qword [rsp + 0x1a8]
lea r12, [rsp + 0x60]
mov rcx, r12
mov rdx, r14
mov r8, rbx
call fcn.140022837
cmp qword [r12], 0
je 0x140089119
movzx eax, word [rsp + 0x70]
cmp eax, 0x1bb
jne 0x140089119
lea rdx, [0x1400ec148]
mov rcx, r15
call fcn.14002b44a
movaps xmm0, xmmword [0x1400bd5e0]
jmp 0x14008912f
test rbx, rbx
je 0x1400890fb
test r13b, r13b
je 0x1400891df
movzx eax, r13b
cmp eax, 1
jne 0x1400891e3
mov bpl, 1
jmp 0x1400891e1
mov cl, 1
mov dl, 5
call fcn.14002bb74
mov rdi, rax
lea rcx, [rsp + 0x190]
call fcn.1400208dc
jmp 0x1400891a5
lea rdx, [0x1400ec1d0]
mov rcx, r15
call fcn.14002b44a
movups xmm0, xmmword [0x1400ec1d0]
movaps xmmword [rsp + 0x50], xmm0
movaps xmm0, xmmword [rsp + 0x50]
lea r15, [rsp + 0x70]
movaps xmmword [r15 - 0x10], xmm0
lea rdx, [rsp + 0x1b8]
mov rax, qword [rdx - 0x18]
mov rcx, r15
mov r8, r14
mov r9, rbx
call qword [rax]
movaps xmm0, xmmword [r15 - 0x10]
movaps xmm1, xmmword [r15]
movaps xmm2, xmmword [r15 + 0x10]
movaps xmmword [rsp + 0xc0], xmm2
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xa0], xmm0
mov bl, byte [rsp + 0xa0]
lea rcx, [rsp + 0x190]
call fcn.1400208dc
cmp bl, 3
jne 0x140089264
mov rdi, qword [rsp + 0xa8]
lea rcx, [rsp + 0x190]
mov qword [rcx], 3
mov qword [rcx + 8], rdi
call fcn.140088e15
mov rdi, rax
mov rbx, rdx
mov rcx, rsi
call fcn.140083239
add rsi, 0xe0
mov rcx, rsi
call fcn.140052845
jmp 0x140089858
xor ebp, ebp
jmp 0x140089219
call fcn.14002d8f6
mov r15, rax
lea rdx, [r14 + 0x18]
mov rax, qword [r14]
mov r8, qword [r14 + 8]
mov r9, qword [r14 + 0x10]
lea r14, [rsp + 0x60]
mov rcx, r14
call qword [rax]
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [r15 + 0x10], xmm1
movups xmmword [r15], xmm0
mov bpl, 2
lea rdx, [rsp + 0x1b8]
mov rax, qword [rdx - 0x18]
mov r8, qword [rdx - 0x10]
lea r14, [rsp + 0xb0]
mov rcx, r14
mov r9, rbx
call qword [rax]
movzx eax, word [rsp + 0x64]
mov word [r14 - 0xa], ax
mov eax, dword [rsp + 0x60]
mov dword [r14 - 0xe], eax
mov byte [r14 - 0x10], bpl
mov byte [r14 - 0xf], r12b
mov qword [r14 - 8], r15
lea rcx, [rsp + 0x190]
call fcn.1400208dc
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmm1, xmmword [rsp + 0xb0]
movaps xmm2, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x180], xmm2
movaps xmmword [rsp + 0x170], xmm1
movaps xmmword [rsp + 0x160], xmm0
movzx ebp, word [rdi + 0x110]
movzx r14d, byte [rdi + 0x112]
mov rax, qword [rdi + 0x68]
test rax, rax
je 0x1400892c4
lock inc qword [rax]
jle 0x140089872
mov rcx, qword [rdi + 0x70]
mov qword [rsp + 0xe0], rcx
jmp 0x1400892c4
mov r8b, byte [rdi + 0x78]
mov cl, byte [rdi + 0x79]
mov byte [rsp + 0x36], cl
mov r13d, dword [rdi + 0x7a]
mov r12b, byte [rdi + 0x81]
mov cl, byte [rdi + 0x7e]
mov dl, byte [rdi + 0x7f]
mov r9, qword [rdi]
mov qword [rsp + 0x158], r9
mov r9, qword [rdi + 8]
mov qword [rsp + 0x150], r9
mov r9, qword [rdi + 0x10]
mov qword [rsp + 0x148], r9
mov r9, qword [rdi + 0x18]
mov qword [rsp + 0x140], r9
mov bl, byte [rdi + 0x64]
mov r15d, dword [rdi + 0x58]
mov r9d, dword [rdi + 0x5c]
mov dword [rsp + 0x38], r9d
mov r9d, dword [rdi + 0x60]
mov dword [rsp + 0x4c], r9d
mov r9d, dword [rdi + 0x48]
mov dword [rsp + 0x48], r9d
mov r9, qword [rdi + 0x40]
mov qword [rsp + 0x138], r9
mov r9, qword [rdi + 0x30]
mov qword [rsp + 0x130], r9
mov r9b, byte [rdi + 0x65]
mov byte [rsp + 0x37], r9b
mov r11b, byte [rdi + 0x80]
mov r9d, dword [rdi + 0x38]
mov dword [rsp + 0x44], r9d
mov r9, qword [rdi + 0x20]
mov qword [rsp + 0x118], r9
mov r9, qword [rdi + 0x28]
mov qword [rsp + 0x120], r9
mov r9, qword [rdi + 0x50]
mov qword [rsp + 0x128], r9
mov r9, qword [rdi + 0xa8]
lock inc qword [r9]
jle 0x140089872
mov r10, qword [rdi + 0xb0]
lock inc qword [r10]
jle 0x140089872
mov byte [rsp + 0x32], r11b
mov qword [rsp + 0x100], r10
mov qword [rsp + 0x108], r9
mov byte [rsp + 0x33], r8b
mov byte [rsp + 0x34], dl
mov byte [rsp + 0x35], cl
mov qword [rsp + 0x110], rax
mov rax, qword [rdi + 0xb8]
mov qword [rsp + 0xf8], rax
cmp qword [rdi + 0x88], 0
mov byte [rsp + 0x31], bl
je 0x140089413
mov rcx, qword [rdi + 0x90]
call qword [sym.imp.crypt32.dll_CertDuplicateCertificateContext]
mov qword [rsp + 0xd8], rax
mov eax, 1
mov qword [rsp + 0x98], rax
jmp 0x14008941d
xor eax, eax
mov qword [rsp + 0x98], rax
mov dword [rsp + 0x40], r15d
mov rcx, qword [rdi + 0x98]
call qword [sym.imp.crypt32.dll_CertDuplicateStore]
mov dl, byte [rdi + 0xa4]
mov cl, byte [rdi + 0xa5]
mov r8b, byte [rdi + 0xa0]
mov r9b, byte [rdi + 0xa1]
mov r10b, byte [rdi + 0xa2]
mov r11b, byte [rdi + 0xa3]
mov rbx, qword [rdi + 0xf8]
lock inc qword [rbx]
jle 0x140089872
mov byte [rsp + 0x28], r11b
mov byte [rsp + 0x29], r10b
mov byte [rsp + 0x2a], r9b
mov byte [rsp + 0x2b], r8b
mov qword [rsp + 0xf0], rax
mov byte [rsp + 0x2c], cl
mov byte [rsp + 0x2d], dl
mov al, byte [rdi + 0x100]
mov byte [rsp + 0x30], al
mov eax, dword [rdi + 0xc8]
mov dword [rsp + 0x3c], eax
mov rax, qword [rdi + 0xc0]
mov qword [rsp + 0xe8], rax
mov al, byte [rdi + 0x101]
mov byte [rsp + 0x2f], al
mov al, byte [rdi + 0x102]
mov byte [rsp + 0x2e], al
mov cl, 2
cmp byte [rdi + 0xf0], 2
je 0x140089526
lea rdx, [rdi + 0xe8]
mov rax, qword [rdi + 0xd0]
mov r8, qword [rdi + 0xd8]
mov r9, qword [rdi + 0xe0]
lea r15, [rsp + 0x190]
mov rcx, r15
call qword [rax]
mov cl, byte [rdi + 0xf0]
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
mov eax, dword [r15 + 0x21]
mov dword [rsp + 0xa0], eax
mov eax, dword [r15 + 0x24]
mov dword [rsp + 0xa3], eax
mov byte [rsp + 0x27], cl
xor eax, eax
test r12b, r12b
setne al
cmp r12b, 2
mov r12d, 2
cmovne r12d, eax
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movups xmmword [rsp + 0x1a4], xmm1
movups xmmword [rsp + 0x194], xmm0
mov eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0xa3]
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x53], ecx
mov r15, qword [rdi + 0x108]
test r15, r15
je 0x140089586
lock inc qword [r15]
jle 0x140089872
lea rcx, [rsp + 0x195]
mov eax, dword [rcx + 0x1b]
mov dword [rsp + 0x80], eax
movups xmm0, xmmword [rcx - 5]
movups xmm1, xmmword [rcx + 0xb]
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
mov r8d, 0x100
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov al, byte [0x1401222b8]
mov ecx, 0xbd8
mov edx, 8
call fcn.140034c70
test rax, rax
je 0x140089892
mov rdi, rax
shl r14d, 0x10
or ebp, r14d
shl r13, 8
movzx eax, byte [rsp + 0x36]
or rax, r13
mov rcx, qword [rsp + 0x158]
mov qword [rdi], rcx
mov rcx, qword [rsp + 0x150]
mov qword [rdi + 8], rcx
mov rcx, qword [rsp + 0x148]
mov qword [rdi + 0x10], rcx
mov rcx, qword [rsp + 0x140]
mov qword [rdi + 0x18], rcx
mov rcx, qword [rsp + 0x118]
mov qword [rdi + 0x20], rcx
mov rcx, qword [rsp + 0x120]
mov qword [rdi + 0x28], rcx
mov rcx, qword [rsp + 0x130]
mov qword [rdi + 0x30], rcx
mov ecx, dword [rsp + 0x44]
mov dword [rdi + 0x38], ecx
mov rcx, qword [rsp + 0x138]
mov qword [rdi + 0x40], rcx
mov ecx, dword [rsp + 0x48]
mov dword [rdi + 0x48], ecx
mov rcx, qword [rsp + 0x128]
mov qword [rdi + 0x50], rcx
mov ecx, dword [rsp + 0x40]
mov dword [rdi + 0x58], ecx
mov ecx, dword [rsp + 0x38]
mov dword [rdi + 0x5c], ecx
mov ecx, dword [rsp + 0x4c]
mov dword [rdi + 0x60], ecx
mov cl, byte [rsp + 0x31]
mov byte [rdi + 0x64], cl
mov cl, byte [rsp + 0x37]
mov byte [rdi + 0x65], cl
mov rcx, qword [rsp + 0x110]
mov qword [rdi + 0x68], rcx
mov rcx, qword [rsp + 0xe0]
mov qword [rdi + 0x70], rcx
mov cl, byte [rsp + 0x33]
mov byte [rdi + 0x78], cl
mov dword [rdi + 0x79], eax
shr rax, 0x20
mov byte [rdi + 0x7d], al
mov al, byte [rsp + 0x35]
mov byte [rdi + 0x7e], al
mov al, byte [rsp + 0x34]
mov byte [rdi + 0x7f], al
mov al, byte [rsp + 0x32]
mov byte [rdi + 0x80], al
mov byte [rdi + 0x81], r12b
mov rax, qword [rsp + 0x98]
mov qword [rdi + 0x88], rax
mov rax, qword [rsp + 0xd8]
mov qword [rdi + 0x90], rax
mov rax, qword [rsp + 0xf0]
mov qword [rdi + 0x98], rax
mov al, byte [rsp + 0x2b]
mov byte [rdi + 0xa0], al
mov al, byte [rsp + 0x2a]
mov byte [rdi + 0xa1], al
mov al, byte [rsp + 0x29]
mov byte [rdi + 0xa2], al
mov al, byte [rsp + 0x28]
mov byte [rdi + 0xa3], al
mov al, byte [rsp + 0x2d]
mov byte [rdi + 0xa4], al
mov al, byte [rsp + 0x2c]
mov byte [rdi + 0xa5], al
mov rax, qword [rsp + 0x108]
mov qword [rdi + 0xa8], rax
mov rax, qword [rsp + 0x100]
mov qword [rdi + 0xb0], rax
mov rax, qword [rsp + 0xf8]
mov qword [rdi + 0xb8], rax
mov rax, qword [rsp + 0xe8]
mov qword [rdi + 0xc0], rax
mov eax, dword [rsp + 0x3c]
mov dword [rdi + 0xc8], eax
mov eax, dword [rsp + 0x80]
mov dword [rdi + 0xec], eax
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movups xmmword [rdi + 0xdc], xmm1
movups xmmword [rdi + 0xcc], xmm0
mov al, byte [rsp + 0x27]
mov byte [rdi + 0xf0], al
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x53]
mov dword [rdi + 0xf1], eax
mov dword [rdi + 0xf4], ecx
mov qword [rdi + 0xf8], rbx
mov al, byte [rsp + 0x30]
mov byte [rdi + 0x100], al
mov al, byte [rsp + 0x2f]
mov byte [rdi + 0x101], al
mov al, byte [rsp + 0x2e]
mov byte [rdi + 0x102], al
mov qword [rdi + 0x108], r15
mov eax, ebp
shr eax, 0x10
mov byte [rdi + 0x112], al
mov word [rdi + 0x110], bp
mov rcx, rdi
add rcx, 0x113
lea rdx, [rsp + 0x190]
mov r8d, 0x105
call sub.VCRUNTIME140.dll_memcpy
movaps xmm0, xmmword [rsp + 0x160]
movaps xmm1, xmmword [rsp + 0x170]
movaps xmm2, xmmword [rsp + 0x180]
movups xmmword [rdi + 0x218], xmm0
movups xmmword [rdi + 0x228], xmm1
movups xmmword [rdi + 0x238], xmm2
mov byte [rdi + 0xbd0], 0
lea rbx, str.l__b_
mov rax, rdi
mov rdx, rbx
add rsp, 0x298
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
mov ecx, 8
mov edx, 0xa0
call fcn.1400b5bc0
mov ecx, 8
mov edx, 8
call fcn.1400b5bc0
mov ecx, 8
mov edx, 0xbd8
call fcn.1400b5bc0
int3