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

Disassembly:
sub esp, 0x2c
and dword [esp + 0xc], 0
push ebx
push ebp
push esi
push edi
push 0x5a6f34
push 0x3a5
mov ebx, str.srclibmbedtlslibrary_ssl_cli.c
mov edi, ecx
push ebx
push 2
push edi
call fcn.004c6a21
mov ecx, dword [edi]
add esp, 0x14
cmp dword [ecx + 0x1c], 0
jne 0x4d3c56
push str.no_RNG_provided
push 0x3a9
push ebx
push 1
push edi
call fcn.004c6a21
add esp, 0x14
mov eax, 0xffff8c00
jmp 0x4d43a8
cmp dword [edi + 8], 0
jne 0x4d3c6a
movzx eax, byte [ecx + 2]
mov dword [edi + 0x10], eax
movzx eax, byte [ecx + 3]
mov dword [edi + 0x14], eax
mov al, byte [ecx]
mov byte [esp + 0x17], al
test al, al
jne 0x4d3c94
push str.configured_max_major_version_is_invalid__consider_using_mbedtls_ssl_config_defaults__
push 0x3b8
push ebx
push 1
push edi
call fcn.004c6a21
add esp, 0x14
mov eax, 0xffff8f00
jmp 0x4d43a8
mov eax, dword [edi + 0xd4]
mov dword [esp + 0x20], eax
lea ebp, [eax + 0x4000]
cmp eax, ebp
ja 0x4d43a3
movzx edx, byte [ecx + 1]
lea esi, [eax + 4]
movzx eax, byte [ecx + 5]
mov ebx, esi
movzx ecx, byte [esp + 0x17]
push ebx
push eax
call fcn.004c2e0a
mov eax, dword [esp + 0x28]
add ebx, 2
movzx eax, byte [eax + 5]
push eax
movzx eax, byte [esi]
push eax
push str.client_hello__max_version:___d:_d_
push 0x3dd
push str.srclibmbedtlslibrary_ssl_cli.c
push 3
push edi
call fcn.004c6a21
add esp, 0x24
mov ecx, edi
call fcn.004d3b33
mov esi, eax
test esi, esi
je 0x4d3d20
push esi
push str.ssl_generate_random
push 0x3e1
xor edx, edx
push str.srclibmbedtlslibrary_ssl_cli.c
inc edx
mov ecx, edi
call fcn.004c6af7
add esp, 0x10
mov eax, esi
jmp 0x4d43a8
mov eax, dword [edi + 0x44]
push 0x20
add eax, 0x3b0
push eax
push ebx
call fcn.0051c650
add esp, 0xc
mov esi, str.srclibmbedtlslibrary_ssl_cli.c
mov ecx, edi
push 0x20
push ebx
push str.client_hello__random_bytes
push 0x3e6
push esi
push 3
pop edx
call fcn.004c6b7e
mov edx, dword [edi + 0x40]
add esp, 0x14
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x18], ecx
lea eax, [ecx - 0x10]
cmp eax, 0x10
ja 0x4d3d75
cmp dword [edi + 8], 0
jne 0x4d3d75
mov eax, dword [edi + 0x44]
cmp byte [eax + 2], 0
jne 0x4d3d85
and dword [esp + 0x38], 0
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp dword [edi + 8], ecx
jne 0x4d3db9
cmp dword [edx + 0x74], 0
je 0x4d3db9
cmp dword [edx + 0x78], 0
je 0x4d3db9
mov ecx, dword [edi]
lea eax, [edx + 0x1c]
push 0x20
push eax
push dword [ecx + 0x20]
call dword [ecx + 0x1c]
add esp, 0xc
test eax, eax
jne 0x4d43a8
mov eax, dword [edi + 0x40]
push 0x20
pop edx
mov ecx, edx
mov dword [esp + 0x18], ecx
mov dword [eax + 0x18], edx
mov byte [ebx + 0x20], cl
xor edx, edx
add ebx, 0x21
test ecx, ecx
je 0x4d3dd4
mov eax, dword [edi + 0x40]
mov al, byte [eax + edx + 0x1c]
mov byte [ebx], al
inc ebx
inc edx
cmp edx, ecx
jb 0x4d3dc5
push ecx
push str.client_hello__session_id_len.:__zu
push 0x422
push esi
push 3
push edi
call fcn.004c6a21
push dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
mov ecx, edi
add eax, 0x27
push eax
push str.client_hello__session_id
push 0x423
push esi
push 3
pop edx
call fcn.004c6b7e
mov eax, dword [edi]
add esp, 0x2c
cmp byte [eax + 5], 1
jne 0x4d3ecf
cmp ebx, ebp
ja 0x4d43a3
mov eax, ebp
sub eax, ebx
cmp eax, 1
jb 0x4d43a3
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + 0x1f8]
test ecx, ecx
jne 0x4d3e5a
push str.no_verify_cookie_to_send
push 0x43c
push str.srclibmbedtlslibrary_ssl_cli.c
push 3
push edi
call fcn.004c6a21
add esp, 0x14
mov byte [ebx], 0
inc ebx
jmp 0x4d3ecf
movzx eax, byte [eax + 0x1fc]
push eax
push ecx
push str.client_hello__cookie
push 0x443
push str.srclibmbedtlslibrary_ssl_cli.c
push 3
pop edx
mov ecx, edi
call fcn.004c6b7e
mov eax, dword [edi + 0x44]
add esp, 0x14
mov al, byte [eax + 0x1fc]
mov byte [ebx], al
inc ebx
cmp ebx, ebp
ja 0x4d43a3
mov eax, dword [edi + 0x44]
movzx ecx, byte [eax + 0x1fc]
mov eax, ebp
sub eax, ebx
cmp ecx, eax
ja 0x4d43a3
mov ecx, dword [edi + 0x44]
movzx eax, byte [ecx + 0x1fc]
push eax
push dword [ecx + 0x1f8]
push ebx
call fcn.0051c650
mov eax, dword [edi + 0x44]
add esp, 0xc
movzx eax, byte [eax + 0x1fc]
add ebx, eax
mov eax, dword [edi]
xor esi, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x38], ebx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x34], ecx
cmp ebx, ebp
ja 0x4d43a3
mov eax, ebp
sub eax, ebx
cmp eax, 2
jb 0x4d43a3
mov eax, dword [ecx]
add ebx, 2
and dword [esp + 0x28], esi
mov dword [esp + 0x30], eax
test eax, eax
je 0x4d3fde
mov dword [esp + 0x2c], ecx
mov ecx, eax
call fcn.004c4eb5
mov edx, dword [edi]
mov dword [esp + 0x24], eax
movzx ecx, byte [edx + 1]
push ecx
movzx ecx, byte [edx + 3]
mov edx, edi
push ecx
mov ecx, eax
call fcn.004d3bb8
pop ecx
pop ecx
test eax, eax
jne 0x4d3fbc
mov eax, dword [esp + 0x24]
push dword [eax + 4]
push dword [esp + 0x34]
push str.client_hello__add_ciphersuite:__04x___s_
push 0x466
push str.srclibmbedtlslibrary_ssl_cli.c
push 3
push edi
call fcn.004c6a21
mov eax, dword [esp + 0x40]
add esp, 0x1c
mov eax, dword [eax + 0x10]
sub eax, 3
je 0x4d3f88
sub eax, 1
je 0x4d3f88
sub eax, 4
je 0x4d3f88
sub eax, 1
je 0x4d3f88
sub eax, 1
je 0x4d3f88
sub eax, 1
je 0x4d3f88
xor eax, eax
jmp 0x4d3f8b
xor eax, eax
inc eax
or dword [esp + 0x1c], eax
cmp ebx, ebp
ja 0x4d43a3
mov eax, ebp
sub eax, ebx
cmp eax, 2
jb 0x4d43a3
mov ecx, dword [esp + 0x2c]
inc esi
mov dword [esp + 0x18], esi
mov eax, dword [ecx]
sar eax, 8
mov byte [ebx], al
mov al, byte [ecx]
mov byte [ebx + 1], al
add ebx, 2
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
inc ecx
mov dword [esp + 0x28], ecx
lea eax, [eax + ecx*4]
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
mov dword [esp + 0x30], eax
test eax, eax
jne 0x4d3f10
push esi
push str.client_hello__got__zu_ciphersuites__excluding_SCSVs_
push 0x475
mov esi, str.srclibmbedtlslibrary_ssl_cli.c
push esi
push 3
push edi
call fcn.004c6a21
add esp, 0x18
cmp dword [edi + 8], 0
jne 0x4d403a
push str.adding_EMPTY_RENEGOTIATION_INFO_SCSV
push 0x47e
push esi
push 3
push edi
call fcn.004c6a21
add esp, 0x14
cmp ebx, ebp
ja 0x4d43a3
mov eax, ebp
sub eax, ebx
cmp eax, 2
jb 0x4d43a3
mov ecx, dword [esp + 0x18]
mov word [ebx], 0xff00
add ebx, 2
inc ecx
jmp 0x4d403e
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov eax, ecx
push 1
push str.client_hello__compress_len.:__d
push 0x488
push esi
shr eax, 7
add cl, cl
push 3
mov byte [edx], al
push edi
mov byte [edx + 1], cl
call fcn.004c6a21
push 0
push str.client_hello__compress_alg.:__d
push 0x48a
push esi
push 3
push edi
call fcn.004c6a21
add esp, 0x30
cmp ebx, ebp
ja 0x4d43a3
mov eax, ebp
sub eax, ebx
cmp eax, 2
jb 0x4d43a3
lea esi, [ebx + 2]
mov word [ebx], 1
cmp esi, ebp
ja 0x4d43a3
mov eax, ebp
sub eax, esi
cmp eax, 2
jb 0x4d43a3
lea eax, [esp + 0x18]
mov ecx, edi
push eax
push ebp
lea edx, [esi + 2]
call fcn.004d352c
pop ecx
mov ebx, eax
pop ecx
mov ecx, edi
test ebx, ebx
je 0x4d40e9
push ebx
push str.mbedtls_ssl_write_hostname_ext
xor edx, edx
push 0x498
push str.srclibmbedtlslibrary_ssl_cli.c
inc edx
call fcn.004c6af7
add esp, 0x10
mov eax, ebx
jmp 0x4d43a8
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x18]
push eax
push ebp
lea edx, [ebx + 2]
add edx, esi
call fcn.004d35d6
mov dword [esp + 0x40], eax
pop ecx
pop ecx
mov ecx, edi
test eax, eax
je 0x4d412d
push eax
push str.ssl_write_renegotiation_ext
push 0x4a4
xor edx, edx
inc edx
push str.srclibmbedtlslibrary_ssl_cli.c
call fcn.004c6af7
mov eax, dword [esp + 0x48]
add esp, 0x10
jmp 0x4d43a8
add ebx, dword [esp + 0x18]
lea eax, [esp + 0x18]
push eax
push ebp
lea edx, [ebx + 2]
add edx, esi
call fcn.004d366b
mov dword [esp + 0x40], eax
pop ecx
pop ecx
test eax, eax
je 0x4d415a
push eax
push str.ssl_write_signature_algorithms_ext
push 0x4af
mov ecx, edi
jmp 0x4d4114
add ebx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 0
je 0x4d41d2
lea eax, [esp + 0x18]
mov ecx, edi
push eax
lea edx, [ebx + 2]
push ebp
add edx, esi
call fcn.004d3776
mov dword [esp + 0x40], eax
pop ecx
pop ecx
test eax, eax
je 0x4d418e
push eax
push str.ssl_write_supported_elliptic_curves_ext
push 0x4bc
jmp 0x4d4156
add ebx, dword [esp + 0x18]
push str.client_hello__adding_supported_point_formats_extension
push 0x17b
push str.srclibmbedtlslibrary_ssl_cli.c
push 3
push edi
call fcn.004c6a21
lea ecx, [ebx + 2]
add esp, 0x14
add ecx, esi
cmp ecx, ebp
ja 0x4d4200
mov eax, ebp
push 6
sub eax, ecx
pop edx
cmp eax, edx
jb 0x4d4200
mov dword [ecx], 0x2000b00
add ebx, edx
mov word [ecx + 4], 1
mov dword [esp + 0x18], edx
lea eax, [esp + 0x18]
mov ecx, edi
push eax
lea edx, [ebx + 2]
push ebp
add edx, esi
call fcn.004d38a4
mov dword [esp + 0x40], eax
pop ecx
pop ecx
mov ecx, edi
test eax, eax
je 0x4d4215
push eax
push str.ssl_write_max_fragment_length_ext
push 0x4e2
jmp 0x4d4114
mov esi, 0xffff9600
push esi
push str.ssl_write_supported_point_formats_ext
push 0x4c4
jmp 0x4d3d07
add ebx, dword [esp + 0x18]
lea eax, [esp + 0x18]
push eax
push ebp
lea edx, [ebx + 2]
add edx, esi
call fcn.004d3904
mov dword [esp + 0x40], eax
pop ecx
pop ecx
mov ecx, edi
test eax, eax
je 0x4d4245
push eax
push str.ssl_write_encrypt_then_mac_ext
push 0x4ec
jmp 0x4d4114
add ebx, dword [esp + 0x18]
lea eax, [esp + 0x18]
push eax
push ebp
lea edx, [ebx + 2]
add edx, esi
call fcn.004d395a
mov dword [esp + 0x40], eax
pop ecx
pop ecx
mov ecx, edi
test eax, eax
je 0x4d4275
push eax
push str.ssl_write_extended_ms_ext
push 0x4f6
jmp 0x4d4114
add ebx, dword [esp + 0x18]
lea eax, [esp + 0x18]
push eax
push ebp
lea edx, [ebx + 2]
add edx, esi
call fcn.004d3a59
mov dword [esp + 0x40], eax
pop ecx
pop ecx
mov ecx, edi
test eax, eax
je 0x4d42a5
push eax
push str.ssl_write_alpn_ext
push 0x500
jmp 0x4d4114
add ebx, dword [esp + 0x18]
lea eax, [esp + 0x18]
push eax
push ebp
lea edx, [ebx + 2]
add edx, esi
call fcn.004d39b0
mov ebp, eax
pop ecx
pop ecx
test ebp, ebp
je 0x4d42e5
push ebp
push str.ssl_write_session_ticket_ext
xor edx, edx
mov ecx, edi
push 0x514
push str.srclibmbedtlslibrary_ssl_cli.c
inc edx
call fcn.004c6af7
add esp, 0x10
mov eax, ebp
jmp 0x4d43a8
add ebx, dword [esp + 0x18]
mov ebp, str.srclibmbedtlslibrary_ssl_cli.c
push ebx
push str.client_hello__total_extension_length:__zu
push 0x51e
push ebp
push 3
push edi
call fcn.004c6a21
add esp, 0x18
test ebx, ebx
je 0x4d4318
mov eax, ebx
mov byte [esi + 1], bl
shr eax, 8
mov byte [esi], al
add esi, 2
add esi, ebx
mov eax, dword [edi + 0xd4]
xor ebx, ebx
sub esi, dword [esp + 0x20]
inc ebx
mov dword [edi + 0xdc], esi
mov dword [edi + 0xd8], 0x16
mov byte [eax], bl
mov eax, dword [edi]
inc dword [edi + 4]
cmp byte [eax + 5], bl
jne 0x4d4348
mov ecx, edi
call fcn.004c01ef
mov ecx, edi
call fcn.004c0259
mov esi, eax
test esi, esi
je 0x4d4368
push esi
push str.mbedtls_ssl_write_handshake_msg
push 0x535
push ebp
mov edx, ebx
jmp 0x4d3d0f
mov eax, dword [edi]
cmp byte [eax + 5], bl
jne 0x4d4389
mov ecx, edi
call fcn.004bfe2e
mov esi, eax
test esi, esi
je 0x4d4389
push esi
push str.mbedtls_ssl_flight_transmit
push 0x53d
jmp 0x4d4360
push str.__write_client_hello
push 0x542
push ebp
push 2
push edi
call fcn.004c6a21
add esp, 0x14
xor eax, eax
jmp 0x4d43a8
mov eax, 0xffff9600
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret