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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x78]
mov eax, 0x178
call fcn.18038ed40
sub rsp, rax
mov rax, qword [0x1804de580]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov eax, dword [rbp + 0xe8]
xor edi, edi
mov r14, qword [rbp + 0xe0]
mov r15, r8
mov r12, qword [rbp + 0xf0]
mov rsi, rdx
mov qword [rsp + 0x50], r9
mov rbx, rcx
mov qword [rsp + 0x48], r14
mov r13d, edi
cmp eax, 0xffffffff
jne 0x1801d8347
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x40], eax
jmp 0x1801d8358
test eax, eax
mov ecx, 1
cmove ecx, eax
mov dword [rsp + 0x40], ecx
mov dword [rbx + 0x10], ecx
test rsi, rsi
jne 0x1801d8387
cmp qword [rbx], rdi
jne 0x1801d8387
call fcn.1801c25e0
lea r8, str.evp_cipher_init_internal
lea edx, [rsi + 0x75]
lea rcx, str.cryptoevpevp_enc.c
call fcn.1801c2700
mov edx, 0x83
jmp 0x1801d863f
cmp qword [rbx + 8], rdi
je 0x1801d83a9
mov rax, qword [rbx]
test rax, rax
je 0x1801d83a9
test rsi, rsi
je 0x1801d8c72
mov eax, dword [rax]
cmp dword [rdx], eax
jne 0x1801d83ae
jmp 0x1801d8c72
test rsi, rsi
je 0x1801d83bd
test r15, r15
jne 0x1801d83bd
mov ecx, dword [rdx]
call fcn.18020a9f0
mov r13, rax
cmp qword [rbx + 8], rdi
jne 0x1801d8a1a
test r13, r13
jne 0x1801d8a1a
test r15, r15
jne 0x1801d8a1a
test rsi, rsi
je 0x1801d853c
cmp dword [rsi + 0x14], 2
je 0x1801d8a1a
mov rax, qword [rbx]
test rax, rax
je 0x1801d842f
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x1801d840a
mov rcx, rbx
call rdx
test eax, eax
je case.default.0x1801d8d31
mov rax, qword [rbx]
lea r14, [rbx + 0x78]
mov rcx, qword [r14]
lea r8, str.cryptoevpevp_enc.c
mov r9d, 0xa4
movsxd rdx, dword [rax + 0x30]
call fcn.1801b88c0
mov qword [r14], rdi
jmp 0x1801d8433
lea r14, [rbx + 0x78]
mov rax, qword [rbx]
test rax, rax
je 0x1801d8551
mov r15d, dword [rbx + 0x70]
cmp qword [rax + 0x70], rdi
je 0x1801d84ce
mov rcx, qword [rbx + 0xa8]
test rcx, rcx
je 0x1801d846e
mov rdx, qword [rax + 0xb0]
test rdx, rdx
je 0x1801d8467
call rdx
mov qword [rbx + 0xa8], rdi
mov r14, qword [rbx + 0xb0]
test r14, r14
je 0x1801d8516
cmp dword [r14 + 0x14], edi
jne 0x1801d8516
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x1801d8516
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.1801b8800
mov rcx, qword [r14 + 0x70]
call fcn.1801c4530
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.1801b8800
jmp 0x1801d8516
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x1801d84e0
mov rcx, rbx
call rdx
test eax, eax
je 0x1801d852d
mov rcx, qword [r14]
test rcx, rcx
je 0x1801d84f8
mov rax, qword [rbx]
movsxd rdx, dword [rax + 0x30]
test edx, edx
je 0x1801d84f8
call fcn.180001240
mov rcx, qword [r14]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x3f
call fcn.1801b8800
mov rcx, qword [rbx + 8]
call fcn.1801c2c40
mov r8d, 0xb8
xor edx, edx
mov rcx, rbx
call fcn.1803c9620
mov dword [rbx + 0x6c], 0xffffffff
mov r13d, dword [rsp + 0x40]
mov dword [rbx + 0x10], r13d
mov dword [rbx + 0x70], r15d
jmp 0x1801d8556
mov rax, qword [rbx]
test rax, rax
je 0x1801d854e
cmp dword [rax + 0x14], 2
je 0x1801d8a1a
mov rsi, qword [rbx]
mov r13d, dword [rsp + 0x40]
cmp qword [rsi + 0x70], rdi
jne 0x1801d866d
mov ecx, dword [rsi]
test ecx, ecx
jne 0x1801d856f
lea rax, str.NULL
jmp 0x1801d8574
call fcn.1801b9cd0
lea rcx, [0x1801d7d90]
mov r8, rax
mov qword [rsp + 0x30], rcx
lea r9, [0x180489228]
lea rcx, [fcn.1801d6ae0]
mov edx, 2
mov qword [rsp + 0x28], rcx
lea rcx, [0x1801d7e50]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call fcn.1801c6280
mov rsi, rax
test rax, rax
je case.default.0x1801d8d31
mov r14, qword [rbx + 0xb0]
test r14, r14
je 0x1801d8610
cmp dword [r14 + 0x14], edi
jne 0x1801d8610
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x1801d8610
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.1801b8800
mov rcx, qword [r14 + 0x70]
call fcn.1801c4530
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.1801b8800
mov qword [rbx + 0xb0], rsi
cmp qword [rsi + 0x70], rdi
jne 0x1801d866d
call fcn.1801c25e0
lea r8, str.evp_cipher_init_internal
mov edx, 0xcc
lea rcx, str.cryptoevpevp_enc.c
call fcn.1801c2700
mov edx, 0x86
xor r8d, r8d
lea ecx, [r8 + 6]
call fcn.1801c2860
xor eax, eax
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.18038e050
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp rsi, qword [rbx + 0xb0]
je 0x1801d86dc
cmp dword [rsi + 0x14], edi
jne 0x1801d867f
lock inc dword [rsi + 0x78]
mov r14, qword [rbx + 0xb0]
test r14, r14
je 0x1801d86d5
cmp dword [r14 + 0x14], edi
jne 0x1801d86d5
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x1801d86d5
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.1801b8800
mov rcx, qword [r14 + 0x70]
call fcn.1801c4530
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.1801b8800
mov qword [rbx + 0xb0], rsi
mov qword [rbx], rsi
cmp qword [rbx + 0xa8], rdi
jne 0x1801d871c
mov rcx, qword [rsi + 0x70]
call fcn.1801c3fa0
mov rcx, rax
call qword [rsi + 0x80]
mov qword [rbx + 0xa8], rax
test rax, rax
jne 0x1801d871c
call fcn.1801c25e0
lea r8, str.evp_cipher_init_internal
mov edx, 0xde
jmp 0x1801d862e
mov eax, dword [rbx + 0x70]
bt eax, 8
jae 0x1801d87bf
bts eax, 8
mov qword [rsp + 0x60], rdi
mov dword [rbx + 0x70], eax
mov rax, qword [rbx]
mov dword [rsp + 0x68], edi
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x80], rdi
mov qword [rbp - 0x78], rdi
mov dword [rbp - 0x70], edi
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x60], rdi
mov qword [rbp - 0x58], rdi
mov dword [rsp + 0x40], edi
test rax, rax
je 0x1801d876c
cmp qword [rax + 0x70], rdi
je 0x1801d87bf
lea r8, [rsp + 0x40]
lea rdx, [0x1803ed828]
lea rcx, [rbp - 0x50]
call fcn.1801bade0
mov rdx, qword [rbx + 0xa8]
lea r8, [rsp + 0x60]
mov rcx, qword [rbx]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0x70], xmm1
movsd xmm0, qword [rax + 0x20]
movsd qword [rbp - 0x80], xmm0
call fcn.1801c7010
test eax, eax
mov ecx, edi
setne cl
test ecx, ecx
je case.default.0x1801d8d31
test r12, r12
je 0x1801d8924
lea rdx, str.keylen
mov qword [rbp - 0x20], rdi
mov rcx, r12
mov dword [rbp - 0x18], edi
mov qword [rbp - 0x10], rdi
lea rsi, [rbp - 0x20]
mov qword [rbp - 8], rdi
mov qword [rbp], rdi
mov qword [rbp + 8], rdi
mov dword [rbp + 0x10], edi
mov qword [rbp + 0x18], rdi
mov qword [rbp + 0x20], rdi
mov qword [rbp + 0x28], rdi
mov qword [rbp + 0x30], rdi
mov dword [rbp + 0x38], edi
mov qword [rbp + 0x40], rdi
mov qword [rbp + 0x48], rdi
mov qword [rbp + 0x50], rdi
call fcn.1801bbfa0
test rax, rax
je 0x1801d8836
movups xmm0, xmmword [rax]
lea rsi, [rbp + 8]
movaps xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp - 0x10], xmm1
movsd xmm0, qword [rax + 0x20]
movsd qword [rbp], xmm0
lea rdx, str.ivlen
mov rcx, r12
call fcn.1801bbfa0
mov rcx, rax
test rax, rax
je 0x1801d886c
movups xmm0, xmmword [rcx]
mov rax, rsi
add rsi, 0x28
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [rcx + 0x20]
movsd qword [rax + 0x20], xmm0
lea rax, [rbp - 0x20]
cmp rsi, rax
je 0x1801d8924
mov rax, qword [rbx]
test rax, rax
je 0x1801d88fd
mov r8, qword [rax + 0xd0]
test r8, r8
je 0x1801d88fd
mov rcx, qword [rbx + 0xa8]
lea rdx, [rbp - 0x20]
call r8
test eax, eax
jle 0x1801d88fb
lea rdx, str.keylen
lea rcx, [rbp - 0x20]
call fcn.1801bbfa0
test rax, rax
je 0x1801d88cd
lea rdx, [rbx + 0x68]
mov rcx, rax
call fcn.1801bb000
test eax, eax
jne 0x1801d88cd
mov dword [rbx + 0x68], 0xffffffff
jmp 0x1801d88fd
lea rdx, str.ivlen
lea rcx, [rbp - 0x20]
call fcn.1801bbfa0
test rax, rax
je 0x1801d8924
lea rdx, [rbx + 0x6c]
mov rcx, rax
call fcn.1801bb000
test eax, eax
jne 0x1801d8924
mov dword [rbx + 0x6c], 0xffffffff
jmp 0x1801d88fd
jne 0x1801d8924
call fcn.1801c25e0
lea r8, str.evp_cipher_init_internal
mov edx, 0x109
lea rcx, str.cryptoevpevp_enc.c
call fcn.1801c2700
mov edx, 0xdd
jmp 0x1801d863f
mov rax, qword [rbx]
test r13d, r13d
je 0x1801d89a3
cmp qword [rax + 0x88], rdi
jne 0x1801d894b
call fcn.1801c25e0
lea r8, str.evp_cipher_init_internal
mov edx, 0x112
jmp 0x1801d862e
mov r15, qword [rsp + 0x48]
test r15, r15
jne 0x1801d8959
mov esi, edi
jmp 0x1801d8963
mov rcx, rbx
call fcn.1801bd9a0
mov esi, eax
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x1801d8977
mov rcx, rbx
call fcn.1801bdb00
mov edi, eax
mov r10, qword [rbx]
mov r9, r15
movsxd rcx, esi
mov rdx, r14
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rcx
mov rcx, qword [rbx + 0xa8]
movsxd r8, edi
call qword [r10 + 0x88]
jmp 0x1801d864d
cmp qword [rax + 0x90], rdi
jne 0x1801d89c2
call fcn.1801c25e0
lea r8, str.evp_cipher_init_internal
mov edx, 0x121
jmp 0x1801d862e
mov r15, qword [rsp + 0x48]
test r15, r15
jne 0x1801d89d0
mov esi, edi
jmp 0x1801d89da
mov rcx, rbx
call fcn.1801bd9a0
mov esi, eax
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x1801d89ee
mov rcx, rbx
call fcn.1801bdb00
mov edi, eax
mov r10, qword [rbx]
mov r9, r15
mov rcx, qword [rbx + 0xa8]
mov rdx, r14
movsxd rax, esi
movsxd r8, edi
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rax
call qword [r10 + 0x90]
jmp 0x1801d864d
mov r14, qword [rbx + 0xb0]
cmp qword [rbx], r14
jne 0x1801d8a29
mov qword [rbx], rdi
test r14, r14
je 0x1801d8a78
cmp dword [r14 + 0x14], edi
jne 0x1801d8a78
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x1801d8a78
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.1801b8800
mov rcx, qword [r14 + 0x70]
call fcn.1801c4530
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.1801b8800
mov qword [rbx + 0xb0], rdi
test rsi, rsi
je 0x1801d8c6d
mov rax, qword [rbx]
test rax, rax
je 0x1801d8b9a
mov r12d, dword [rbx + 0x70]
cmp qword [rax + 0x70], rdi
je 0x1801d8b2e
mov rcx, qword [rbx + 0xa8]
test rcx, rcx
je 0x1801d8b78
mov rdx, qword [rax + 0xb0]
mov r14, rdi
test rdx, rdx
je 0x1801d8aca
call rdx
mov r14, qword [rbx + 0xb0]
mov qword [rbx + 0xa8], rdi
test r14, r14
je 0x1801d8b78
cmp dword [r14 + 0x14], edi
jne 0x1801d8b78
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x1801d8b78
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.1801b8800
mov rcx, qword [r14 + 0x70]
call fcn.1801c4530
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.1801b8800
jmp 0x1801d8b78
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x1801d8b40
mov rcx, rbx
call rdx
test eax, eax
je 0x1801d8b8f
mov rcx, qword [rbx + 0x78]
test rcx, rcx
je 0x1801d8b59
mov rax, qword [rbx]
movsxd rdx, dword [rax + 0x30]
test edx, edx
je 0x1801d8b59
call fcn.180001240
mov rcx, qword [rbx + 0x78]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x3f
call fcn.1801b8800
mov rcx, qword [rbx + 8]
call fcn.1801c2c40
mov r8d, 0xb8
xor edx, edx
mov rcx, rbx
call fcn.1803c9620
mov dword [rbx + 0x6c], 0xffffffff
mov eax, dword [rsp + 0x40]
mov dword [rbx + 0x10], eax
mov dword [rbx + 0x70], r12d
test r15, r15
je 0x1801d8bc1
mov rcx, r15
call fcn.1801c2d60
test eax, eax
jne 0x1801d8bc9
call fcn.1801c25e0
lea r8, str.evp_cipher_init_internal
mov edx, 0x141
jmp 0x1801d862e
mov r15, r13
test r13, r13
je 0x1801d8bf1
mov edx, dword [rsi]
mov rcx, r15
call fcn.18020a980
mov rsi, rax
test rax, rax
jne 0x1801d8bf4
call fcn.1801c25e0
lea r8, str.evp_cipher_init_internal
mov edx, 0x151
jmp 0x1801d862e
mov r15, rdi
mov qword [rbx + 8], r15
mov qword [rbx], rsi
movsxd rax, dword [rsi + 0x30]
test eax, eax
je 0x1801d8c29
mov rcx, rax
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x162
call fcn.1801b8a90
mov qword [rbx + 0x78], rax
test rax, rax
jne 0x1801d8c2d
mov qword [rbx], rdi
jmp case.default.0x1801d8d31
mov qword [rbx + 0x78], rdi
mov eax, dword [rsi + 8]
and dword [rbx + 0x70], 1
mov dword [rbx + 0x68], eax
mov rax, qword [rbx]
test byte [rax + 0x10], 0x40
je 0x1801d8c6d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1801d5be0
test eax, eax
jg 0x1801d8c6d
mov qword [rbx], rdi
call fcn.1801c25e0
lea r8, str.evp_cipher_init_internal
mov edx, 0x170
jmp 0x1801d862e
mov r14, qword [rsp + 0x48]
mov rax, qword [rbx]
test rax, rax
je case.default.0x1801d8d31
mov ecx, dword [rax + 4]
cmp ecx, 0x10
ja 0x1801d8c90
mov eax, 0x10102
bt eax, ecx
jb 0x1801d8ca9
mov r8d, 0x17e
lea rdx, str.cryptoevpevp_enc.c
lea rcx, str.assertion_failed:_ctx__cipher__block_size__1__ctx__cipher__block_size__8__ctx__cipher__block_size__16
call fcn.1801b8ad0
test byte [rbx + 0x70], 1
jne 0x1801d8ced
mov rcx, rbx
call fcn.1801bd970
mov rcx, rax
call fcn.1801bdfb0
cmp eax, 0x10002
jne 0x1801d8ced
call fcn.1801c25e0
lea r8, str.evp_cipher_init_internal
mov edx, 0x182
lea rcx, str.cryptoevpevp_enc.c
call fcn.1801c2700
mov edx, 0xaa
jmp 0x1801d863f
mov rcx, rbx
call fcn.1801bd970
mov rcx, rax
call fcn.1801bdf80
test al, 0x10
jne case.0x1801d8d31.0
mov rcx, rbx
call fcn.1801bd970
mov rcx, rax
call fcn.1801bdfb0
cmp eax, 5
ja case.default.0x1801d8d31
lea rdx, [0x180000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x1d8e28]
add rcx, rdx
jmp rcx
mov dword [rbx + 0x58], edi
mov rcx, rbx
call fcn.1801bd9a0
cmp eax, 0x10
ja 0x1801d8d73
mov r15, qword [rsp + 0x48]
lea rsi, [rbx + 0x18]
movsxd r14, eax
test r15, r15
je 0x1801d8d62
mov r8, r14
mov rdx, r15
mov rcx, rsi
call fcn.1803c8f80
lea rcx, [rbx + 0x28]
mov r8, r14
mov rdx, rsi
call fcn.1803c8f80
jmp 0x1801d8dc6
call fcn.1801c25e0
mov edx, 0x197
lea r8, str.evp_cipher_init_internal
lea rcx, str.cryptoevpevp_enc.c
call fcn.1801c2700
mov edx, 0xc2
jmp 0x1801d863f
mov dword [rbx + 0x58], edi
test r14, r14
je case.0x1801d8d31.0
mov rcx, rbx
call fcn.1801bd9a0
lea ecx, [rax - 1]
cmp ecx, 0xf
ja 0x1801d8e17
movsxd r8, eax
lea rcx, [rbx + 0x28]
mov rdx, r14
call fcn.1803c8f80
mov r15, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
test r14, r14
jne 0x1801d8dd9
mov rax, qword [rbx]
test byte [rax + 0x10], 0x20
je 0x1801d8df6
mov r10, qword [rbx]
mov r8, r15
mov r9d, dword [rsp + 0x40]
mov rdx, r14
mov rcx, rbx
call qword [r10 + Ordinal_27]
test eax, eax
je case.default.0x1801d8d31
mov rcx, qword [rbx]
mov eax, 1
mov dword [rbx + 0x14], edi
mov dword [rbx + 0x80], edi
mov edx, dword [rcx + 4]
dec edx
mov dword [rbx + 0x84], edx
jmp 0x1801d864d
call fcn.1801c25e0
mov edx, 0x1a5
jmp 0x1801d8d7d