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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x238
lea rax, [rsp + 0x80]
mov r12, rdx
mov ebp, r8d
mov r13, r9
mov qword [rsp + 0x20], rax
lea r9, [sym.asn1_cb]
mov r8d, 1
mov edx, 0x2c
mov qword [rsp + 0x48], 0
mov dword [rsp + 0x3c], 0
mov qword [rsp + 0x80], 0xffffffffffffffff
mov dword [rsp + 0x8c], 1
mov dword [rsp + 0x228], 0
call sym.CONF_parse_list
mov esi, eax
test eax, eax
jne 0x656e00
mov ebx, dword [rsp + 0x88]
lea eax, [rbx - 0x10]
cmp eax, 1
ja 0x656830
test r12, r12
je 0x656f50
cmp ebp, 0x31
jg 0x656e10
mov qword [rsp + 0x60], 0
mov r14, qword [rsp + 0x90]
call sym.OPENSSL_sk_new_null
mov r15, rax
test rax, rax
je 0x656f60
test r14, r14
je 0x656797
mov rdx, r14
mov rcx, r12
call sym.X509V3_get_section
mov r14, rax
test rax, rax
je 0x656f60
xor edi, edi
add ebp, 1
jmp 0x65678b
mov edx, edi
mov rcx, r14
call sym.OPENSSL_sk_value
mov rdx, r12
mov r9, r13
mov r8d, ebp
mov rcx, qword [rax + 0x10]
call sym.generate_v3
mov rdx, rax
test rax, rax
je 0x656f63
mov rcx, r15
call sym.OPENSSL_sk_push
test eax, eax
je 0x656f63
add edi, 1
mov rcx, r14
call sym.OPENSSL_sk_num
cmp edi, eax
jl 0x656750
lea rdx, [rsp + 0x60]
mov rcx, r15
cmp ebx, 0x11
je 0x656f40
call sym.i2d_ASN1_SEQUENCE_ANY
mov edi, eax
test edi, edi
js 0x656f63
call sym.ASN1_TYPE_new
mov r13, rax
test rax, rax
je 0x656f63
mov ecx, ebx
call sym.ASN1_STRING_type_new
mov qword [r13 + 8], rax
test rax, rax
je 0x656f9c
mov rdx, qword [rsp + 0x60]
mov dword [r13], ebx
xor ecx, ecx
mov dword [rax], edi
mov qword [rax + 8], rdx
mov qword [rsp + 0x60], 0
mov r8d, 0x1ca
lea rdx, str.crypto_asn1_asn1_gen.c
call sym.CRYPTO_free
mov rcx, r15
lea rdx, [sym.ASN1_TYPE_free]
call sym.OPENSSL_sk_pop_free
mov rdx, r14
mov rcx, r12
call sym.X509V3_section_free
jmp 0x656b9d
mov edi, dword [rsp + 0x8c]
mov r12, qword [rsp + 0x90]
call sym.ASN1_TYPE_new
mov r13, rax
test rax, rax
je 0x656fa6
test r12, r12
je 0x656870
cmp ebx, 0x1e
ja case.0x65686e.0
lea rcx, [0x008ff180]
mov edx, ebx
movsxd rax, dword [rcx + rdx*4]
add rax, rcx
jmp rax
cmp ebx, 0x1e
ja case.0x656889.0
lea rcx, [0x008ff1fc]
mov edx, ebx
movsxd rax, dword [rcx + rdx*4]
add rax, rcx
jmp rax
lea r12, [0x008ff160]
cmp edi, 1
jne 0x656edc
call sym.ASN1_STRING_new
mov qword [r13 + 8], rax
mov rcx, rax
test rax, rax
je 0x657044
mov r8d, 0xffffffff
mov rdx, r12
call sym.ASN1_STRING_set
test eax, eax
je 0x657037
mov rcx, qword [r13 + 8]
mov dword [rcx + 4], ebx
call sym.ASN1_TIME_check
test eax, eax
jne case.0x656889.5
mov r8d, 0xb8
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x291
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b24
lea r12, [0x008ff160]
cmp edi, 1
je 0x656f05
mov ebp, 0x1000
cmp edi, 2
jne 0x656fe5
mov ecx, ebx
call sym.ASN1_tag2bit
lea rcx, [r13 + 8]
mov r9d, ebp
mov rdx, r12
mov dword [rsp + 0x20], eax
mov r8d, 0xffffffff
call sym.ASN1_mbstring_copy
test eax, eax
jg case.0x656889.5
mov dword [rsp + 0x20], 0x2ab
mov r8d, 0x41
mov edx, 0xb3
mov ecx, 0xd
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b24
lea r12, [0x008ff160]
cmp edi, 1
jne 0x656e61
xor edx, edx
mov rcx, r12
call sym.OBJ_txt2obj
mov qword [r13 + 8], rax
test rax, rax
jne case.0x656889.5
mov r8d, 0xb7
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x27c
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b24
lea r12, [0x008ff160]
call sym.ASN1_STRING_new
mov qword [r13 + 8], rax
test rax, rax
je 0x656f0f
cmp edi, 3
je 0x656b5a
cmp edi, 1
je 0x656fcf
cmp edi, 4
jne 0x65700e
cmp ebx, 3
jne 0x65700e
mov qword [rsp + 0x20], rax
lea r9, [sym.bitstr_cb]
mov edx, 0x2c
mov rcx, r12
mov r8d, 1
call sym.CONF_parse_list
test eax, eax
jne case.0x656889.5
mov r8d, 0xbc
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x2c6
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b24
lea r12, [0x008ff160]
cmp edi, 1
jne 0x656eb3
mov rdx, r12
xor ecx, ecx
call sym.s2i_ASN1_INTEGER
mov qword [r13 + 8], rax
test rax, rax
jne case.0x656889.5
mov r8d, 0xb4
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x271
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b24
lea r12, [0x008ff160]
cmp edi, 1
jne 0x656e8a
pxor xmm0, xmm0
lea rdx, [r13 + 8]
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x70], r12
movups xmmword [rsp + 0x60], xmm0
call sym.X509V3_get_value_bool
test eax, eax
jne case.0x656889.5
mov r8d, 0xb0
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x264
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b24
lea r12, [0x008ff160]
mov r8d, 0xc4
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x2d9
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
mov r8, r12
lea rdx, str.string
mov ecx, 2
call sym.ERR_add_error_data
mov rcx, r13
xor r13d, r13d
call sym.ASN1_TYPE_free
mov rax, r13
add rsp, 0x238
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdi, [rsp + 0x58]
mov rcx, r12
mov rdx, rdi
call sym.OPENSSL_hexstr2buf
test rax, rax
je 0x657051
mov rdx, qword [r13 + 8]
mov qword [rdx + 8], rax
mov eax, dword [rsp + 0x58]
mov dword [rdx + 4], ebx
mov dword [rdx], eax
cmp ebx, 3
jne case.0x656889.5
mov rdx, qword [r13 + 8]
mov eax, dword [rdx + 0x10]
and eax, 0xfffffff0
or eax, 8
mov dword [rdx + 0x10], eax
mov dword [r13], ebx
cmp dword [rsp + 0x80], 0xffffffff
jne 0x656bb2
mov ecx, dword [rsp + 0x228]
test ecx, ecx
je 0x656b43
lea rdx, [rsp + 0x48]
mov rcx, r13
call sym.i2d_ASN1_TYPE
mov rcx, r13
mov ebp, eax
call sym.ASN1_TYPE_free
mov rax, qword [rsp + 0x48]
cmp dword [rsp + 0x80], 0xffffffff
mov qword [rsp + 0x50], rax
je 0x656c50
mov dword [rsp + 0x20], ebp
lea rdx, [rsp + 0x3c]
lea rcx, [rsp + 0x50]
lea r9, [rsp + 0x44]
lea r8, [rsp + 0x40]
call sym.ASN1_get_object
mov edx, eax
mov r13d, eax
and edx, 0x80
jne 0x656df8
mov rax, qword [rsp + 0x50]
mov r14d, ebp
sub rax, qword [rsp + 0x48]
sub r14d, eax
test r13b, 1
je 0x656e20
mov dword [rsp + 0x3c], 0
mov r13d, 2
mov r8d, dword [rsp + 0x80]
xor ecx, ecx
call sym.ASN1_object_size
mov ebp, eax
jmp 0x656c56
xor r13d, r13d
mov r14d, ebp
movsxd rdx, dword [rsp + 0x228]
mov rax, rdx
lea rdx, [rdx + rdx*4]
lea rbx, [rsp + rdx*4 + 0x84]
test eax, eax
jle 0x656c9c
xor edi, edi
nop dword [rax + rax]
mov edx, dword [rbx + 0xc]
mov r8d, dword [rbx]
xor ecx, ecx
add edi, 1
sub rbx, 0x14
add edx, ebp
mov dword [rbx + 0x24], edx
call sym.ASN1_object_size
mov ebp, eax
cmp dword [rsp + 0x228], edi
jg 0x656c78
movsxd rcx, ebp
mov r8d, 0xc3
lea rdx, str.crypto_asn1_asn1_gen.c
call sym.CRYPTO_malloc
mov r15, rax
test rax, rax
je 0x656df8
mov edx, dword [rsp + 0x228]
mov qword [rsp + 0x58], rax
lea rdi, [rsp + 0x58]
lea r12, [rsp + 0x98]
test edx, edx
jle 0x656d2d
nop word [rax + rax]
mov eax, dword [r12 + 4]
mov edx, dword [r12 + 8]
mov rcx, rdi
mov dword [rsp + 0x20], eax
mov r9d, dword [r12]
mov r8d, dword [r12 + 0x10]
call sym.ASN1_put_object
mov eax, dword [r12 + 0xc]
test eax, eax
je 0x656dc0
mov rax, qword [rsp + 0x58]
add esi, 1
add r12, 0x14
lea rdx, [rax + 1]
mov qword [rsp + 0x58], rdx
mov byte [rax], 0
cmp esi, dword [rsp + 0x228]
jl 0x656ce0
mov r9d, dword [rsp + 0x80]
cmp r9d, 0xffffffff
je 0x656d60
mov eax, dword [rsp + 0x84]
test eax, eax
je 0x656de0
mov dword [rsp + 0x20], eax
mov r8d, dword [rsp + 0x3c]
lea rcx, [rsp + 0x58]
mov edx, r13d
call sym.ASN1_put_object
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
movsxd r8, r14d
call sym.memcpy
lea rdx, [rsp + 0x60]
mov r8d, ebp
xor ecx, ecx
mov qword [rsp + 0x60], r15
call sym.d2i_ASN1_TYPE
mov r13, rax
mov rcx, qword [rsp + 0x48]
mov r8d, 0xe9
lea rdx, str.crypto_asn1_asn1_gen.c
call sym.CRYPTO_free
mov r8d, 0xea
lea rdx, str.crypto_asn1_asn1_gen.c
mov rcx, r15
call sym.CRYPTO_free
jmp 0x656b43
add esi, 1
add r12, 0x14
cmp dword [rsp + 0x228], esi
jg 0x656ce0
jmp 0x656d2d
lea edx, [r9 - 0x10]
cmp edx, 1
mov edx, 0x20
cmovbe r13d, edx
jmp 0x656d4a
xor r15d, r15d
xor r13d, r13d
jmp 0x656d89
mov dword [r13], 0xc2
xor r13d, r13d
jmp 0x656b43
mov dword [r13], 0xb5
xor r13d, r13d
jmp 0x656b43
mov edx, dword [rsp + 0x3c]
and r13d, 0x20
jmp 0x656c33
cmp byte [r12], 0
je case.0x656889.5
mov r8d, 0xb6
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x256
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b38
mov r8d, 0xbf
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x278
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b38
mov r8d, 0xbe
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x25d
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b38
mov r8d, 0xb9
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x26c
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b38
mov r8d, 0xc1
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x284
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b38
mov ebp, 0x1001
jmp 0x656921
mov r8d, 0x41
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x2b4
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b38
call sym.i2d_ASN1_SET_ANY
mov edi, eax
jmp 0x6567af
mov dword [r13], 0xc0
xor r13d, r13d
jmp 0x656b43
xor r14d, r14d
mov rcx, qword [rsp + 0x60]
mov r8d, 0x1ca
lea rdx, str.crypto_asn1_asn1_gen.c
xor r13d, r13d
call sym.CRYPTO_free
lea rdx, [sym.ASN1_TYPE_free]
mov rcx, r15
call sym.OPENSSL_sk_pop_free
mov rdx, r14
mov rcx, r12
call sym.X509V3_section_free
jmp 0x656b43
mov rcx, qword [rsp + 0x60]
jmp 0x6567f6
mov r8d, 0x41
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x24b
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b43
mov r8d, 0xffffffff
mov rdx, r12
mov rcx, rax
call sym.ASN1_STRING_set
jmp 0x656b84
mov r8d, 0xb1
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x2a5
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b38
mov r8d, 0xaf
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x2cc
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b38
mov dword [rsp + 0x20], 0x28c
jmp 0x656951
mov dword [rsp + 0x20], 0x288
jmp 0x656951
mov r8d, 0xb2
mov edx, 0xb3
mov ecx, 0xd
mov dword [rsp + 0x20], 0x2ba
lea r9, str.crypto_asn1_asn1_gen.c
call sym.ERR_put_error
jmp 0x656b24