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

Disassembly:
mov eax, 0xb4
call fcn.004403c0
mov eax, dword [0x470324]
xor eax, esp
mov dword [esp + 0xb0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0xc8]
xorps xmm0, xmm0
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xf0]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xcc]
mov ebx, dword [esp + 0xf8]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0x64], eax
xor ebp, ebp
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x110]
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0x38], esi
or esi, 0xffffffff
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x50], ebx
xor ebx, ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov edi, dword [esp + 0x10c]
mov dword [esp + 0x34], edi
movups xmmword [esp + 0x70], xmm0
test eax, eax
je 0x404331
push edx
push ecx
push eax
call fcn.00439790
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x404321
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_ERR_print_errors
add esp, 4
jmp 0x40443e
push esi
push edi
call sub.libcrypto_1_1.dll_X509_REQ_set_subject_name
push esi
call sub.libcrypto_1_1.dll_X509_NAME_free
add esp, 0xc
cmp dword [esp + 0x120], ebx
je 0x40434d
push str.The_Subjects_Distinguished_Name_is_as_follows_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 8
push edi
call sub.libcrypto_1_1.dll_X509_REQ_get_subject_name
mov edi, eax
xor ebx, ebx
push edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], ebx
call sub.libcrypto_1_1.dll_X509_NAME_entry_count
add esp, 8
test eax, eax
jle 0x40462e
push ebx
push edi
call sub.libcrypto_1_1.dll_X509_NAME_get_entry
mov esi, eax
push esi
call sub.libcrypto_1_1.dll_X509_NAME_ENTRY_get_data
push esi
mov ebx, eax
call sub.libcrypto_1_1.dll_X509_NAME_ENTRY_get_object
push eax
mov dword [esp + 0x40], eax
call sub.libcrypto_1_1.dll_OBJ_obj2nid
add esp, 0x14
mov esi, eax
cmp dword [0x470360], ebp
je 0x4043d9
mov eax, dword [ebx + 4]
cmp eax, 0x1c
jne 0x4043b2
push ebx
call sub.libcrypto_1_1.dll_ASN1_UNIVERSALSTRING_to_string
mov eax, dword [ebx + 4]
add esp, 4
cmp eax, 0x16
jne 0x4043c8
cmp esi, 0x30
je 0x4043de
mov dword [ebx + 4], 0x14
mov eax, 0x14
cmp esi, 0x30
jne 0x4043f5
cmp eax, 0x13
jne 0x4043d9
mov dword [ebx + 4], 0x16
cmp esi, 0x30
jne 0x4043f5
cmp dword [esp + 0xf4], ebp
je 0x404614
cmp dword [ebx + 4], 0x16
jne 0x404645
mov eax, dword [ebx + 4]
cmp eax, 0x1e
je 0x4044a7
cmp eax, 0xc
je 0x4044a7
push dword [ebx]
push dword [ebx + 8]
call sub.libcrypto_1_1.dll_ASN1_PRINTABLE_type
add esp, 8
cmp eax, 0x14
jne 0x40449c
cmp dword [ebx + 4], eax
je 0x4044a7
push str._nThe_string_contains_characters_that_are_illegal_for_the_ASN.1_type_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 8
xor ebx, ebx
xor esi, esi
push 0x75d
push str.appsca.c
push dword [esp + esi*4 + 0x78]
call sub.libcrypto_1_1.dll_CRYPTO_free
inc esi
add esp, 0xc
cmp esi, 6
jl 0x404440
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x28]
push 0x75f
push str.appsca.c
push eax
call sub.libcrypto_1_1.dll_CRYPTO_free
push ebp
call sub.libcrypto_1_1.dll_X509_NAME_free
push dword [esp + 0x28]
call sub.libcrypto_1_1.dll_X509_NAME_free
add esp, 0x14
test esi, esi
jg 0x4051c9
push ebx
call sub.libcrypto_1_1.dll_X509_free
add esp, 4
jmp 0x4051cf
cmp eax, 0x16
jne 0x4044a7
cmp dword [ebx + 4], 0x13
je 0x404429
cmp dword [esp + 0x120], ebp
je 0x404614
push dword [esp + 0x2c]
lea edi, [esp + 0x8c]
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_i2a_ASN1_OBJECT
mov esi, 0x16
add esp, 8
sub esi, eax
test esi, esi
jle 0x4044f6
mov ecx, esi
mov eax, 0x20202020
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea edi, [esp + 0x88]
add edi, esi
lea eax, [esp + 0x88]
mov word [edi], 0x3a
push eax
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_puts
mov eax, dword [ebx + 4]
add esp, 8
cmp eax, 0x13
jne 0x40452e
push str.PRINTABLE:
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 8
jmp 0x404590
cmp eax, 0x14
jne 0x404548
push str.T61STRING:
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 8
jmp 0x404590
cmp eax, 0x16
jne 0x404562
push str.IA5STRING:
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 8
jmp 0x404590
cmp eax, 0x1c
jne 0x40457c
push str.UNIVERSALSTRING:
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 8
jmp 0x404590
push eax
push str.ASN.1__2d:
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 0xc
mov esi, dword [ebx]
mov edi, dword [ebx + 8]
test esi, esi
jle 0x4045fd
nop dword [eax]
mov cl, byte [edi]
lea eax, [ecx - 0x20]
cmp al, 0x5e
ja 0x4045b4
movsx eax, cl
push eax
push 0x445c4c
jmp 0x4045e9
test cl, cl
jns 0x4045c3
movsx eax, cl
push eax
push 0x445c50
jmp 0x4045e9
cmp cl, 0xf7
jne 0x4045dd
push 0x445c58
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 8
jmp 0x4045f7
movsx eax, cl
add eax, 0x40
push eax
push 0x445c5c
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 0xc
dec esi
inc edi
test esi, esi
jg 0x4045a0
push 0x445c60
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov edi, dword [esp + 0x2c]
add esp, 8
mov ebx, dword [esp + 0x1c]
inc ebx
push edi
mov dword [esp + 0x20], ebx
call sub.libcrypto_1_1.dll_X509_NAME_entry_count
add esp, 4
cmp ebx, eax
jl 0x404370
call sub.libcrypto_1_1.dll_X509_NAME_new
mov dword [esp + 0x18], eax
test eax, eax
jne 0x40464f
push str.Memory_allocation_failure_n
jmp 0x40442e
push str._nemailAddress_type_needs_to_be_of_type_IA5STRING_n
jmp 0x40442e
cmp dword [esp + 0x128], ebp
je 0x40465c
mov eax, edi
jmp 0x404668
push dword [esp + 0x30]
call sub.libcrypto_1_1.dll_X509_get_subject_name
add esp, 4
push eax
call sub.libcrypto_1_1.dll_X509_NAME_dup
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
mov ebp, esi
test esi, esi
je 0x40443c
mov ebp, dword [esp + 0x48]
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x2c], eax
push ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x48], ebx
call sub.libcrypto_1_1.dll_OPENSSL_sk_num
add esp, 4
test eax, eax
jle 0x40487c
push ebx
push ebp
call sub.libcrypto_1_1.dll_OPENSSL_sk_value
mov edi, eax
mov dword [esp + 0x18], edi
push dword [edi + 4]
call sub.libcrypto_1_1.dll_OBJ_txt2nid
add esp, 0xc
test eax, eax
je 0x4049cb
push eax
call sub.libcrypto_1_1.dll_OBJ_nid2obj
add esp, 4
mov dword [esp + 0x40], eax
or ebp, 0xffffffff
push ebp
push eax
push dword [esp + 0x2c]
call sub.libcrypto_1_1.dll_X509_NAME_get_index_by_OBJ
mov ebx, eax
add esp, 0xc
test ebx, ebx
jns 0x4046f7
cmp ebp, 0xffffffff
jne 0x40485a
xor ebp, ebp
jmp 0x404706
push ebx
push dword [esp + 0x28]
call sub.libcrypto_1_1.dll_X509_NAME_get_entry
add esp, 8
mov ebp, eax
mov edi, dword [edi + 8]
mov edx, str.optional
mov dword [esp + 0x60], ebx
mov ecx, edi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x404734
test al, al
je 0x404730
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x404734
add ecx, 2
add edx, 2
test al, al
jne 0x404714
xor eax, eax
jmp 0x404739
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404744
mov esi, ebp
jmp 0x404825
mov ecx, str.supplied
mov eax, edi
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404770
test dl, dl
je 0x40476c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404770
add eax, 2
add ecx, 2
test dl, dl
jne 0x404750
xor eax, eax
jmp 0x404775
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404788
test ebp, ebp
je 0x404919
mov esi, ebp
jmp 0x404825
mov ecx, str.match
mov eax, edi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4047b0
test dl, dl
je 0x4047ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4047b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x404790
xor eax, eax
jmp 0x4047b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4049c0
test ebp, ebp
je 0x4049af
or edi, 0xffffffff
jmp 0x4047d4
mov esi, dword [esp + 0x14]
push edi
push dword [esp + 0x44]
push esi
call sub.libcrypto_1_1.dll_X509_NAME_get_index_by_OBJ
mov ebx, eax
add esp, 0xc
test ebx, ebx
js 0x404953
push ebx
push esi
call sub.libcrypto_1_1.dll_X509_NAME_get_entry
push ebp
mov esi, eax
call sub.libcrypto_1_1.dll_X509_NAME_ENTRY_get_data
push esi
mov dword [esp + 0x2c], eax
call sub.libcrypto_1_1.dll_X509_NAME_ENTRY_get_data
push eax
mov dword [esp + 0x40], eax
mov edi, ebx
mov eax, dword [esp + 0x30]
push eax
call sub.libcrypto_1_1.dll_ASN1_STRING_cmp
add esp, 0x18
test eax, eax
jne 0x4047d0
test ebx, ebx
js 0x404966
test esi, esi
je 0x404842
push 0
push 0xffffffffffffffff
push esi
push dword [esp + 0x24]
call sub.libcrypto_1_1.dll_X509_NAME_add_entry
add esp, 0x10
test eax, eax
je 0x40493a
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x10]
test ebx, ebx
jns 0x4046d6
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
inc ebx
push ebp
mov dword [esp + 0x48], ebx
call sub.libcrypto_1_1.dll_OPENSSL_sk_num
add esp, 4
cmp ebx, eax
jl 0x4046a6
mov edi, dword [esp + 0x24]
cmp dword [0x47035c], 0
je 0x4048a7
push dword [esp + 0x18]
call sub.libcrypto_1_1.dll_X509_NAME_free
push edi
call sub.libcrypto_1_1.dll_X509_NAME_dup
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
mov ebp, esi
test edi, edi
je 0x40443c
mov esi, dword [esp + 0x108]
test esi, esi
je 0x4048c5
push str.Everything_appears_to_be_ok__creating_and_signing_the_certificate_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 8
call sub.libcrypto_1_1.dll_X509_new
mov edi, dword [esp + 0x14]
mov ebx, eax
mov dword [esp + 0x10], ebx
mov ebp, edi
test ebx, ebx
je 0x40443e
push ebx
call sub.libcrypto_1_1.dll_X509_get_serialNumber
push eax
push dword [esp + 0x5c]
call sub.libcrypto_1_1.dll_BN_to_ASN1_INTEGER
add esp, 0xc
test eax, eax
je 0x40443e
cmp dword [esp + 0x128], 0
je 0x4049d8
push dword [esp + 0x18]
push ebx
call sub.libcrypto_1_1.dll_X509_set_issuer_name
add esp, 8
jmp 0x4049eb
mov eax, dword [esp + 0x10]
push dword [eax + 4]
push str.The__s_field_needed_to_be_supplied_and_was_missing_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 0xc
mov ebp, esi
jmp 0x40443c
push str.Memory_allocation_failure_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov ebp, dword [esp + 0x1c]
jmp 0x404439
cmp edi, 0xffffffff
jne 0x40496a
mov eax, dword [esp + 0x10]
push dword [eax + 4]
push str.The__s_field_does_not_exist_in_the_CA_certificate__nthe_policy_is_misconfigured_n
jmp 0x404925
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, str.NULL
test eax, eax
je 0x40497a
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x404989
mov eax, str.NULL
jmp 0x40498c
mov eax, dword [eax + 8]
push ecx
push eax
mov eax, dword [esp + 0x18]
push dword [eax + 4]
push str.The__s_field_is_different_between_nCA_certificate___s__and_the_request___s__n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 0x14
mov ebp, esi
jmp 0x40443c
mov eax, dword [esp + 0x10]
push dword [eax + 4]
push str.The_mandatory__s_field_was_missing_n
jmp 0x404925
push edi
push str._s:invalid_type_in_policy_configuration_n
jmp 0x404925
push dword [edi + 4]
push str._s:unknown_object_type_in_policy_configuration_n
jmp 0x404925
push dword [esp + 0x30]
call sub.libcrypto_1_1.dll_X509_get_subject_name
push eax
push ebx
call sub.libcrypto_1_1.dll_X509_set_issuer_name
add esp, 0xc
test eax, eax
je 0x40443e
mov ebx, dword [esp + 0x100]
mov ebp, edi
push ebx
push dword [esp + 0x50]
push dword [esp + 0x44]
push dword [esp + 0x1c]
call fcn.0043a7b0
add esp, 0x10
test eax, eax
je 0x404b32
cmp dword [esp + 0x4c], 0
je 0x404a48
mov ebx, dword [esp + 0x10]
push ebx
call sub.libcrypto_1_1.dll_X509_get0_notAfter
push eax
push 0
lea eax, [esp + 0x48]
push 0
push eax
call sub.libcrypto_1_1.dll_ASN1_TIME_diff
add esp, 0x14
test eax, eax
je 0x40443e
mov ebx, dword [esp + 0x3c]
push dword [esp + 0x18]
mov ebp, edi
push dword [esp + 0x14]
call sub.libcrypto_1_1.dll_X509_set_subject_name
add esp, 8
test eax, eax
je 0x404b32
push dword [esp + 0x34]
call sub.libcrypto_1_1.dll_X509_REQ_get0_pubkey
push eax
push dword [esp + 0x18]
call sub.libcrypto_1_1.dll_X509_set_pubkey
add esp, 0xc
test eax, eax
je 0x404b32
cmp dword [esp + 0x20], 0
mov ebp, dword [esp + 0x10]
je 0x404b8b
cmp dword [esp + 0x128], 0
mov eax, dword [esp + 0x30]
push 0
push 0
push dword [esp + 0x3c]
cmovne eax, ebp
push ebp
push eax
lea eax, [esp + 0x9c]
push eax
call sub.libcrypto_1_1.dll_X509V3_set_ctx
mov eax, dword [0x470358]
add esp, 0x18
test eax, eax
je 0x404b46
test esi, esi
je 0x404ae1
push str.Extra_configuration_file_found_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov eax, dword [0x470358]
add esp, 8
push eax
lea eax, [esp + 0x8c]
push eax
call sub.libcrypto_1_1.dll_X509V3_set_nconf
push ebp
push dword [esp + 0x2c]
lea eax, [esp + 0x98]
push eax
push dword [0x470358]
call sub.libcrypto_1_1.dll_X509V3_EXT_add_nconf
add esp, 0x18
test eax, eax
jne 0x404b3b
push dword [esp + 0x20]
push str.ERROR:_adding_extensions_in_section__s_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_ERR_print_errors
add esp, 0x10
mov ebp, edi
mov ebx, dword [esp + 0x10]
jmp 0x40443e
test esi, esi
je 0x404b8b
push str.Successfully_added_extensions_from_file._n
jmp 0x404b7d
push dword [esp + 0x50]
lea eax, [esp + 0x8c]
push eax
call sub.libcrypto_1_1.dll_X509V3_set_nconf
push ebp
push dword [esp + 0x2c]
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x64]
call sub.libcrypto_1_1.dll_X509V3_EXT_add_nconf
add esp, 0x18
test eax, eax
je 0x404b0e
test esi, esi
je 0x404b8b
push str.Successfully_added_extensions_from_config_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 8
push dword [esp + 0x124]
push dword [esp + 0x38]
push ebp
call fcn.00437aa0
add esp, 0xc
test eax, eax
jne 0x404bcc
push str.ERROR:_adding_extensions_from_request_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_ERR_print_errors
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov ebp, edi
jmp 0x40443e
push ebp
call sub.libcrypto_1_1.dll_X509_get0_extensions
add esp, 4
test eax, eax
je 0x404c02
push eax
call sub.libcrypto_1_1.dll_OPENSSL_sk_num
add esp, 4
test eax, eax
jle 0x404c02
push 2
push dword [esp + 0x14]
mov ebp, edi
call sub.libcrypto_1_1.dll_X509_set_version
add esp, 8
test eax, eax
je 0x404b32
mov ebp, dword [esp + 0x10]
test esi, esi
je 0x404c19
push str.The_subject_name_appears_to_be_ok__checking_data_base_for_clashes_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 8
cmp dword [esp + 0xf4], 0
jne 0x404cb9
push dword [esp + 0x18]
call sub.libcrypto_1_1.dll_X509_NAME_dup
mov edi, eax
add esp, 4
test edi, edi
jne 0x404c59
push str.Memory_allocation_failure_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov ebp, dword [esp + 0x1c]
add esp, 8
mov ebx, dword [esp + 0x10]
jmp 0x40443e
push 0xffffffffffffffff
push 0x30
push edi
call sub.libcrypto_1_1.dll_X509_NAME_get_index_by_NID
mov esi, eax
add esp, 0xc
test esi, esi
js 0x404c92
nop dword [eax]
push esi
push edi
call sub.libcrypto_1_1.dll_X509_NAME_delete_entry
push eax
call sub.libcrypto_1_1.dll_X509_NAME_ENTRY_free
lea eax, [esi - 1]
push eax
push 0x30
push edi
call sub.libcrypto_1_1.dll_X509_NAME_get_index_by_NID
mov esi, eax
add esp, 0x18
test esi, esi
jns 0x404c70
push edi
push ebp
call sub.libcrypto_1_1.dll_X509_set_subject_name
push edi
mov esi, eax
call sub.libcrypto_1_1.dll_X509_NAME_free
add esp, 0xc
test esi, esi
jne 0x404cb5
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
jmp 0x40443e
mov edi, dword [esp + 0x14]
push 0
push 0
push ebp
call sub.libcrypto_1_1.dll_X509_get_subject_name
add esp, 4
push eax
call sub.libcrypto_1_1.dll_X509_NAME_oneline
add esp, 0xc
mov dword [esp + 0x84], eax
test eax, eax
jne 0x404cf8
push str.Memory_allocation_failure_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov ebx, dword [esp + 0x18]
add esp, 8
mov ebp, edi
jmp 0x40443e
mov esi, dword [esp + 0x54]
push esi
call sub.libcrypto_1_1.dll_BN_is_zero
add esp, 4
test eax, eax
je 0x404d22
push 0x6c7
push str.appsca.c
push 0x445624
call sub.libcrypto_1_1.dll_CRYPTO_strdup
add esp, 0xc
jmp 0x404d2b
push esi
call sub.libcrypto_1_1.dll_BN_bn2hex
add esp, 4
mov dword [esp + 0x7c], eax
test eax, eax
je 0x404cda
mov eax, dword [esp + 0x84]
cmp byte [eax], 0
jne 0x404d77
push 0x6d5
push str.appsca.c
push eax
call sub.libcrypto_1_1.dll_CRYPTO_free
push 0x6d6
push str.appsca.c
push dword [esp + 0x90]
call sub.libcrypto_1_1.dll_CRYPTO_strdup
add esp, 0x18
mov dword [esp + 0x84], eax
test eax, eax
je 0x404cda
mov eax, dword [esp + 0x38]
cmp dword [eax], 0
je 0x404db8
lea ecx, [esp + 0x70]
push ecx
push 5
push dword [eax + 4]
call sub.libcrypto_1_1.dll_TXT_DB_get_by_index
mov esi, eax
add esp, 0xc
test esi, esi
je 0x404db4
push dword [esp + 0x84]
push str.ERROR:There_is_already_a_certificate_for__s_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 0xc
jmp 0x404dfb
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x70]
push ecx
push 3
push dword [eax + 4]
call sub.libcrypto_1_1.dll_TXT_DB_get_by_index
mov esi, eax
add esp, 0xc
test esi, esi
je 0x404efa
push dword [esp + 0x7c]
push str.ERROR:Serial_number__s_has_already_been_issued__n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
push str.______check_the_database_serial_file_for_corruption_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 0x14
push str.The_matching_entry_has_the_following_details_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov eax, dword [esi]
add esp, 8
mov cl, byte [eax]
cmp cl, 0x45
jne 0x404e1e
mov eax, str.Expired
jmp 0x404e3a
cmp cl, 0x52
jne 0x404e2a
mov eax, str.Revoked
jmp 0x404e3a
cmp cl, 0x56
mov eax, str.Valid
mov edx, str._ninvalid_type__Data_base_error_n
cmovne eax, edx
push eax
push str.Type__________:_s_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov eax, dword [esi]
add esp, 0xc
mov edi, str.undef
cmp byte [eax], 0x52
jne 0x404e78
mov eax, dword [esi + 4]
mov ecx, edi
test eax, eax
cmovne ecx, eax
push ecx
push str.Was_revoked_on:_s_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 0xc
mov eax, dword [esi + 4]
mov ecx, edi
test eax, eax
cmovne ecx, eax
push ecx
push str.Expires_on____:_s_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov eax, dword [esi + 0xc]
mov ecx, edi
test eax, eax
cmovne ecx, eax
push ecx
push str.Serial_Number_:_s_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov eax, dword [esi + 0x10]
mov ecx, edi
test eax, eax
cmovne ecx, eax
push ecx
push str.File_name_____:_s_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov eax, dword [esi + 0x14]
test eax, eax
cmovne edi, eax
push edi
push str.Subject_Name__:_s_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov ebp, dword [esp + 0x44]
add esp, 0x30
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x28], 0xffffffff
jmp 0x40443e
cmp dword [esp + 0x120], 0
jne 0x404f37
push str.Certificate_Details:_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov eax, dword [esp + 0x120]
or eax, 0x208
push eax
push dword [esp + 0x128]
push ebp
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_X509_print_ex
add esp, 0x18
push str.Certificate_is_to_be_certified_until
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
push ebp
call sub.libcrypto_1_1.dll_X509_get0_notAfter
push eax
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_ASN1_TIME_print
add esp, 0x14
test ebx, ebx
je 0x404f74
push ebx
push str.___ld_days_
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 0xc
push 0x444f18
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 8
cmp dword [esp + 0x104], 0
jne 0x405018
push str.Sign_the_certificate___y_n_:
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
push 0
push 0
push 0xb
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_ctrl
push 0
mov byte [esp + 0xc0], 0
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
push eax
lea eax, [esp + 0xc4]
push 0x19
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgets]
add esp, 0x28
test eax, eax
jne 0x405002
push str.CERTIFICATE_WILL_NOT_BE_CERTIFIED:_I_O_error_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov ebx, dword [esp + 0x18]
add esp, 8
xor esi, esi
mov ebp, edi
mov dword [esp + 0x28], esi
jmp 0x40443e
mov al, byte [esp + 0xa4]
cmp al, 0x79
je 0x405018
cmp al, 0x59
je 0x405018
push str.CERTIFICATE_WILL_NOT_BE_CERTIFIED_n
jmp 0x404fe3
mov ebx, dword [esp + 0x10]
push ebx
call sub.libcrypto_1_1.dll_X509_get0_pubkey
mov esi, eax
push esi
call sub.libcrypto_1_1.dll_EVP_PKEY_missing_parameters
add esp, 8
test eax, eax
je 0x40504c
mov ebp, dword [esp + 0x58]
push ebp
call sub.libcrypto_1_1.dll_EVP_PKEY_missing_parameters
add esp, 4
test eax, eax
jne 0x40504c
push ebp
push esi
call sub.libcrypto_1_1.dll_EVP_PKEY_copy_parameters
add esp, 8
push dword [esp + 0x64]
mov ebp, edi
push dword [esp + 0x6c]
push dword [esp + 0x60]
push ebx
call fcn.00417e10
add esp, 0x10
test eax, eax
je 0x40443e
push 0x741
push str.appsca.c
push 0x44586c
call sub.libcrypto_1_1.dll_CRYPTO_strdup
push ebx
mov dword [esp + 0x80], eax
call sub.libcrypto_1_1.dll_X509_get0_notAfter
mov esi, eax
push str.row_expdate
mov ecx, dword [esi]
inc ecx
push ecx
call fcn.00437320
mov dword [esp + 0x8c], eax
push dword [esi]
push dword [esi + 8]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esi]
mov eax, dword [esp + 0x98]
push 0x747
push str.appsca.c
push str.unknown
mov byte [eax + ecx], 0
mov dword [esp + 0xa8], 0
call sub.libcrypto_1_1.dll_CRYPTO_strdup
add esp, 0x30
mov dword [esp + 0x80], eax
cmp dword [esp + 0x70], 0
je 0x4051af
cmp dword [esp + 0x74], 0
je 0x4051af
test eax, eax
je 0x4051af
cmp dword [esp + 0x84], 0
je 0x4051af
push str.row_space
push 0x1c
call fcn.00437320
mov ecx, dword [esp + 0x78]
mov edx, eax
mov esi, dword [esp + 0x40]
push edx
mov dword [esp + 0x68], edx
mov dword [edx], ecx
mov ecx, dword [esp + 0x80]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x84]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x88]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x8c]
mov dword [edx + 0x10], ecx
mov eax, dword [esp + 0x90]
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], 0
push dword [esi + 4]
call sub.libcrypto_1_1.dll_TXT_DB_insert
add esp, 0x10
test eax, eax
jne 0x4051a3
push str.failed_to_update_database_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
mov eax, dword [esi + 4]
push dword [eax + 0x10]
push str.TXT_DB_error_number__ld_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 0x14
jmp 0x40443e
xor eax, eax
mov ebp, edi
lea esi, [eax + 1]
jmp 0x404464
push str.Memory_allocation_failure_n
push dword [0x4703fc]
call sub.libcrypto_1_1.dll_BIO_printf
add esp, 8
mov ebp, edi
jmp 0x40443e
mov eax, dword [esp + 0x6c]
mov dword [eax], ebx
mov ecx, dword [esp + 0xc0]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004403ed
add esp, 0xb4
ret