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

Disassembly:
push 0xffffffffffffffff
push 0x57cbae
mov eax, dword fs:[0]
push eax
sub esp, 0x3e8
mov eax, dword [0x641030]
xor eax, esp
mov dword [esp + 0x3e4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x641030]
xor eax, esp
push eax
lea eax, [esp + 0x3fc]
mov dword fs:[0], eax
mov esi, dword [esp + 0x414]
mov ebp, dword [esp + 0x40c]
mov edi, ecx
push str.processCertificateRequest
push esi
lea ecx, [esp + 0x44]
mov dword [esp + 0x2c], edi
call fcn.00437740
xor ebx, ebx
mov dword [esp + 0x404], ebx
cmp ebp, ebx
je 0x4cf2f2
cmp dword [esp + 0x410], 3
jb 0x4cf2f2
lea ecx, [esp + 0x110]
call fcn.0042d110
add edi, 0xb4
push edi
lea ecx, [esp + 0x114]
mov byte [esp + 0x408], 1
call fcn.0042eb10
push str..certificateRequest
lea ecx, [esp + 0x114]
call fcn.0042cd60
lea ecx, [esp + 0x74]
call fcn.00447240
lea ecx, [esp + 0x384]
mov byte [esp + 0x404], 2
call fcn.0042d110
lea ecx, [esp + 0x310]
mov byte [esp + 0x404], 3
call fcn.0042d110
lea ecx, [esp + 0x1f8]
mov byte [esp + 0x404], 4
call fcn.0040e280
lea ecx, [esp + 0x28]
mov byte [esp + 0x404], 5
call fcn.0050e0c0
movzx edi, byte [ebp]
mov byte [esp + 0x404], 6
mov dword [esp + 0x1c], edi
cmp byte [esi + 0x122], bl
je 0x4ceaf0
push edi
push str.NumCertificateTypes
mov ecx, esi
call fcn.004373b0
dec dword [esp + 0x410]
inc ebp
mov byte [esp + 0x17], 1
call fcn.004ce410
mov dword [esp + 0x18], eax
cmp eax, ebx
jne 0x4ceb81
lea ecx, [esp + 0x28]
mov byte [esp + 0x404], 5
call fcn.0050e0e0
lea ecx, [esp + 0x1f8]
mov byte [esp + 0x404], 4
call fcn.0040e320
lea ecx, [esp + 0x310]
mov byte [esp + 0x404], 3
call fcn.0042d1d0
lea ecx, [esp + 0x384]
mov byte [esp + 0x404], 2
call fcn.0042d1d0
lea ecx, [esp + 0x74]
mov byte [esp + 0x404], 1
call fcn.004479b0
lea ecx, [esp + 0x110]
mov byte [esp + 0x404], 0
call fcn.0042d1d0
jmp 0x4cf300
lea ecx, [esp + 0x9c]
call fcn.0042d110
mov byte [esp + 0x404], 7
cmp edi, ebx
jbe 0x4ced3b
lea ecx, [ecx]
movzx edi, byte [ebp]
push str.allowedCertTypes_
lea ecx, [esp + 0xa0]
call fcn.0042eba0
push ebx
lea ecx, [esp + 0xa0]
call fcn.00430020
push 0x5d
lea ecx, [esp + 0xa0]
call fcn.0042f880
lea ecx, [esp + 0x9c]
cmp edi, 1
jne 0x4cebfb
push str.RSA_Sign
call fcn.0051b3b0
push eax
lea eax, [esp + 0x118]
push eax
mov ecx, esi
call fcn.00436610
jmp 0x4cec80
cmp edi, 2
jne 0x4cec07
push str.DSS_Sign
jmp 0x4cec53
cmp edi, 3
jne 0x4cec28
push str.RSA_Fixed_DH
call fcn.0051b3b0
push eax
lea edx, [esp + 0x118]
push edx
mov ecx, esi
call fcn.00436610
jmp 0x4cec80
cmp edi, 4
jne 0x4cec49
push str.DSS_Fixed_DH
call fcn.0051b3b0
push eax
lea eax, [esp + 0x118]
push eax
mov ecx, esi
call fcn.00436610
jmp 0x4cec80
cmp edi, 0x40
jne 0x4cec6a
push str.ECDSA_Sign
call fcn.0051b3b0
push eax
lea ecx, [esp + 0x118]
push ecx
mov ecx, esi
call fcn.00436610
jmp 0x4cec80
push edi
call fcn.0051b3b0
push eax
lea edx, [esp + 0x118]
push edx
mov ecx, esi
call fcn.00436720
cmp byte [esi + 0x122], 0
je 0x4ced12
mov ecx, esi
cmp edi, 1
jne 0x4ceca7
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push str.RSA_Sign
push str.certType
call edx
jmp 0x4ced12
cmp edi, 2
jne 0x4cecbf
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push str.DSS_Sign
push str.certType
call edx
jmp 0x4ced12
cmp edi, 3
jne 0x4cecd7
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push str.RSA_Fixed_DH
push str.certType
call edx
jmp 0x4ced12
cmp edi, 4
jne 0x4cecef
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push str.DSS_Fixed_DH
push str.certType
call edx
jmp 0x4ced12
cmp edi, 0x40
jne 0x4ced07
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push str.ECDSA_Sign
push str.certType
call edx
jmp 0x4ced12
push edi
push str.certType
call fcn.004373b0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x2c]
cmp eax, 4
jge 0x4ced25
mov dword [ecx + eax*4 + 0x30], edi
inc dword [ecx + 0x2c]
inc ebp
sub dword [esp + 0x410], 1
je 0x4ced49
inc ebx
cmp ebx, dword [esp + 0x1c]
jb 0x4ceba0
cmp dword [esp + 0x410], 2
jae 0x4ced78
push 0x16
jmp 0x4ced4b
push 1
push str.tooShortLoc
mov ecx, esi
call fcn.004373b0
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.CertificateRequest_message_too_short
mov ecx, esi
call edx
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x17], 0
call fcn.00412990
jmp 0x4cf252
mov eax, dword [esp + 0x24]
mov ecx, 3
cmp dword [eax + 0x40], ecx
jne 0x4cefe4
cmp dword [eax + 0x3c], ecx
jne 0x4cefe4
movzx edi, byte [ebp]
movzx eax, byte [ebp + 1]
shl edi, 8
or edi, eax
mov eax, dword [esp + 0x410]
sub eax, 2
add ebp, 2
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x410], eax
cmp eax, edi
ja 0x4cedef
push 0x17
push str.tooShortLoc
mov ecx, esi
call fcn.004373b0
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.CertificateRequest_message_too_short
mov ecx, esi
call eax
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x17], 0
call fcn.00412990
jmp 0x4cf252
mov ecx, dword [esp + 0x18]
mov ebx, edi
shr ebx, 1
mov dword [ecx + 0x40], ebx
lea ecx, [esp + 0x184]
mov dword [esp + 0x38], ebx
call fcn.0042d110
mov byte [esp + 0x404], 8
mov dword [esp + 0x20], 0
test ebx, ebx
jle 0x4cefc7
mov ecx, dword [esp + 0x18]
add ecx, 0x44
mov dword [esp + 0x48], str.anonymous
mov dword [esp + 0x4c], 0x5d0754
mov dword [esp + 0x50], 0x5d0750
mov dword [esp + 0x54], str.ecdsa
mov dword [esp + 0x1c], ecx
jmp 0x4cee54
mov ecx, dword [esp + 0x1c]
movzx eax, byte [ebp]
inc ebp
mov dword [ecx + 0x80], eax
movzx edi, byte [ebp]
mov dword [ecx], edi
inc ebp
cmp byte [esi + 0x122], 0
mov ebx, eax
je 0x4ceeb9
push str.signatureAndHashAlgorithm
push esi
lea ecx, [esp + 0x98]
call fcn.00437740
push ebx
push str.hashAlg
mov ecx, esi
mov byte [esp + 0x40c], 9
call fcn.004373b0
push edi
push str.sigAlg
mov ecx, esi
call fcn.004373b0
lea ecx, [esp + 0x90]
mov byte [esp + 0x404], 8
call fcn.004377b0
push str.serverSupportedSigAlgs_
lea ecx, [esp + 0xa0]
call fcn.0042eba0
mov edx, dword [esp + 0x20]
push edx
lea ecx, [esp + 0xa0]
call fcn.0042ff90
push 0x5d
lea ecx, [esp + 0xa0]
call fcn.0042f880
lea ecx, [esp + 0x184]
mov dword [esp + 0x58], str.none
mov dword [esp + 0x5c], 0x5c8e0c
mov dword [esp + 0x60], str.sha1
mov dword [esp + 0x64], str.sha224
mov dword [esp + 0x68], str.sha256
mov dword [esp + 0x6c], str.sha384
mov dword [esp + 0x70], str.sha512
call fcn.0042c960
lea ecx, [esp + 0x184]
cmp edi, 3
ja 0x4cef45
mov eax, dword [esp + edi*4 + 0x48]
push eax
call fcn.0042cd60
jmp 0x4cef4b
push edi
call fcn.0042ff90
push 0x2c
lea ecx, [esp + 0x188]
call fcn.0042f880
cmp ebx, 6
ja 0x4cef71
mov ecx, dword [esp + ebx*4 + 0x58]
push ecx
lea ecx, [esp + 0x188]
call fcn.0042cd60
jmp 0x4cef7e
push ebx
lea ecx, [esp + 0x188]
call fcn.0042ff90
lea ecx, [esp + 0x184]
call fcn.0051b3b0
push eax
lea ecx, [esp + 0xa0]
call fcn.0051b3b0
push eax
lea edx, [esp + 0x118]
push edx
mov ecx, esi
call fcn.00436610
mov eax, dword [esp + 0x20]
add dword [esp + 0x1c], 4
inc eax
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x20], eax
jl 0x4cee50
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
sub dword [esp + 0x410], edi
lea ecx, [esp + 0x184]
add ebp, edi
mov byte [esp + 0x404], 7
call fcn.0042d1d0
cmp dword [esp + 0x410], 2
jae 0x4ceff5
push 2
jmp 0x4ced4b
movzx edi, byte [ebp]
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x410]
shl edi, 8
sub ebx, 2
or edi, eax
add ebp, 2
mov dword [esp + 0x410], ebx
cmp edi, ebx
je 0x4cf063
push 3
push str.tooShortLoc
mov ecx, esi
call fcn.004373b0
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.CertificateRequest_message_too_short
mov ecx, esi
call eax
push edi
push str.totalLen
mov ecx, esi
call fcn.004373b0
push ebx
push str.msgLen
mov ecx, esi
call fcn.004373b0
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x17], 0
call fcn.00412990
jmp 0x4cf252
cmp byte [esi + 0x122], 0
je 0x4cf079
push edi
push str.totalLen
mov ecx, esi
call fcn.004373b0
mov eax, dword [esp + 0x410]
xor ebx, ebx
test eax, eax
jne 0x4cf0c7
cmp byte [esi + 0x122], 0
je 0x4cf09c
push ebx
push str.NumDistinguishedNames
mov ecx, esi
call fcn.004373b0
cmp byte [esp + 0x17], 0
jne 0x4cf210
mov ecx, dword [esp + 0x18]
call fcn.00412990
jmp 0x4cf252
mov eax, dword [esp + 0x410]
cmp eax, 2
jb 0x4cf1ef
movzx edi, byte [ebp]
movzx ecx, byte [ebp + 1]
shl edi, 8
sub eax, 2
or edi, ecx
add ebp, 2
mov dword [esp + 0x410], eax
cmp edi, eax
ja 0x4cf1f6
lea ecx, [esp + 0x74]
call fcn.00446f40
push edi
push ebp
lea ecx, [esp + 0x7c]
call fcn.00448260
push esi
lea edx, [esp + 0x78]
push edx
lea ecx, [esp + 0x30]
call fcn.0050e580
mov byte [esp + 0x17], al
test al, al
je 0x4cf1fd
lea ecx, [esp + 0x1f8]
call fcn.0040e4d0
push esi
lea eax, [esp + 0x1fc]
push eax
lea ecx, [esp + 0x30]
call fcn.0050e660
lea ecx, [esp + 0x1f8]
call fcn.00411290
mov ecx, dword [esp + 0x18]
push eax
push 0
add ecx, 0x144
call fcn.0044d7f0
cmp byte [esi + 0x122], 0
je 0x4cf17a
lea ecx, [esp + 0x1f8]
push ecx
push str.DistinguishedName
mov ecx, esi
call fcn.004370a0
push str.acceptableCertAuthDNs_
lea ecx, [esp + 0xa0]
call fcn.0042eba0
push ebx
lea ecx, [esp + 0xa0]
call fcn.0042ff90
push 0x5d
lea ecx, [esp + 0xa0]
call fcn.0042f880
lea ecx, [esp + 0x1f8]
call fcn.0040f7f0
push eax
lea ecx, [esp + 0xa0]
call fcn.0051b3b0
push eax
lea edx, [esp + 0x118]
push edx
mov ecx, esi
call fcn.00436610
mov eax, dword [esp + 0x410]
sub eax, edi
add ebp, edi
inc ebx
mov dword [esp + 0x410], eax
test eax, eax
jne 0x4cf0c0
jmp 0x4cf086
push 4
jmp 0x4ced4b
push 5
jmp 0x4ced4b
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Invalid_DistinguishedName_DER
mov ecx, esi
call edx
jmp 0x4cf09c
cmp byte [esi + 0x122], 0
je 0x4cf23e
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
push str.CertificateRequest_message_is_OK.
mov ecx, esi
call edx
cmp byte [esi + 0x122], 0
je 0x4cf23e
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
push str.Queueing_CertificateRequest_message.
mov ecx, esi
call edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
push eax
add ecx, 0x400
call fcn.0044f080
lea ecx, [esp + 0x9c]
mov byte [esp + 0x404], 6
call fcn.0042d1d0
lea ecx, [esp + 0x28]
mov byte [esp + 0x404], 5
call fcn.0050e0e0
lea ecx, [esp + 0x1f8]
mov byte [esp + 0x404], 4
call fcn.0040e320
lea ecx, [esp + 0x310]
mov byte [esp + 0x404], 3
call fcn.0042d1d0
lea ecx, [esp + 0x384]
mov byte [esp + 0x404], 2
call fcn.0042d1d0
lea ecx, [esp + 0x74]
mov byte [esp + 0x404], 1
call fcn.004479b0
lea ecx, [esp + 0x110]
mov byte [esp + 0x404], 0
call fcn.0042d1d0
lea ecx, [esp + 0x3c]
mov dword [esp + 0x404], 0xffffffff
call fcn.004377b0
mov al, byte [esp + 0x17]
jmp 0x4cf316
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Invalid_CertificateRequest_message
mov ecx, esi
call eax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x404], 0xffffffff
call fcn.004377b0
xor al, al
mov ecx, dword [esp + 0x3fc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3e4]
xor ecx, esp
call fcn.005550b0
add esp, 0x3f4
ret 0xc