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

Disassembly:
push 0xffffffffffffffff
push 0x6570ae
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3dc
push ebx
push ebp
push esi
mov esi, dword [esp + 0x400]
push edi
mov edi, ecx
push str.processCertificateRequest
push esi
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], edi
call fcn.004f0370
mov ebx, dword [esp + 0x3fc]
mov dword [esp + 0x3f4], 0
test ebx, ebx
je 0x5e3e65
mov ebp, dword [esp + 0x400]
cmp ebp, 3
jb 0x5e3e65
lea ecx, [esp + 0xf8]
call fcn.004e57f0
add edi, 0xb8
lea ecx, [esp + 0xf8]
push edi
mov byte [esp + 0x3f8], 1
call fcn.004e8a40
push str..certificateRequest
lea ecx, [esp + 0xfc]
call fcn.004e5040
lea ecx, [esp + 0x38]
call fcn.004dfe70
lea ecx, [esp + 0x178]
mov byte [esp + 0x3f4], 2
call fcn.004e57f0
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x3f4], 3
call fcn.004e57f0
lea ecx, [esp + 0x2d4]
mov byte [esp + 0x3f4], 4
call fcn.004d91b0
lea ecx, [esp + 0x18]
mov byte [esp + 0x3f4], 5
call fcn.005a5810
lea ecx, [esp + 0x84]
mov byte [esp + 0x3f4], 6
call fcn.004e57f0
mov byte [esp + 0x3f4], 7
call fcn.005e2300
mov edi, eax
test edi, edi
jne 0x5e3639
lea ecx, [esp + 0x84]
mov byte [esp + 0x3f4], 6
call fcn.004e58d0
lea ecx, [esp + 0x18]
mov byte [esp + 0x3f4], 5
call fcn.005a5830
lea ecx, [esp + 0x2d4]
mov byte [esp + 0x3f4], 4
call fcn.004d9240
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x3f4], 3
call fcn.004e58d0
lea ecx, [esp + 0x178]
mov byte [esp + 0x3f4], 2
call fcn.004e58d0
lea ecx, [esp + 0x38]
mov byte [esp + 0x3f4], 1
call fcn.004e0890
lea ecx, [esp + 0xf8]
mov byte [esp + 0x3f4], 0
call fcn.004e58d0
jmp 0x5e3e71
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 4
jne 0x5e36e5
cmp dword [eax + 0x40], 3
jne 0x5e36e5
xor eax, eax
mov al, byte [ebx]
inc ebx
dec ebp
mov dword [esp + 0x30], eax
cmp ebp, eax
jae 0x5e3682
push 0x6f
push str.tooShortLoc
mov ecx, esi
call fcn.004effe0
mov eax, dword [esi]
push str.CertificateRequest_message_too_short
mov ecx, esi
call dword [eax + 0x14]
push esi
push edi
push 0
jmp 0x5e3d7d
test eax, eax
mov byte [edi + 0x2c], al
jbe 0x5e369f
push eax
lea ecx, [edi + 0x2d]
push ebx
push ecx
call fcn.004f1950
mov eax, dword [esp + 0x3c]
add esp, 0xc
add ebx, eax
sub ebp, eax
xor eax, eax
sub ebp, 2
mov ah, byte [ebx]
mov al, byte [ebx + 1]
add ebx, 2
cmp ebp, eax
jae 0x5e36d3
push 0x70
push str.tooShortLoc
mov ecx, esi
call fcn.004effe0
mov edx, dword [esi]
push str.CertificateRequest_message_too_short
mov ecx, esi
call dword [edx + 0x14]
push esi
push edi
push 0
jmp 0x5e3d7d
push eax
push ebx
lea ecx, [edi + 0x130]
call fcn.004e1260
jmp 0x5e3d79
mov cl, byte [esi + 0x122]
xor eax, eax
mov al, byte [ebx]
test cl, cl
mov dword [esp + 0x20], eax
je 0x5e3708
push eax
push str.NumCertificateTypes
mov ecx, esi
call fcn.004effe0
mov eax, dword [esp + 0x20]
inc ebx
dec ebp
test eax, eax
mov dword [esp + 0x400], ebp
mov dword [esp + 0x14], 0
jbe 0x5e3922
xor eax, eax
push str.allowedCertTypes_
mov al, byte [ebx]
lea ecx, [esp + 0x88]
mov ebp, eax
call fcn.004e8b00
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x88]
call fcn.004e49b0
push 0x5d
lea ecx, [esp + 0x88]
call fcn.004e3f90
cmp ebp, 1
jne 0x5e3782
push str.RSA_Sign
lea ecx, [esp + 0x88]
call fcn.004dda00
lea edx, [esp + 0xfc]
push eax
push edx
mov ecx, esi
call fcn.004ef080
jmp 0x5e3842
cmp ebp, 2
jne 0x5e37ad
push str.DSS_Sign
lea ecx, [esp + 0x88]
call fcn.004dda00
push eax
lea eax, [esp + 0x100]
push eax
mov ecx, esi
call fcn.004ef080
jmp 0x5e3842
cmp ebp, 3
jne 0x5e37d5
push str.RSA_Fixed_DH
lea ecx, [esp + 0x88]
call fcn.004dda00
lea ecx, [esp + 0xfc]
push eax
push ecx
mov ecx, esi
call fcn.004ef080
jmp 0x5e3842
cmp ebp, 4
jne 0x5e37fd
push str.DSS_Fixed_DH
lea ecx, [esp + 0x88]
call fcn.004dda00
lea edx, [esp + 0xfc]
push eax
push edx
mov ecx, esi
call fcn.004ef080
jmp 0x5e3842
cmp ebp, 0x40
jne 0x5e3825
push str.ECDSA_Sign
lea ecx, [esp + 0x88]
call fcn.004dda00
push eax
lea eax, [esp + 0x100]
push eax
mov ecx, esi
call fcn.004ef080
jmp 0x5e3842
push ebp
lea ecx, [esp + 0x88]
call fcn.004dda00
lea ecx, [esp + 0xfc]
push eax
push ecx
mov ecx, esi
call fcn.004ef150
mov al, byte [esi + 0x122]
test al, al
je 0x5e38d5
cmp ebp, 1
jne 0x5e3868
mov edx, dword [esi]
push str.RSA_Sign
push str.certType
mov ecx, esi
call dword [edx + 0x2c]
jmp 0x5e38d5
cmp ebp, 2
jne 0x5e3880
mov eax, dword [esi]
push str.DSS_Sign
push str.certType
mov ecx, esi
call dword [eax + 0x2c]
jmp 0x5e38d5
cmp ebp, 3
jne 0x5e3898
mov edx, dword [esi]
push str.RSA_Fixed_DH
push str.certType
mov ecx, esi
call dword [edx + 0x2c]
jmp 0x5e38d5
cmp ebp, 4
jne 0x5e38b0
mov eax, dword [esi]
push str.DSS_Fixed_DH
push str.certType
mov ecx, esi
call dword [eax + 0x2c]
jmp 0x5e38d5
cmp ebp, 0x40
jne 0x5e38c8
mov edx, dword [esi]
push str.ECDSA_Sign
push str.certType
mov ecx, esi
call dword [edx + 0x2c]
jmp 0x5e38d5
push ebp
push str.certType
mov ecx, esi
call fcn.004effe0
mov eax, dword [edi + 0x14c]
cmp eax, 4
jge 0x5e38f4
mov dword [edi + eax*4 + 0x150], ebp
mov eax, dword [edi + 0x14c]
inc eax
mov dword [edi + 0x14c], eax
mov eax, dword [esp + 0x400]
inc ebx
dec eax
mov dword [esp + 0x400], eax
je 0x5e392e
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x5e3721
mov ebp, dword [esp + 0x400]
cmp ebp, 2
jae 0x5e3935
push 0x16
jmp 0x5e3e28
push 1
jmp 0x5e3661
mov eax, dword [esp + 0x10]
mov ecx, 3
cmp dword [eax + 0x44], ecx
jne 0x5e3b9a
cmp dword [eax + 0x40], ecx
jne 0x5e3b9a
xor eax, eax
sub ebp, 2
mov ah, byte [ebx]
mov dword [esp + 0x400], ebp
mov al, byte [ebx + 1]
add ebx, 2
cmp ebp, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x3fc], ebx
ja 0x5e397a
push 0x17
jmp 0x5e3661
shr eax, 1
lea ecx, [esp + 0x260]
mov dword [esp + 0x30], eax
mov dword [edi + 0x160], eax
call fcn.004e57f0
mov eax, dword [esp + 0x30]
mov byte [esp + 0x3f4], 8
test eax, eax
mov dword [esp + 0x14], 0
jle 0x5e3b7e
lea edx, [edi + 0x164]
mov dword [esp + 0x68], str.none
mov dword [esp + 0x6c], 0x6e9f4c
mov dword [esp + 0x70], str.sha1
mov dword [esp + 0x74], str.sha224
mov dword [esp + 0x78], str.sha256
mov dword [esp + 0x7c], str.sha384
mov dword [esp + 0x80], str.sha512
mov dword [esp + 0x58], str.anonymous
mov dword [esp + 0x5c], 0x6ecda4
mov dword [esp + 0x60], 0x6ecd90
mov dword [esp + 0x64], str.ecdsa
mov ecx, ebx
mov dword [esp + 0x34], edx
jmp 0x5e3a1f
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x34]
xor eax, eax
mov al, byte [ecx]
inc ecx
mov dword [edx + 0x80], eax
mov ebx, eax
xor eax, eax
mov al, byte [ecx]
inc ecx
mov ebp, eax
mov dword [esp + 0x54], ecx
mov dword [edx], ebp
mov al, byte [esi + 0x122]
test al, al
je 0x5e3a8b
push str.signatureAndHashAlgorithm
push esi
lea ecx, [esp + 0x174]
call fcn.004f0370
push ebx
push str.hashAlg
mov ecx, esi
mov byte [esp + 0x3fc], 9
call fcn.004effe0
push ebp
push str.sigAlg
mov ecx, esi
call fcn.004effe0
lea ecx, [esp + 0x16c]
mov byte [esp + 0x3f4], 8
call fcn.004f03e0
push str.serverSupportedSigAlgs_
lea ecx, [esp + 0x88]
call fcn.004e8b00
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x88]
call fcn.004e48f0
push 0x5d
lea ecx, [esp + 0x88]
call fcn.004e3f90
lea ecx, [esp + 0x260]
call fcn.004e3cd0
test ebp, ebp
jl 0x5e3ae3
cmp ebp, 3
jg 0x5e3ae3
mov edx, dword [esp + ebp*4 + 0x58]
lea ecx, [esp + 0x260]
push edx
call fcn.004e5040
jmp 0x5e3af0
push ebp
lea ecx, [esp + 0x264]
call fcn.004e48f0
push 0x2c
lea ecx, [esp + 0x264]
call fcn.004e3f90
test ebx, ebx
jl 0x5e3b1a
cmp ebx, 6
jg 0x5e3b1a
mov eax, dword [esp + ebx*4 + 0x68]
lea ecx, [esp + 0x260]
push eax
call fcn.004e5040
jmp 0x5e3b27
push ebx
lea ecx, [esp + 0x264]
call fcn.004e48f0
lea ecx, [esp + 0x260]
call fcn.004dda00
push eax
lea ecx, [esp + 0x88]
call fcn.004dda00
lea ecx, [esp + 0xfc]
push eax
push ecx
mov ecx, esi
call fcn.004ef080
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
inc eax
add edx, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], edx
jl 0x5e3a17
mov ebx, dword [esp + 0x3fc]
mov ebp, dword [esp + 0x400]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x260]
sub ebp, eax
add ebx, eax
mov byte [esp + 0x3f4], 7
call fcn.004e58d0
cmp ebp, 2
jae 0x5e3ba6
push 2
jmp 0x5e3e28
xor eax, eax
sub ebp, 2
mov ah, byte [ebx]
mov dword [esp + 0x400], ebp
mov al, byte [ebx + 1]
add ebx, 2
cmp eax, ebp
mov dword [esp + 0x20], eax
je 0x5e3c03
push 3
push str.tooShortLoc
mov ecx, esi
call fcn.004effe0
mov eax, dword [esi]
push str.CertificateRequest_message_too_short
mov ecx, esi
call dword [eax + 0x14]
mov ecx, dword [esp + 0x20]
push ecx
push str.totalLen
mov ecx, esi
call fcn.004effe0
push ebp
push str.msgLen
mov ecx, esi
call fcn.004effe0
push esi
push edi
push 0
jmp 0x5e3d7d
mov cl, byte [esi + 0x122]
test cl, cl
je 0x5e3c1a
push eax
push str.totalLen
mov ecx, esi
call fcn.004effe0
test ebp, ebp
mov dword [esp + 0x14], 0
je 0x5e3d5e
jmp 0x5e3c33
mov ebp, dword [esp + 0x400]
cmp ebp, 2
jb 0x5e3e26
mov eax, dword [esp + 0x400]
xor edx, edx
mov dh, byte [ebx]
sub eax, 2
mov dl, byte [ebx + 1]
add ebx, 2
mov ebp, edx
mov dword [esp + 0x400], eax
cmp ebp, eax
ja 0x5e3e49
lea ecx, [esp + 0x38]
call fcn.004dd9e0
push ebp
push ebx
lea ecx, [esp + 0x40]
call fcn.004e1260
lea eax, [esp + 0x38]
push esi
push eax
lea ecx, [esp + 0x20]
call fcn.005a5e90
test al, al
je 0x5e3e50
lea ecx, [esp + 0x2d4]
call fcn.004d95b0
lea ecx, [esp + 0x2d4]
push esi
push ecx
lea ecx, [esp + 0x20]
call fcn.005a5f40
lea ecx, [esp + 0x2d4]
call fcn.004dba70
push eax
push 0
lea ecx, [edi + 0x264]
call fcn.00506390
mov al, byte [esi + 0x122]
test al, al
je 0x5e3ce2
lea edx, [esp + 0x2d4]
mov ecx, esi
push edx
push str.DistinguishedName
call fcn.004efc60
push str.acceptableCertAuthDNs_
lea ecx, [esp + 0x88]
call fcn.004e8b00
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x84]
push eax
call fcn.004e48f0
push 0x5d
lea ecx, [esp + 0x88]
call fcn.004e3f90
lea ecx, [esp + 0x2d4]
call fcn.004dbab0
push eax
lea ecx, [esp + 0x88]
call fcn.004dda00
lea ecx, [esp + 0xfc]
push eax
push ecx
mov ecx, esi
call fcn.004ef080
mov eax, dword [esp + 0x400]
mov edx, dword [esp + 0x14]
sub eax, ebp
add ebx, ebp
inc edx
mov dword [esp + 0x400], eax
test eax, eax
mov dword [esp + 0x14], edx
jne 0x5e3c2c
mov al, byte [esi + 0x122]
test al, al
je 0x5e3d79
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
push str.NumDistinguishedNames
call fcn.004effe0
push esi
push edi
push 1
mov ecx, dword [esp + 0x1c]
call fcn.005e3420
lea ecx, [esp + 0x84]
mov bl, al
mov byte [esp + 0x3f4], 6
call fcn.004e58d0
lea ecx, [esp + 0x18]
mov byte [esp + 0x3f4], 5
call fcn.005a5830
lea ecx, [esp + 0x2d4]
mov byte [esp + 0x3f4], 4
call fcn.004d9240
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x3f4], 3
call fcn.004e58d0
lea ecx, [esp + 0x178]
mov byte [esp + 0x3f4], 2
call fcn.004e58d0
lea ecx, [esp + 0x38]
mov byte [esp + 0x3f4], 1
call fcn.004e0890
lea ecx, [esp + 0xf8]
mov byte [esp + 0x3f4], 0
call fcn.004e58d0
lea ecx, [esp + 0x24]
mov dword [esp + 0x3f4], 0xffffffff
call fcn.004f03e0
mov al, bl
jmp 0x5e3e87
push 4
push str.tooShortLoc
mov ecx, esi
call fcn.004effe0
mov edx, dword [esi]
push str.CertificateRequest_message_too_short
mov ecx, esi
call dword [edx + 0x14]
push esi
push edi
push 0
jmp 0x5e3d7d
push 5
jmp 0x5e3661
mov edx, dword [esi]
push str.Invalid_DistinguishedName_DER
mov ecx, esi
call dword [edx + 0x14]
push esi
push edi
push 0
jmp 0x5e3d7d
mov edx, dword [esi]
push str.Invalid_CertificateRequest_message
mov ecx, esi
call dword [edx + 0x14]
lea ecx, [esp + 0x24]
mov dword [esp + 0x3f4], 0xffffffff
call fcn.004f03e0
xor al, al
mov ecx, dword [esp + 0x3ec]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x3e8
ret 0xc