Function at 0x180256890
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.18040d2f0
sub rsp, rax
mov rax, qword [0x18056d580]
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 0x1802568f7
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x40], eax
jmp 0x180256908
test eax, eax
mov ecx, 1
cmove ecx, eax
mov dword [rsp + 0x40], ecx
mov dword [rbx + 0x10], ecx
test rsi, rsi
jne 0x180256937
cmp qword [rbx], rdi
jne 0x180256937
call fcn.180240b90
lea r8, str.evp_cipher_init_internal
lea edx, [rsi + 0x75]
lea rcx, str.cryptoevpevp_enc.c
call fcn.180240cb0
mov edx, 0x83
jmp 0x180256bef
cmp qword [rbx + 8], rdi
je 0x180256959
mov rax, qword [rbx]
test rax, rax
je 0x180256959
test rsi, rsi
je 0x180257222
mov eax, dword [rax]
cmp dword [rdx], eax
jne 0x18025695e
jmp 0x180257222
test rsi, rsi
je 0x18025696d
test r15, r15
jne 0x18025696d
mov ecx, dword [rdx]
call fcn.180288fa0
mov r13, rax
cmp qword [rbx + 8], rdi
jne 0x180256fca
test r13, r13
jne 0x180256fca
test r15, r15
jne 0x180256fca
test rsi, rsi
je 0x180256aec
cmp dword [rsi + 0x14], 2
je 0x180256fca
mov rax, qword [rbx]
test rax, rax
je 0x1802569df
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x1802569ba
mov rcx, rbx
call rdx
test eax, eax
je case.default.0x1802572e1
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.180236e70
mov qword [r14], rdi
jmp 0x1802569e3
lea r14, [rbx + 0x78]
mov rax, qword [rbx]
test rax, rax
je 0x180256b01
mov r15d, dword [rbx + 0x70]
cmp qword [rax + 0x70], rdi
je 0x180256a7e
mov rcx, qword [rbx + 0xa8]
test rcx, rcx
je 0x180256a1e
mov rdx, qword [rax + 0xb0]
test rdx, rdx
je 0x180256a17
call rdx
mov qword [rbx + 0xa8], rdi
mov r14, qword [rbx + 0xb0]
test r14, r14
je 0x180256ac6
cmp dword [r14 + 0x14], edi
jne 0x180256ac6
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x180256ac6
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.180236db0
mov rcx, qword [r14 + 0x70]
call fcn.180242ae0
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.180236db0
jmp 0x180256ac6
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x180256a90
mov rcx, rbx
call rdx
test eax, eax
je 0x180256add
mov rcx, qword [r14]
test rcx, rcx
je 0x180256aa8
mov rax, qword [rbx]
movsxd rdx, dword [rax + 0x30]
test edx, edx
je 0x180256aa8
call fcn.180001240
mov rcx, qword [r14]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x3f
call fcn.180236db0
mov rcx, qword [rbx + 8]
call fcn.1802411f0
mov r8d, 0xb8
xor edx, edx
mov rcx, rbx
call fcn.180447bd0
mov dword [rbx + 0x6c], 0xffffffff
mov r13d, dword [rsp + 0x40]
mov dword [rbx + 0x10], r13d
mov dword [rbx + 0x70], r15d
jmp 0x180256b06
mov rax, qword [rbx]
test rax, rax
je 0x180256afe
cmp dword [rax + 0x14], 2
je 0x180256fca
mov rsi, qword [rbx]
mov r13d, dword [rsp + 0x40]
cmp qword [rsi + 0x70], rdi
jne 0x180256c1d
mov ecx, dword [rsi]
test ecx, ecx
jne 0x180256b1f
lea rax, str.NULL
jmp 0x180256b24
call fcn.180238280
lea rcx, [0x180256340]
mov r8, rax
mov qword [rsp + 0x30], rcx
lea r9, [0x180507268]
lea rcx, [fcn.180255090]
mov edx, 2
mov qword [rsp + 0x28], rcx
lea rcx, [0x180256400]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call fcn.180244830
mov rsi, rax
test rax, rax
je case.default.0x1802572e1
mov r14, qword [rbx + 0xb0]
test r14, r14
je 0x180256bc0
cmp dword [r14 + 0x14], edi
jne 0x180256bc0
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x180256bc0
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.180236db0
mov rcx, qword [r14 + 0x70]
call fcn.180242ae0
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.180236db0
mov qword [rbx + 0xb0], rsi
cmp qword [rsi + 0x70], rdi
jne 0x180256c1d
call fcn.180240b90
lea r8, str.evp_cipher_init_internal
mov edx, 0xcc
lea rcx, str.cryptoevpevp_enc.c
call fcn.180240cb0
mov edx, 0x86
xor r8d, r8d
lea ecx, [r8 + 6]
call fcn.180240e10
xor eax, eax
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.18040c600
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 0x180256c8c
cmp dword [rsi + 0x14], edi
jne 0x180256c2f
lock inc dword [rsi + 0x78]
mov r14, qword [rbx + 0xb0]
test r14, r14
je 0x180256c85
cmp dword [r14 + 0x14], edi
jne 0x180256c85
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x180256c85
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.180236db0
mov rcx, qword [r14 + 0x70]
call fcn.180242ae0
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.180236db0
mov qword [rbx + 0xb0], rsi
mov qword [rbx], rsi
cmp qword [rbx + 0xa8], rdi
jne 0x180256ccc
mov rcx, qword [rsi + 0x70]
call fcn.180242550
mov rcx, rax
call qword [rsi + 0x80]
mov qword [rbx + 0xa8], rax
test rax, rax
jne 0x180256ccc
call fcn.180240b90
lea r8, str.evp_cipher_init_internal
mov edx, 0xde
jmp 0x180256bde
mov eax, dword [rbx + 0x70]
bt eax, 8
jae 0x180256d6f
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 0x180256d1c
cmp qword [rax + 0x70], rdi
je 0x180256d6f
lea r8, [rsp + 0x40]
lea rdx, [0x18046b828]
lea rcx, [rbp - 0x50]
call fcn.180239390
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.1802455c0
test eax, eax
mov ecx, edi
setne cl
test ecx, ecx
je case.default.0x1802572e1
test r12, r12
je 0x180256ed4
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.18023a550
test rax, rax
je 0x180256de6
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.18023a550
mov rcx, rax
test rax, rax
je 0x180256e1c
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 0x180256ed4
mov rax, qword [rbx]
test rax, rax
je 0x180256ead
mov r8, qword [rax + 0xd0]
test r8, r8
je 0x180256ead
mov rcx, qword [rbx + 0xa8]
lea rdx, [rbp - 0x20]
call r8
test eax, eax
jle 0x180256eab
lea rdx, str.keylen
lea rcx, [rbp - 0x20]
call fcn.18023a550
test rax, rax
je 0x180256e7d
lea rdx, [rbx + 0x68]
mov rcx, rax
call fcn.1802395b0
test eax, eax
jne 0x180256e7d
mov dword [rbx + 0x68], 0xffffffff
jmp 0x180256ead
lea rdx, str.ivlen
lea rcx, [rbp - 0x20]
call fcn.18023a550
test rax, rax
je 0x180256ed4
lea rdx, [rbx + 0x6c]
mov rcx, rax
call fcn.1802395b0
test eax, eax
jne 0x180256ed4
mov dword [rbx + 0x6c], 0xffffffff
jmp 0x180256ead
jne 0x180256ed4
call fcn.180240b90
lea r8, str.evp_cipher_init_internal
mov edx, 0x109
lea rcx, str.cryptoevpevp_enc.c
call fcn.180240cb0
mov edx, 0xdd
jmp 0x180256bef
mov rax, qword [rbx]
test r13d, r13d
je 0x180256f53
cmp qword [rax + 0x88], rdi
jne 0x180256efb
call fcn.180240b90
lea r8, str.evp_cipher_init_internal
mov edx, 0x112
jmp 0x180256bde
mov r15, qword [rsp + 0x48]
test r15, r15
jne 0x180256f09
mov esi, edi
jmp 0x180256f13
mov rcx, rbx
call fcn.18023bf50
mov esi, eax
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x180256f27
mov rcx, rbx
call fcn.18023c0b0
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 0x180256bfd
cmp qword [rax + 0x90], rdi
jne 0x180256f72
call fcn.180240b90
lea r8, str.evp_cipher_init_internal
mov edx, 0x121
jmp 0x180256bde
mov r15, qword [rsp + 0x48]
test r15, r15
jne 0x180256f80
mov esi, edi
jmp 0x180256f8a
mov rcx, rbx
call fcn.18023bf50
mov esi, eax
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x180256f9e
mov rcx, rbx
call fcn.18023c0b0
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 0x180256bfd
mov r14, qword [rbx + 0xb0]
cmp qword [rbx], r14
jne 0x180256fd9
mov qword [rbx], rdi
test r14, r14
je 0x180257028
cmp dword [r14 + 0x14], edi
jne 0x180257028
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x180257028
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.180236db0
mov rcx, qword [r14 + 0x70]
call fcn.180242ae0
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.180236db0
mov qword [rbx + 0xb0], rdi
test rsi, rsi
je 0x18025721d
mov rax, qword [rbx]
test rax, rax
je 0x18025714a
mov r12d, dword [rbx + 0x70]
cmp qword [rax + 0x70], rdi
je 0x1802570de
mov rcx, qword [rbx + 0xa8]
test rcx, rcx
je 0x180257128
mov rdx, qword [rax + 0xb0]
mov r14, rdi
test rdx, rdx
je 0x18025707a
call rdx
mov r14, qword [rbx + 0xb0]
mov qword [rbx + 0xa8], rdi
test r14, r14
je 0x180257128
cmp dword [r14 + 0x14], edi
jne 0x180257128
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x180257128
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.180236db0
mov rcx, qword [r14 + 0x70]
call fcn.180242ae0
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.180236db0
jmp 0x180257128
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x1802570f0
mov rcx, rbx
call rdx
test eax, eax
je 0x18025713f
mov rcx, qword [rbx + 0x78]
test rcx, rcx
je 0x180257109
mov rax, qword [rbx]
movsxd rdx, dword [rax + 0x30]
test edx, edx
je 0x180257109
call fcn.180001240
mov rcx, qword [rbx + 0x78]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x3f
call fcn.180236db0
mov rcx, qword [rbx + 8]
call fcn.1802411f0
mov r8d, 0xb8
xor edx, edx
mov rcx, rbx
call fcn.180447bd0
mov dword [rbx + 0x6c], 0xffffffff
mov eax, dword [rsp + 0x40]
mov dword [rbx + 0x10], eax
mov dword [rbx + 0x70], r12d
test r15, r15
je 0x180257171
mov rcx, r15
call fcn.180241310
test eax, eax
jne 0x180257179
call fcn.180240b90
lea r8, str.evp_cipher_init_internal
mov edx, 0x141
jmp 0x180256bde
mov r15, r13
test r13, r13
je 0x1802571a1
mov edx, dword [rsi]
mov rcx, r15
call fcn.180288f30
mov rsi, rax
test rax, rax
jne 0x1802571a4
call fcn.180240b90
lea r8, str.evp_cipher_init_internal
mov edx, 0x151
jmp 0x180256bde
mov r15, rdi
mov qword [rbx + 8], r15
mov qword [rbx], rsi
movsxd rax, dword [rsi + 0x30]
test eax, eax
je 0x1802571d9
mov rcx, rax
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x162
call fcn.180237040
mov qword [rbx + 0x78], rax
test rax, rax
jne 0x1802571dd
mov qword [rbx], rdi
jmp case.default.0x1802572e1
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 0x18025721d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.180254190
test eax, eax
jg 0x18025721d
mov qword [rbx], rdi
call fcn.180240b90
lea r8, str.evp_cipher_init_internal
mov edx, 0x170
jmp 0x180256bde
mov r14, qword [rsp + 0x48]
mov rax, qword [rbx]
test rax, rax
je case.default.0x1802572e1
mov ecx, dword [rax + 4]
cmp ecx, 0x10
ja 0x180257240
mov eax, 0x10102
bt eax, ecx
jb 0x180257259
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.180237080
test byte [rbx + 0x70], 1
jne 0x18025729d
mov rcx, rbx
call fcn.18023bf20
mov rcx, rax
call fcn.18023c560
cmp eax, 0x10002
jne 0x18025729d
call fcn.180240b90
lea r8, str.evp_cipher_init_internal
mov edx, 0x182
lea rcx, str.cryptoevpevp_enc.c
call fcn.180240cb0
mov edx, 0xaa
jmp 0x180256bef
mov rcx, rbx
call fcn.18023bf20
mov rcx, rax
call fcn.18023c530
test al, 0x10
jne case.0x1802572e1.0
mov rcx, rbx
call fcn.18023bf20
mov rcx, rax
call fcn.18023c560
cmp eax, 5
ja case.default.0x1802572e1
lea rdx, [0x180000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x2573d8]
add rcx, rdx
jmp rcx
mov dword [rbx + 0x58], edi
mov rcx, rbx
call fcn.18023bf50
cmp eax, 0x10
ja 0x180257323
mov r15, qword [rsp + 0x48]
lea rsi, [rbx + 0x18]
movsxd r14, eax
test r15, r15
je 0x180257312
mov r8, r14
mov rdx, r15
mov rcx, rsi
call fcn.180447530
lea rcx, [rbx + 0x28]
mov r8, r14
mov rdx, rsi
call fcn.180447530
jmp 0x180257376
call fcn.180240b90
mov edx, 0x197
lea r8, str.evp_cipher_init_internal
lea rcx, str.cryptoevpevp_enc.c
call fcn.180240cb0
mov edx, 0xc2
jmp 0x180256bef
mov dword [rbx + 0x58], edi
test r14, r14
je case.0x1802572e1.0
mov rcx, rbx
call fcn.18023bf50
lea ecx, [rax - 1]
cmp ecx, 0xf
ja 0x1802573c7
movsxd r8, eax
lea rcx, [rbx + 0x28]
mov rdx, r14
call fcn.180447530
mov r15, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
test r14, r14
jne 0x180257389
mov rax, qword [rbx]
test byte [rax + 0x10], 0x20
je 0x1802573a6
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.0x1802572e1
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 0x180256bfd
call fcn.180240b90
mov edx, 0x1a5
jmp 0x18025732d