Function at 0x14019ff22
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, 0xc68
mov rsi, rdx
mov rdi, rcx
mov dl, byte [rdx + 0x88]
movzx eax, byte [rsi + 0xf8]
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x14019ff75
cmp eax, 1
jne 0x14019ff98
cmp dl, 7
jne 0x14019ff75
mov cl, 1
mov dl, 4
call fcn.14008db15
lea rcx, [rsp + 0x1a0]
mov qword [rcx], rax
jmp 0x1401a0207
movzx eax, byte [rsi + 0xc0]
test rax, rax
mov byte [rsp + 0x38], dl
je 0x14019fff4
cmp eax, 1
jne 0x14019fffc
mov r12b, byte [rsi + 0xc1]
mov r13b, 1
xor ebp, ebp
jmp 0x14019fffa
mov cl, 1
mov dl, 3
call fcn.14008db15
mov rdi, rax
mov ecx, 0xa0
mov edx, 8
call fcn.140020b50
test rax, rax
je 0x1401a08cf
mov rbx, rax
mov qword [rax], rdi
mov qword [rax + 0x40], 3
mov ecx, 8
mov edx, 8
call fcn.140020b50
test rax, rax
je 0x1401a08d6
mov rdi, rax
mov qword [rax], rbx
lea rbx, [0x14040a9d8]
jmp 0x1401a021a
xor r13d, r13d
mov bpl, 1
jmp 0x1401a003d
call fcn.14008d331
mov r15, rax
mov rax, qword [rsi + 0xc8]
mov r10, qword [rax + 0x18]
lea rdx, [rax + 0x10]
mov r8, qword [rax]
mov r9, qword [rax + 8]
lea rbx, [rsp + 0x140]
mov rcx, rbx
call qword [r10]
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r15 + 0x10], xmm1
movups xmmword [r15], xmm0
mov r13b, 2
xor ebp, ebp
mov rax, qword [rsi + 0xb8]
lea rdx, [rsi + 0xb0]
mov r8, qword [rsi + 0xa0]
mov r9, qword [rsi + 0xa8]
lea rbx, [rsp + 0x1a0]
mov rcx, rbx
call qword [rax]
mov rax, qword [rsi + 0xe8]
lea rdx, [rsi + 0xe0]
mov r8, qword [rsi + 0xd0]
mov r9, qword [rsi + 0xd8]
lea r14, [rsp + 0x140]
mov rcx, r14
call qword [rax]
movzx eax, word [rsi + 0xf0]
mov word [r14 + 0x20], ax
mov byte [rbx + 0x20], r13b
mov byte [rbx + 0x21], r12b
mov qword [rbx + 0x28], r15
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rbx + 0x30], xmm0
movups xmmword [rbx + 0x40], xmm1
mov rax, qword [r14 + 0x20]
mov qword [rbx + 0x50], rax
mov r14, qword [rbx + 8]
test r14, r14
cmove rbx, r14
test bpl, bpl
je 0x1401a0127
test r14, r14
je 0x1401a014f
cmp byte [rsp + 0x38], 7
jne 0x1401a014f
lea r15, [rsi + 0xa0]
mov rdx, qword [rbx]
lea r12, [rsp + 0x140]
mov rcx, r12
mov r8, r14
call fcn.140082e4f
cmp qword [r12], 0
je 0x1401a016d
movzx eax, word [rsp + 0x150]
cmp eax, 0x1bb
jne 0x1401a016d
lea rdx, [0x140494160]
mov rcx, r15
call fcn.140089f39
movaps xmm0, xmmword [0x14039aa50]
jmp 0x1401a0183
test r14, r14
je 0x1401a014f
test r13b, r13b
mov byte [rsp + 0x34], r12b
je 0x1401a0230
movzx eax, r13b
cmp eax, 1
jne 0x1401a0234
mov bpl, 1
jmp 0x1401a0232
mov cl, 1
mov dl, 5
call fcn.14008db15
mov rdi, rax
lea rcx, [rsp + 0x1a0]
call fcn.140191413
jmp 0x1401a01fc
lea rdx, [0x140494188]
mov rcx, r15
call fcn.140089f39
movups xmm0, xmmword [0x140494188]
movaps xmmword [rsp + 0x60], xmm0
movaps xmm0, xmmword [rsp + 0x60]
lea r15, [rsp + 0x150]
movaps xmmword [r15 - 0x10], xmm0
lea rdx, [rsp + 0x1b0]
mov rax, qword [rdx + 8]
mov r8, qword [rbx]
mov rcx, r15
mov r9, r14
call qword [rax]
movaps xmm0, xmmword [r15 - 0x10]
movaps xmm1, xmmword [r15]
movaps xmm2, xmmword [r15 + 0x10]
movaps xmmword [rsp + 0xa0], xmm2
movaps xmmword [rsp + 0x90], xmm1
movaps xmmword [rsp + 0x80], xmm0
mov bl, byte [rsp + 0x80]
lea rcx, [rsp + 0x1a0]
call fcn.140191413
cmp bl, 3
jne 0x1401a02b2
mov rdi, qword [rsp + 0x88]
lea rcx, [rsp + 0x1a0]
mov qword [rcx], rdi
mov qword [rcx + 0x40], 3
call fcn.14019b0c3
mov rdi, rax
mov rbx, rdx
lea rcx, [rsi + 0x20]
call fcn.14019133f
mov rcx, rsi
call fcn.14019138c
jmp 0x1401a08b5
xor ebp, ebp
jmp 0x1401a0277
call fcn.14008d331
mov r12, rax
mov rax, qword [r15 + 0x18]
lea rdx, [r15 + 0x10]
mov r8, qword [r15]
mov r9, qword [r15 + 8]
lea r14, [rsp + 0x140]
mov rcx, r14
call qword [rax]
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12], xmm0
mov bpl, 2
mov r14, qword [rsp + 0x1a8]
lea rdx, [rsp + 0x1b0]
mov rax, qword [rdx + 8]
mov r8, qword [rbx]
lea rbx, [rsp + 0x90]
mov rcx, rbx
mov r9, r14
call qword [rax]
mov byte [rbx - 0x10], bpl
mov al, byte [rsp + 0x34]
mov byte [rbx - 0xf], al
mov qword [rbx - 8], r12
lea rcx, [rsp + 0x1a0]
call fcn.140191413
movaps xmm0, xmmword [rsp + 0x80]
movaps xmm1, xmmword [rsp + 0x90]
movaps xmm2, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x190], xmm2
movaps xmmword [rsp + 0x180], xmm1
movaps xmmword [rsp + 0x170], xmm0
movzx edx, word [rdi + 0x110]
movzx eax, byte [rdi + 0x112]
mov r9, qword [rdi + 0x88]
test r9, r9
mov dword [rsp + 0x38], eax
je 0x1401a031b
lock inc qword [r9]
jle 0x1401a05be
mov rax, qword [rdi + 0x90]
mov qword [rsp + 0xc0], rax
jmp 0x1401a031e
xor r9d, r9d
mov r8b, byte [rdi + 0x101]
movzx r13d, byte [rdi + 0x106]
mov al, byte [rdi + 0x100]
xor ecx, ecx
test al, al
setne cl
cmp al, 2
mov r10d, 2
cmovne r10d, ecx
mov eax, dword [rdi + 0x102]
mov qword [rsp + 0x108], rax
mov al, byte [rdi + 0x107]
mov cl, byte [rdi + 0x108]
mov r14, qword [rdi + 0x70]
mov r11, qword [rdi + 0x98]
mov qword [rsp + 0x138], r11
mov r11, qword [rdi + 0xa0]
mov qword [rsp + 0x130], r11
mov r11, qword [rdi + 0xa8]
mov qword [rsp + 0x128], r11
mov r11, qword [rdi + 0xb0]
mov qword [rsp + 0x120], r11
mov r11b, byte [rdi + 0xfc]
mov ebp, dword [rdi + 0xf0]
mov r15d, dword [rdi + 0xf4]
mov ebx, dword [rdi + 0xf8]
mov dword [rsp + 0x34], ebx
mov ebx, dword [rdi + 0xc0]
mov dword [rsp + 0x5c], ebx
mov bl, byte [rdi + 0xfd]
mov byte [rsp + 0x33], bl
mov bl, byte [rdi + 0x109]
mov r12, qword [rdi + 0xb8]
mov qword [rsp + 0xe8], r12
mov r12, qword [rdi + 0xc8]
mov qword [rsp + 0xf0], r12
mov r12d, dword [rdi + 0xd0]
mov dword [rsp + 0x58], r12d
mov r12, qword [rdi + 0xd8]
mov qword [rsp + 0xf8], r12
mov r12, qword [rdi + 0xe0]
mov qword [rsp + 0x100], r12
mov r12, qword [rdi + 0xe8]
mov qword [rsp + 0x110], r12
mov qword [rsp + 0x118], r14
lock inc qword [r14]
jle 0x1401a05be
mov r12, qword [rdi + 0x60]
lock inc qword [r12]
jle 0x1401a05be
mov byte [rsp + 0x2f], r11b
mov dword [rsp + 0x50], r10d
mov byte [rsp + 0x30], cl
mov byte [rsp + 0x31], al
mov qword [rsp + 0xe0], r9
mov byte [rsp + 0x32], r8b
mov r14, qword [rdi + 0x68]
cmp qword [rdi + 0x40], 0
mov dword [rsp + 0x54], edx
mov byte [rsp + 0x2e], bl
je 0x1401a04a0
mov rcx, qword [rdi + 0x48]
call qword [sym.imp.crypt32.dll_CertDuplicateCertificateContext]
mov qword [rsp + 0xb8], rax
mov eax, 1
mov qword [rsp + 0x78], rax
jmp 0x1401a04a7
xor eax, eax
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x48], r15d
mov dword [rsp + 0x4c], ebp
mov rcx, qword [rdi + 0x50]
call qword [sym.imp.crypt32.dll_CertDuplicateStore]
mov qword [rsp + 0xd8], rax
mov al, byte [rdi + 0x58]
mov byte [rsp + 0x2d], al
mov al, byte [rdi + 0x59]
mov byte [rsp + 0x2c], al
mov al, byte [rdi + 0x5a]
mov byte [rsp + 0x2b], al
mov al, byte [rdi + 0x5b]
mov byte [rsp + 0x2a], al
mov al, byte [rdi + 0x5c]
mov byte [rsp + 0x29], al
mov al, byte [rdi + 0x5d]
mov byte [rsp + 0x28], al
mov rbx, qword [rdi + 0x10]
lock inc qword [rbx]
jle 0x1401a05be
mov al, byte [rdi + 0x78]
mov byte [rsp + 0x27], al
mov eax, dword [rdi + 8]
mov dword [rsp + 0x44], eax
mov rax, qword [rdi]
mov qword [rsp + 0xc8], rax
mov al, byte [rdi + 0x79]
mov byte [rsp + 0x26], al
mov al, byte [rdi + 0x7a]
mov byte [rsp + 0x25], al
mov bpl, 2
cmp byte [rdi + 0x38], 2
je 0x1401a0574
mov rax, qword [rdi + 0x30]
lea rdx, [rdi + 0x28]
mov r8, qword [rdi + 0x18]
mov r9, qword [rdi + 0x20]
lea r15, [rsp + 0x1a0]
mov rcx, r15
call qword [rax]
mov bpl, byte [rdi + 0x38]
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movaps xmmword [rsp + 0x150], xmm1
movaps xmmword [rsp + 0x140], xmm0
mov eax, dword [r15 + 0x21]
mov dword [rsp + 0x60], eax
mov eax, dword [r15 + 0x24]
mov dword [rsp + 0x63], eax
movaps xmm0, xmmword [rsp + 0x140]
movaps xmm1, xmmword [rsp + 0x150]
movaps xmmword [rsp + 0x90], xmm1
movaps xmmword [rsp + 0x80], xmm0
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x63]
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0x3f], ecx
mov r15, qword [rdi + 0x80]
test r15, r15
mov qword [rsp + 0xd0], r12
je 0x1401a05c2
lock inc qword [r15]
jg 0x1401a05c5
ud2
xor r15d, r15d
mov r12, r14
lea rdi, [rsp + 0x2a0]
mov r8d, 0x100
mov rcx, rdi
mov rdx, rsi
call fcn.14038a820
movaps xmm0, xmmword [rsp + 0x170]
movaps xmm1, xmmword [rsp + 0x180]
movaps xmm2, xmmword [rsp + 0x190]
movups xmmword [rdi + 0x130], xmm0
movups xmmword [rdi + 0x140], xmm1
movups xmmword [rdi + 0x150], xmm2
mov ecx, 0xbe8
mov edx, 8
call fcn.140020b50
test rax, rax
je 0x1401a08dd
mov rdi, rax
mov eax, dword [rsp + 0x38]
shl eax, 0x10
mov esi, dword [rsp + 0x54]
or esi, eax
shl r13, 0x20
mov r14, qword [rsp + 0x108]
or r14, r13
lea rdx, [rsp + 0x1a0]
mov r8d, 0xac8
mov rcx, rdi
call fcn.14038a820
mov rax, qword [rsp + 0xc8]
mov qword [rdi + 0xac8], rax
mov eax, dword [rsp + 0x44]
mov dword [rdi + 0xad0], eax
mov qword [rdi + 0xad8], rbx
movaps xmm0, xmmword [rsp + 0x80]
movaps xmm1, xmmword [rsp + 0x90]
movups xmmword [rdi + 0xae0], xmm0
movups xmmword [rdi + 0xaf0], xmm1
mov byte [rdi + 0xb00], bpl
mov eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x3f]
mov dword [rdi + 0xb01], eax
mov dword [rdi + 0xb04], ecx
mov rax, qword [rsp + 0x78]
mov qword [rdi + 0xb08], rax
mov rax, qword [rsp + 0xb8]
mov qword [rdi + 0xb10], rax
mov rax, qword [rsp + 0xd8]
mov qword [rdi + 0xb18], rax
mov al, byte [rsp + 0x2d]
mov byte [rdi + 0xb20], al
mov al, byte [rsp + 0x2c]
mov byte [rdi + 0xb21], al
mov al, byte [rsp + 0x2b]
mov byte [rdi + 0xb22], al
mov al, byte [rsp + 0x2a]
mov byte [rdi + 0xb23], al
mov al, byte [rsp + 0x29]
mov byte [rdi + 0xb24], al
mov al, byte [rsp + 0x28]
mov byte [rdi + 0xb25], al
mov rax, qword [rsp + 0xd0]
mov qword [rdi + 0xb28], rax
mov qword [rdi + 0xb30], r12
mov rax, qword [rsp + 0x118]
mov qword [rdi + 0xb38], rax
mov al, byte [rsp + 0x27]
mov byte [rdi + 0xb40], al
mov al, byte [rsp + 0x26]
mov byte [rdi + 0xb41], al
mov al, byte [rsp + 0x25]
mov byte [rdi + 0xb42], al
mov qword [rdi + 0xb48], r15
mov rax, qword [rsp + 0xe0]
mov qword [rdi + 0xb50], rax
mov rax, qword [rsp + 0xc0]
mov qword [rdi + 0xb58], rax
mov rax, qword [rsp + 0x138]
mov qword [rdi + 0xb60], rax
mov rax, qword [rsp + 0x130]
mov qword [rdi + 0xb68], rax
mov rax, qword [rsp + 0x128]
mov qword [rdi + 0xb70], rax
mov rax, qword [rsp + 0x120]
mov qword [rdi + 0xb78], rax
mov rax, qword [rsp + 0xe8]
mov qword [rdi + 0xb80], rax
mov eax, dword [rsp + 0x5c]
mov dword [rdi + 0xb88], eax
mov rax, qword [rsp + 0xf0]
mov qword [rdi + 0xb90], rax
mov eax, dword [rsp + 0x58]
mov dword [rdi + 0xb98], eax
mov rax, qword [rsp + 0xf8]
mov qword [rdi + 0xba0], rax
mov rax, qword [rsp + 0x100]
mov qword [rdi + 0xba8], rax
mov rax, qword [rsp + 0x110]
mov qword [rdi + 0xbb0], rax
mov eax, dword [rsp + 0x4c]
mov dword [rdi + 0xbb8], eax
mov eax, dword [rsp + 0x48]
mov dword [rdi + 0xbbc], eax
mov eax, dword [rsp + 0x34]
mov dword [rdi + 0xbc0], eax
mov al, byte [rsp + 0x2f]
mov byte [rdi + 0xbc4], al
mov al, byte [rsp + 0x33]
mov byte [rdi + 0xbc5], al
mov eax, dword [rsp + 0x50]
mov byte [rdi + 0xbc8], al
mov al, byte [rsp + 0x32]
mov byte [rdi + 0xbc9], al
mov rax, r14
shr rax, 0x20
mov byte [rdi + 0xbce], al
mov dword [rdi + 0xbca], r14d
mov al, byte [rsp + 0x31]
mov byte [rdi + 0xbcf], al
mov al, byte [rsp + 0x30]
mov byte [rdi + 0xbd0], al
mov al, byte [rsp + 0x2e]
mov byte [rdi + 0xbd1], al
mov eax, esi
shr eax, 0x10
mov byte [rdi + 0xbda], al
mov word [rdi + 0xbd8], si
mov byte [rdi + 0xbe0], 0
lea rbx, [0x14048f400]
mov rax, rdi
mov rdx, rbx
add rsp, 0xc68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0xa0
jmp 0x1401a08e2
mov ecx, 8
jmp 0x1401a08e2
mov ecx, 0xbe8
mov edx, 8
call fcn.14038e430
ud2