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

Disassembly:
push 0xffffffffffffffff
push 0x501e18
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5894dc]
xor eax, esp
push eax
lea eax, [esp + 0x64]
mov dword fs:[0], eax
mov esi, ecx
mov ebx, dword [esp + 0x80]
mov ecx, ebx
call fcn.004256d0
test al, al
jne 0x40bca1
mov ecx, ebx
call fcn.004256e0
test al, al
jne 0x40bca1
mov ecx, dword [esp + 0x88]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
push str.Internal_error:_called_createSecureEmail_without_needing_security
call edx
xor eax, eax
mov ecx, dword [esp + 0x64]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x18
mov ecx, ebx
call fcn.004256d0
test al, al
je 0x40bde7
mov ecx, ebx
call fcn.004256e0
test al, al
jne 0x40bde7
lea ecx, [esp + 0x14]
call fcn.00408020
mov ecx, dword [esp + 0x7c]
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x74], 0
call fcn.00435540
mov ebp, dword [esi + 0x10]
lea edi, [esi + 0x10]
add esp, 8
lea ecx, [esp + 0x14]
call fcn.004e81e0
mov edx, dword [ebp + 0x28]
push eax
push str.digestAlgorithm
mov ecx, edi
call edx
lea ecx, [esp + 0x14]
call fcn.004e81e0
push eax
mov ecx, ebx
call fcn.00428b30
cmp byte [esi + 0xe23], 0
mov edi, dword [esp + 0x88]
mov ecx, edi
je 0x40bd8f
mov eax, dword [edi]
mov edx, dword [eax + 0x14]
push str.Creating_opaque_signed_email
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x20]
push 1
push str.createSignedData1
mov ecx, edi
call edx
movzx eax, byte [esi + 0xf24]
mov edx, dword [esp + 0x84]
push eax
movzx eax, byte [esi + 0xf27]
push edi
lea ecx, [esi + 0xef8]
push ecx
movzx ecx, byte [esi + 0xf26]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.0042f9f0
mov edx, dword [edi]
mov esi, eax
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x6c], 0xffffffff
call fcn.00408310
mov eax, esi
jmp 0x40bc8b
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
push str.Creating_multipart_signed_email
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x20]
push 1
push str.createMultipartSigned1
mov ecx, edi
call eax
movzx ecx, byte [esi + 0xf24]
mov eax, dword [esp + 0x84]
push ecx
movzx ecx, byte [esi + 0xf27]
push edi
lea edx, [esi + 0xef8]
push edx
movzx edx, byte [esi + 0xf26]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.00430880
mov esi, eax
mov eax, dword [edi]
mov edx, dword [eax + 0x24]
mov ecx, edi
call edx
jmp 0x40bd77
mov ecx, ebx
call fcn.004256d0
test al, al
jne 0x40be5d
mov ecx, ebx
call fcn.004256e0
test al, al
je 0x40be5d
mov edi, dword [esp + 0x88]
mov eax, dword [edi]
mov edx, dword [eax + 0x14]
push str.Creating_encrypted_email
mov ecx, edi
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x20]
push 1
push str.createPkcs7Mime
mov ecx, edi
call edx
movzx eax, byte [esi + 0xf24]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x78]
push eax
mov eax, dword [esp + 0x78]
push edi
add esi, 0xef8
push esi
push ecx
push edx
push eax
mov ecx, ebx
call fcn.00430020
mov edx, dword [edi]
mov esi, eax
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
mov eax, esi
jmp 0x40bc8b
mov ecx, ebx
call fcn.004256d0
test al, al
je 0x40bfad
mov ecx, ebx
call fcn.004256e0
test al, al
je 0x40bfad
mov edi, dword [esp + 0x88]
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
push str.Creating_signed_and_encrypted_email
mov ecx, edi
call eax
lea ecx, [esp + 0x14]
call fcn.00408020
mov edx, dword [esp + 0x7c]
lea ecx, [esp + 0x14]
push ecx
push edx
mov dword [esp + 0x74], 1
call fcn.00435540
mov eax, dword [esi + 0x10]
lea ebp, [esi + 0x10]
add esp, 8
lea ecx, [esp + 0x14]
mov dword [esp + 0x88], eax
call fcn.004e81e0
mov edx, dword [esp + 0x88]
push eax
mov eax, dword [edx + 0x28]
push str.digestAlgorithm
mov ecx, ebp
call eax
lea ecx, [esp + 0x14]
call fcn.004e81e0
push eax
mov ecx, ebx
call fcn.00428b30
mov edx, dword [edi]
mov eax, dword [edx + 0x20]
push 1
push str.createSignedData
mov ecx, edi
call eax
movzx ecx, byte [esi + 0xf24]
mov edx, dword [esp + 0x84]
movzx eax, byte [esi + 0xf27]
push ecx
movzx ecx, byte [esi + 0xf26]
push edi
lea ebp, [esi + 0xef8]
push ebp
push edx
push eax
push ecx
mov ecx, ebx
call fcn.0042f9f0
mov edx, dword [edi]
mov ebx, eax
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
test ebx, ebx
je 0x40bf97
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
push str.Email_successfully_signed.
mov ecx, edi
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x20]
push 1
push str.createPkcs7Mime
mov ecx, edi
call eax
movzx ecx, byte [esi + 0xf24]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x78]
push edi
push ebp
push edx
push eax
push ecx
mov ecx, ebx
call fcn.00430020
mov edx, dword [edi]
mov esi, eax
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
mov edx, dword [ebx]
mov eax, dword [edx]
push 1
mov ecx, ebx
call eax
jmp 0x40bd77
lea ecx, [esp + 0x14]
mov dword [esp + 0x6c], 0xffffffff
call fcn.00408310
jmp 0x40bc89
mov ecx, ebx
call fcn.004256d0
test al, al
je 0x40bc89
mov ecx, ebx
call fcn.004256e0
test al, al
je 0x40bc89
mov edi, dword [esp + 0x88]
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
push str.Creating_an_encrypted_and_signed_email
mov ecx, edi
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x20]
push 1
push str.createPkcs7Mime
mov ecx, edi
call eax
movzx ecx, byte [esi + 0xf24]
mov edx, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x78]
push edi
lea eax, [esi + 0xef8]
push eax
mov eax, dword [esp + 0x84]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.00430020
mov edx, dword [edi]
mov ebp, eax
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
test ebp, ebp
je 0x40bc89
lea ecx, [esp + 0x3c]
call fcn.00408020
mov edx, dword [esp + 0x7c]
lea ecx, [esp + 0x3c]
push ecx
push edx
mov dword [esp + 0x74], 2
call fcn.00435540
mov eax, dword [esi + 0x10]
add esp, 8
lea ecx, [esp + 0x3c]
mov dword [esp + 0x88], eax
call fcn.004e81e0
mov edx, dword [esp + 0x88]
push eax
mov eax, dword [edx + 0x28]
push str.digestAlgorithm
lea ecx, [esi + 0x10]
call eax
lea ecx, [esp + 0x3c]
call fcn.004e81e0
push eax
mov ecx, ebx
call fcn.00428b30
cmp byte [esi + 0xe23], 0
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
mov ecx, edi
je 0x40c0e3
push str.Creating_opaque_signed_email
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x20]
push 1
push str.createSignedData2
mov ecx, edi
call eax
movzx ecx, byte [esi + 0xf24]
mov edx, dword [esp + 0x84]
push ecx
movzx ecx, byte [esi + 0xf26]
push edi
lea eax, [esi + 0xef8]
push eax
movzx eax, byte [esi + 0xf27]
push edx
push eax
push ecx
mov ecx, ebp
call fcn.0042f9f0
jmp 0x40c129
push str.Creating_multipart_signed_email
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x20]
push 1
push str.createMultipartSigned2
mov ecx, edi
call eax
movzx ecx, byte [esi + 0xf24]
mov edx, dword [esp + 0x84]
push ecx
movzx ecx, byte [esi + 0xf26]
push edi
lea eax, [esi + 0xef8]
push eax
movzx eax, byte [esi + 0xf27]
push edx
push eax
push ecx
mov ecx, ebp
call fcn.00430880
mov edx, dword [edi]
mov esi, eax
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
mov edx, dword [ebp]
mov eax, dword [edx]
push 1
mov ecx, ebp
call eax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x6c], 0xffffffff
call fcn.00408310
mov eax, esi
jmp 0x40bc8b