Function at 0x180252db0
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.180409810
sub rsp, rax
mov rax, qword [0x18056a580]
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 0x180252e17
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x40], eax
jmp 0x180252e28
test eax, eax
mov ecx, 1
cmove ecx, eax
mov dword [rsp + 0x40], ecx
mov dword [rbx + 0x10], ecx
test rsi, rsi
jne 0x180252e57
cmp qword [rbx], rdi
jne 0x180252e57
call fcn.18023d0b0
lea r8, str.evp_cipher_init_internal
lea edx, [rsi + 0x75]
lea rcx, str.cryptoevpevp_enc.c
call fcn.18023d1d0
mov edx, 0x83
jmp 0x18025310f
cmp qword [rbx + 8], rdi
je 0x180252e79
mov rax, qword [rbx]
test rax, rax
je 0x180252e79
test rsi, rsi
je 0x180253742
mov eax, dword [rax]
cmp dword [rdx], eax
jne 0x180252e7e
jmp 0x180253742
test rsi, rsi
je 0x180252e8d
test r15, r15
jne 0x180252e8d
mov ecx, dword [rdx]
call fcn.1802854c0
mov r13, rax
cmp qword [rbx + 8], rdi
jne 0x1802534ea
test r13, r13
jne 0x1802534ea
test r15, r15
jne 0x1802534ea
test rsi, rsi
je 0x18025300c
cmp dword [rsi + 0x14], 2
je 0x1802534ea
mov rax, qword [rbx]
test rax, rax
je 0x180252eff
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x180252eda
mov rcx, rbx
call rdx
test eax, eax
je case.default.0x180253801
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.180233390
mov qword [r14], rdi
jmp 0x180252f03
lea r14, [rbx + 0x78]
mov rax, qword [rbx]
test rax, rax
je 0x180253021
mov r15d, dword [rbx + 0x70]
cmp qword [rax + 0x70], rdi
je 0x180252f9e
mov rcx, qword [rbx + 0xa8]
test rcx, rcx
je 0x180252f3e
mov rdx, qword [rax + 0xb0]
test rdx, rdx
je 0x180252f37
call rdx
mov qword [rbx + 0xa8], rdi
mov r14, qword [rbx + 0xb0]
test r14, r14
je 0x180252fe6
cmp dword [r14 + 0x14], edi
jne 0x180252fe6
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x180252fe6
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.1802332d0
mov rcx, qword [r14 + 0x70]
call fcn.18023f000
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.1802332d0
jmp 0x180252fe6
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x180252fb0
mov rcx, rbx
call rdx
test eax, eax
je 0x180252ffd
mov rcx, qword [r14]
test rcx, rcx
je 0x180252fc8
mov rax, qword [rbx]
movsxd rdx, dword [rax + 0x30]
test edx, edx
je 0x180252fc8
call fcn.180001240
mov rcx, qword [r14]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x3f
call fcn.1802332d0
mov rcx, qword [rbx + 8]
call fcn.18023d710
mov r8d, 0xb8
xor edx, edx
mov rcx, rbx
call fcn.1804440f0
mov dword [rbx + 0x6c], 0xffffffff
mov r13d, dword [rsp + 0x40]
mov dword [rbx + 0x10], r13d
mov dword [rbx + 0x70], r15d
jmp 0x180253026
mov rax, qword [rbx]
test rax, rax
je 0x18025301e
cmp dword [rax + 0x14], 2
je 0x1802534ea
mov rsi, qword [rbx]
mov r13d, dword [rsp + 0x40]
cmp qword [rsi + 0x70], rdi
jne 0x18025313d
mov ecx, dword [rsi]
test ecx, ecx
jne 0x18025303f
lea rax, str.NULL
jmp 0x180253044
call fcn.1802347a0
lea rcx, [0x180252860]
mov r8, rax
mov qword [rsp + 0x30], rcx
lea r9, [0x180503268]
lea rcx, [fcn.1802515b0]
mov edx, 2
mov qword [rsp + 0x28], rcx
lea rcx, [0x180252920]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call fcn.180240d50
mov rsi, rax
test rax, rax
je case.default.0x180253801
mov r14, qword [rbx + 0xb0]
test r14, r14
je 0x1802530e0
cmp dword [r14 + 0x14], edi
jne 0x1802530e0
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x1802530e0
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.1802332d0
mov rcx, qword [r14 + 0x70]
call fcn.18023f000
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.1802332d0
mov qword [rbx + 0xb0], rsi
cmp qword [rsi + 0x70], rdi
jne 0x18025313d
call fcn.18023d0b0
lea r8, str.evp_cipher_init_internal
mov edx, 0xcc
lea rcx, str.cryptoevpevp_enc.c
call fcn.18023d1d0
mov edx, 0x86
xor r8d, r8d
lea ecx, [r8 + 6]
call fcn.18023d330
xor eax, eax
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.180408b20
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 0x1802531ac
cmp dword [rsi + 0x14], edi
jne 0x18025314f
lock inc dword [rsi + 0x78]
mov r14, qword [rbx + 0xb0]
test r14, r14
je 0x1802531a5
cmp dword [r14 + 0x14], edi
jne 0x1802531a5
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x1802531a5
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.1802332d0
mov rcx, qword [r14 + 0x70]
call fcn.18023f000
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.1802332d0
mov qword [rbx + 0xb0], rsi
mov qword [rbx], rsi
cmp qword [rbx + 0xa8], rdi
jne 0x1802531ec
mov rcx, qword [rsi + 0x70]
call fcn.18023ea70
mov rcx, rax
call qword [rsi + 0x80]
mov qword [rbx + 0xa8], rax
test rax, rax
jne 0x1802531ec
call fcn.18023d0b0
lea r8, str.evp_cipher_init_internal
mov edx, 0xde
jmp 0x1802530fe
mov eax, dword [rbx + 0x70]
bt eax, 8
jae 0x18025328f
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 0x18025323c
cmp qword [rax + 0x70], rdi
je 0x18025328f
lea r8, [rsp + 0x40]
lea rdx, [0x180467828]
lea rcx, [rbp - 0x50]
call fcn.1802358b0
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.180241ae0
test eax, eax
mov ecx, edi
setne cl
test ecx, ecx
je case.default.0x180253801
test r12, r12
je 0x1802533f4
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.180236a70
test rax, rax
je 0x180253306
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.180236a70
mov rcx, rax
test rax, rax
je 0x18025333c
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 0x1802533f4
mov rax, qword [rbx]
test rax, rax
je 0x1802533cd
mov r8, qword [rax + 0xd0]
test r8, r8
je 0x1802533cd
mov rcx, qword [rbx + 0xa8]
lea rdx, [rbp - 0x20]
call r8
test eax, eax
jle 0x1802533cb
lea rdx, str.keylen
lea rcx, [rbp - 0x20]
call fcn.180236a70
test rax, rax
je 0x18025339d
lea rdx, [rbx + 0x68]
mov rcx, rax
call fcn.180235ad0
test eax, eax
jne 0x18025339d
mov dword [rbx + 0x68], 0xffffffff
jmp 0x1802533cd
lea rdx, str.ivlen
lea rcx, [rbp - 0x20]
call fcn.180236a70
test rax, rax
je 0x1802533f4
lea rdx, [rbx + 0x6c]
mov rcx, rax
call fcn.180235ad0
test eax, eax
jne 0x1802533f4
mov dword [rbx + 0x6c], 0xffffffff
jmp 0x1802533cd
jne 0x1802533f4
call fcn.18023d0b0
lea r8, str.evp_cipher_init_internal
mov edx, 0x109
lea rcx, str.cryptoevpevp_enc.c
call fcn.18023d1d0
mov edx, 0xdd
jmp 0x18025310f
mov rax, qword [rbx]
test r13d, r13d
je 0x180253473
cmp qword [rax + 0x88], rdi
jne 0x18025341b
call fcn.18023d0b0
lea r8, str.evp_cipher_init_internal
mov edx, 0x112
jmp 0x1802530fe
mov r15, qword [rsp + 0x48]
test r15, r15
jne 0x180253429
mov esi, edi
jmp 0x180253433
mov rcx, rbx
call fcn.180238470
mov esi, eax
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x180253447
mov rcx, rbx
call fcn.1802385d0
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 0x18025311d
cmp qword [rax + 0x90], rdi
jne 0x180253492
call fcn.18023d0b0
lea r8, str.evp_cipher_init_internal
mov edx, 0x121
jmp 0x1802530fe
mov r15, qword [rsp + 0x48]
test r15, r15
jne 0x1802534a0
mov esi, edi
jmp 0x1802534aa
mov rcx, rbx
call fcn.180238470
mov esi, eax
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x1802534be
mov rcx, rbx
call fcn.1802385d0
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 0x18025311d
mov r14, qword [rbx + 0xb0]
cmp qword [rbx], r14
jne 0x1802534f9
mov qword [rbx], rdi
test r14, r14
je 0x180253548
cmp dword [r14 + 0x14], edi
jne 0x180253548
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x180253548
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.1802332d0
mov rcx, qword [r14 + 0x70]
call fcn.18023f000
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.1802332d0
mov qword [rbx + 0xb0], rdi
test rsi, rsi
je 0x18025373d
mov rax, qword [rbx]
test rax, rax
je 0x18025366a
mov r12d, dword [rbx + 0x70]
cmp qword [rax + 0x70], rdi
je 0x1802535fe
mov rcx, qword [rbx + 0xa8]
test rcx, rcx
je 0x180253648
mov rdx, qword [rax + 0xb0]
mov r14, rdi
test rdx, rdx
je 0x18025359a
call rdx
mov r14, qword [rbx + 0xb0]
mov qword [rbx + 0xa8], rdi
test r14, r14
je 0x180253648
cmp dword [r14 + 0x14], edi
jne 0x180253648
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x180253648
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c7
call fcn.1802332d0
mov rcx, qword [r14 + 0x70]
call fcn.18023f000
mov r8d, 0x6ca
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.1802332d0
jmp 0x180253648
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x180253610
mov rcx, rbx
call rdx
test eax, eax
je 0x18025365f
mov rcx, qword [rbx + 0x78]
test rcx, rcx
je 0x180253629
mov rax, qword [rbx]
movsxd rdx, dword [rax + 0x30]
test edx, edx
je 0x180253629
call fcn.180001240
mov rcx, qword [rbx + 0x78]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x3f
call fcn.1802332d0
mov rcx, qword [rbx + 8]
call fcn.18023d710
mov r8d, 0xb8
xor edx, edx
mov rcx, rbx
call fcn.1804440f0
mov dword [rbx + 0x6c], 0xffffffff
mov eax, dword [rsp + 0x40]
mov dword [rbx + 0x10], eax
mov dword [rbx + 0x70], r12d
test r15, r15
je 0x180253691
mov rcx, r15
call fcn.18023d830
test eax, eax
jne 0x180253699
call fcn.18023d0b0
lea r8, str.evp_cipher_init_internal
mov edx, 0x141
jmp 0x1802530fe
mov r15, r13
test r13, r13
je 0x1802536c1
mov edx, dword [rsi]
mov rcx, r15
call fcn.180285450
mov rsi, rax
test rax, rax
jne 0x1802536c4
call fcn.18023d0b0
lea r8, str.evp_cipher_init_internal
mov edx, 0x151
jmp 0x1802530fe
mov r15, rdi
mov qword [rbx + 8], r15
mov qword [rbx], rsi
movsxd rax, dword [rsi + 0x30]
test eax, eax
je 0x1802536f9
mov rcx, rax
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x162
call fcn.180233560
mov qword [rbx + 0x78], rax
test rax, rax
jne 0x1802536fd
mov qword [rbx], rdi
jmp case.default.0x180253801
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 0x18025373d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1802506b0
test eax, eax
jg 0x18025373d
mov qword [rbx], rdi
call fcn.18023d0b0
lea r8, str.evp_cipher_init_internal
mov edx, 0x170
jmp 0x1802530fe
mov r14, qword [rsp + 0x48]
mov rax, qword [rbx]
test rax, rax
je case.default.0x180253801
mov ecx, dword [rax + 4]
cmp ecx, 0x10
ja 0x180253760
mov eax, 0x10102
bt eax, ecx
jb 0x180253779
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.1802335a0
test byte [rbx + 0x70], 1
jne 0x1802537bd
mov rcx, rbx
call fcn.180238440
mov rcx, rax
call fcn.180238a80
cmp eax, 0x10002
jne 0x1802537bd
call fcn.18023d0b0
lea r8, str.evp_cipher_init_internal
mov edx, 0x182
lea rcx, str.cryptoevpevp_enc.c
call fcn.18023d1d0
mov edx, 0xaa
jmp 0x18025310f
mov rcx, rbx
call fcn.180238440
mov rcx, rax
call fcn.180238a50
test al, 0x10
jne case.0x180253801.0
mov rcx, rbx
call fcn.180238440
mov rcx, rax
call fcn.180238a80
cmp eax, 5
ja case.default.0x180253801
lea rdx, [0x180000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x2538f8]
add rcx, rdx
jmp rcx
mov dword [rbx + 0x58], edi
mov rcx, rbx
call fcn.180238470
cmp eax, 0x10
ja 0x180253843
mov r15, qword [rsp + 0x48]
lea rsi, [rbx + 0x18]
movsxd r14, eax
test r15, r15
je 0x180253832
mov r8, r14
mov rdx, r15
mov rcx, rsi
call fcn.180443a50
lea rcx, [rbx + 0x28]
mov r8, r14
mov rdx, rsi
call fcn.180443a50
jmp 0x180253896
call fcn.18023d0b0
mov edx, 0x197
lea r8, str.evp_cipher_init_internal
lea rcx, str.cryptoevpevp_enc.c
call fcn.18023d1d0
mov edx, 0xc2
jmp 0x18025310f
mov dword [rbx + 0x58], edi
test r14, r14
je case.0x180253801.0
mov rcx, rbx
call fcn.180238470
lea ecx, [rax - 1]
cmp ecx, 0xf
ja 0x1802538e7
movsxd r8, eax
lea rcx, [rbx + 0x28]
mov rdx, r14
call fcn.180443a50
mov r15, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
test r14, r14
jne 0x1802538a9
mov rax, qword [rbx]
test byte [rax + 0x10], 0x20
je 0x1802538c6
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.0x180253801
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 0x18025311d
call fcn.18023d0b0
mov edx, 0x1a5
jmp 0x18025384d