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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5fddd3
mov eax, dword fs:[0]
push eax
sub esp, 0x90
mov eax, dword [0x6baac0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x88], ecx
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x68]
mov esi, dword [ebp + 0x20]
xorps xmm0, xmm0
mov edi, dword [ebp + 0x1c]
push str.serverHandshake2
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp + 0x14]
push esi
mov dword [ebp - 0x98], eax
movq qword [ebp - 0x68], xmm0
mov dword [ebp - 0x60], 0
call fcn.00430cc0
mov eax, dword [ebp - 0x88]
mov ecx, eax
mov dword [ebp - 4], 0
mov byte [eax + 0x170], 1
mov byte [eax + 0x260], 0
mov dword [eax + 0x17c], 0
mov dword [eax + 0x180], 0
call fcn.00512e20
mov eax, dword [ebp - 0x88]
add eax, 0x28c
mov ecx, eax
mov dword [ebp - 0x94], eax
call fcn.00441510
test eax, eax
je 0x51eeed
mov ecx, dword [ebp - 0x94]
push 0
call fcn.004414a0
cmp dword [eax + 0x28], 1
je 0x51ef1a
mov ecx, dword [ebp - 0x88]
lea ecx, [ecx + 0x1d0]
call fcn.004132b0
mov eax, dword [ebp - 0x88]
mov dword [eax + 0x1ec], 0
mov dword [eax + 0x1f0], 0
jmp 0x51ef20
mov eax, dword [ebp - 0x88]
mov byte [eax + 0x28], 0
mov byte [edi + 0x17], 0
mov byte [eax + 0x2f0], 0
mov al, byte [ebp + 8]
test al, al
je 0x51eff5
cmp byte [ebp + 0xc], 0
je 0x51eff5
cmp byte [esi + 0xae], 0
je 0x51ef59
mov eax, dword [esi]
mov ecx, esi
push str.Sending_HelloRequest...
call dword [eax + 0x18]
xorps xmm0, xmm0
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x50]
movq qword [ebp - 0x40], xmm0
movups xmmword [ebp - 0x50], xmm0
call fcn.004118f0
push 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.00412270
push 0
lea ecx, [ebp - 0x50]
call fcn.00412270
push 0
lea ecx, [ebp - 0x50]
call fcn.00412270
push 0
lea ecx, [ebp - 0x50]
call fcn.00412270
mov eax, dword [ebp - 0x88]
lea ecx, [ebp - 0x50]
push esi
push edi
push dword [ebp + 0x18]
push dword [ebp - 0x8c]
push dword [eax + 0x40]
push dword [eax + 0x3c]
push ecx
mov ecx, eax
call fcn.0051eb20
test al, al
jne 0x51efe6
mov eax, dword [esi]
mov ecx, esi
push str.Failed_to_send_HelloRequest.
call dword [eax + 0x14]
lea ecx, [ebp - 0x50]
call fcn.00411b10
mov byte [ebp - 0x8d], 0
jmp 0x51f856
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0
call fcn.00411b10
mov al, byte [ebp + 8]
xor al, 1
cmp byte [esi + 0xae], 0
mov byte [ebp - 0x9c], al
je 0x51f016
movzx eax, al
mov ecx, esi
push eax
push str.bInitialHandshake
call fcn.00431470
mov ecx, dword [ebp - 0x88]
push esi
push edi
push dword [ebp + 0x18]
push dword [ebp - 0x8c]
push dword [ebp - 0x9c]
call fcn.005213b0
test al, al
jne 0x51f05b
cmp dword [edi + 0x24], 0
jne 0x51f043
mov dword [edi + 0x24], 0x77
mov eax, dword [esi]
mov ecx, esi
push str.Failed_to_receive_ClientHello.
call dword [eax + 0x14]
mov byte [ebp - 0x8d], 0
jmp 0x51f856
mov ecx, dword [ebp - 0x88]
push esi
push edi
push dword [ebp + 0x18]
push dword [ebp - 0x8c]
call fcn.005202e0
test al, al
jne 0x51f094
mov dword [edi + 0x24], 0x75
mov ecx, esi
mov eax, dword [esi]
push str.Unable_to_agree_on_a_TLS_protocol_version.
call dword [eax + 0x14]
mov byte [ebp - 0x8d], 0
jmp 0x51f856
mov ecx, dword [ebp - 0x88]
push esi
push dword [ebp - 0x98]
call fcn.005117e0
mov ecx, dword [ebp - 0x88]
test al, al
jne 0x51f0d2
push esi
push dword [ebp - 0x8c]
mov dword [edi + 0x24], 0x76
push 0x50
push edi
call fcn.0051e910
mov byte [ebp - 0x8d], 0
jmp 0x51f856
call fcn.00512bb0
test al, al
jne 0x51f103
mov ecx, dword [ebp - 0x88]
push esi
push dword [ebp - 0x8c]
push 0x50
push edi
call fcn.0051e910
mov dword [edi + 0x24], 0x64
mov byte [ebp - 0x8d], 0
jmp 0x51f856
mov eax, dword [ebp - 0x88]
cmp dword [eax + 0x234], 0
je 0x51f12f
push dword [ebp - 0x98]
mov ecx, eax
call fcn.0051fd50
mov eax, dword [ebp - 0x88]
mov ecx, eax
push dword [eax + 0x78]
call fcn.0051fd50
xorps xmm0, xmm0
mov dword [ebp - 0x6c], 0
lea ecx, [ebp - 0x84]
movq qword [ebp - 0x74], xmm0
movups xmmword [ebp - 0x84], xmm0
call fcn.004118f0
mov ecx, dword [ebp - 0x88]
lea eax, [ebp - 0x84]
push esi
push eax
mov byte [ebp - 4], 2
call fcn.005144c0
mov ecx, dword [ebp - 0x88]
test al, al
jne 0x51f18c
push esi
push dword [ebp - 0x8c]
push 0x50
push edi
call fcn.0051e910
mov dword [edi + 0x24], 0x64
jmp 0x51f844
lea eax, [ebp - 0x84]
push eax
lea ecx, [ecx + 0x1d0]
call fcn.00411fb0
mov eax, dword [ebp - 0x88]
lea ecx, [ebp - 0x84]
push esi
push edi
push dword [ebp + 0x18]
push dword [ebp - 0x8c]
push dword [eax + 0x40]
push dword [eax + 0x3c]
push ecx
mov ecx, eax
call fcn.0051eb20
test al, al
jne 0x51f1dd
cmp dword [edi + 0x24], 0
jne 0x51f844
mov dword [edi + 0x24], 0x78
jmp 0x51f844
lea ecx, [ebp - 0x84]
call fcn.00415b50
cmp byte [esi + 0xae], 0
je 0x51f1fd
mov eax, dword [esi]
mov ecx, esi
push str.Sent_handshake_messages_up_to_and_including_ServerHelloDone.
call dword [eax + 0x18]
lea ecx, [ebp - 0x50]
call fcn.0050e0f0
mov ecx, dword [ebp - 0x88]
lea eax, [ebp - 0x50]
push esi
push dword [ebp + 0x18]
mov byte [ebp - 4], 3
push edi
push dword [ebp - 0x8c]
push 0
push eax
call fcn.0051ba30
test al, al
je 0x51f3c3
mov ecx, dword [ebp - 0x88]
call fcn.005188e0
cmp eax, 0xb
jne 0x51f28f
push str.handleClientCert
xorps xmm0, xmm0
mov dword [ebp - 0x54], 0
push esi
lea ecx, [ebp - 0x5c]
movq qword [ebp - 0x5c], xmm0
call fcn.00430cc0
mov ecx, dword [ebp - 0x88]
push esi
push edi
push dword [ebp - 0x98]
mov byte [ebp - 4], 4
push dword [ebp - 0x8c]
call fcn.00520430
test al, al
jne 0x51f2e4
lea ecx, [ebp - 0x5c]
mov dword [edi + 0x24], 0x79
call fcn.00430db0
jmp 0x51f844
cmp eax, 0x15
jne 0x51f32d
push str.handleClientCertUrl
xorps xmm0, xmm0
mov dword [ebp - 0x54], 0
push esi
lea ecx, [ebp - 0x5c]
movq qword [ebp - 0x5c], xmm0
call fcn.00430cc0
mov ecx, dword [ebp - 0x88]
push esi
push edi
push dword [ebp - 0x8c]
mov byte [ebp - 4], 5
call fcn.005205e0
test al, al
jne 0x51f2e4
lea ecx, [ebp - 0x5c]
mov dword [edi + 0x24], 0x7a
call fcn.00430db0
jmp 0x51f844
mov ecx, dword [ebp - 0x88]
lea eax, [ebp - 0x50]
dec dword [ebp - 0x48]
push esi
push dword [ebp + 0x18]
push edi
push dword [ebp - 0x8c]
push 0
push eax
call fcn.0051ba30
test al, al
jne 0x51f321
cmp dword [edi + 0x24], 0
jne 0x51f314
mov dword [edi + 0x24], 0x6d
lea ecx, [ebp - 0x5c]
call fcn.00430db0
jmp 0x51f844
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 3
call fcn.00430db0
mov eax, dword [ebp - 0x88]
cmp dword [eax + 0x24c], 0
jne 0x51f36d
mov ecx, dword [eax + 0x230]
test ecx, ecx
je 0x51f36d
call fcn.00444260
test eax, eax
je 0x51f367
mov eax, dword [esi]
mov ecx, esi
push str.The_server_requires_a_valid_client_cert__but_the_client_provided_none.
call dword [eax + 0x14]
mov dword [edi + 0x24], 0x79
jmp 0x51f844
mov eax, dword [ebp - 0x88]
mov ecx, eax
call fcn.005188e0
cmp eax, 0x10
jne 0x51f81c
mov ecx, dword [ebp - 0x88]
push esi
push edi
push dword [ebp - 0x8c]
call fcn.00520e00
test al, al
jne 0x51f3a0
mov dword [edi + 0x24], 0x7b
jmp 0x51f844
mov ecx, dword [ebp - 0x88]
lea eax, [ebp - 0x50]
dec dword [ebp - 0x48]
push esi
push dword [ebp + 0x18]
push edi
push dword [ebp - 0x8c]
push 1
push eax
call fcn.0051ba30
test al, al
jne 0x51f3d9
cmp dword [edi + 0x24], 0
jne 0x51f844
mov dword [edi + 0x24], 0x6d
jmp 0x51f844
mov ecx, dword [ebp - 0x94]
call fcn.00441510
test eax, eax
je 0x51f442
mov ecx, dword [ebp - 0x88]
call fcn.005188e0
cmp eax, 0xf
jne 0x51f81c
mov ecx, dword [ebp - 0x88]
push esi
push edi
push dword [ebp - 0x8c]
call fcn.00520700
test al, al
jne 0x51f41f
mov dword [edi + 0x24], 0x7c
jmp 0x51f844
mov ecx, dword [ebp - 0x88]
lea eax, [ebp - 0x50]
dec dword [ebp - 0x48]
push esi
push dword [ebp + 0x18]
push edi
push dword [ebp - 0x8c]
push 1
push eax
call fcn.0051ba30
test al, al
je 0x51f3c3
mov eax, dword [ebp - 0x88]
cmp byte [eax + 0x2f0], 0
jne 0x51f45b
push str.Did_not_receive_the_expected_ChangeCipherSpec
jmp 0x51f821
cmp byte [esi + 0xae], 0
je 0x51f476
mov eax, dword [esi]
mov ecx, esi
push str.ChangeCipherSpec_has_been_received.
call dword [eax + 0x18]
mov eax, dword [ebp - 0x88]
push esi
push 0
push dword [ebp - 0x98]
mov ecx, eax
push edi
push dword [ebp - 0x8c]
call fcn.00515fa0
test al, al
jne 0x51f4a9
mov eax, dword [esi]
mov ecx, esi
push str.Failed_to_derive_keys.
call dword [eax + 0x14]
mov dword [edi + 0x24], 0x64
jmp 0x51f844
cmp byte [esi + 0xae], 0
je 0x51f4be
mov eax, dword [esi]
mov ecx, esi
push str.Derived_keys.
call dword [eax + 0x18]
mov eax, dword [ebp - 0x88]
mov ecx, eax
push dword [eax + 0x184]
call fcn.00517c10
call fcn.00515a20
mov ecx, dword [ebp - 0x88]
mov dword [ecx + 0x184], eax
cmp byte [esi + 0xae], 0
je 0x51f4f7
mov eax, dword [esi]
mov ecx, esi
push str.Installed_new_incoming_security_params.
call dword [eax + 0x18]
mov ecx, dword [ebp - 0x88]
lea eax, [ebp - 0x50]
push esi
push dword [ebp + 0x18]
push edi
push dword [ebp - 0x8c]
push 0
push eax
call fcn.0051ba30
test al, al
jne 0x51f535
cmp dword [edi + 0x24], 0
jne 0x51f524
mov dword [edi + 0x24], 0x6d
mov eax, dword [esi]
mov ecx, esi
push str.Failed_to_read_the_HANDSHAKE_FINISHED_message.
call dword [eax + 0x14]
jmp 0x51f844
mov ecx, dword [ebp - 0x88]
call fcn.005188e0
cmp eax, 0x14
je 0x51f56e
mov eax, dword [esi]
mov ecx, esi
push str.Expected_FINISHED_message_from_client__but_received_something_else.
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x88]
call fcn.005188e0
push eax
push str.handshakeMessageType
mov ecx, esi
call fcn.00431470
jmp 0x51f828
cmp byte [esi + 0xae], 0
je 0x51f583
mov eax, dword [esi]
mov ecx, esi
push str.Dequeue_the_FINISHED_message...
call dword [eax + 0x18]
mov ecx, dword [ebp - 0x88]
push esi
call fcn.00516920
mov ecx, dword [ebp - 0x88]
mov dword [ecx + 0x25c], eax
test eax, eax
jne 0x51f5a9
push str.Bad_FINISHED_message_from_server.
jmp 0x51f821
lea eax, [ebp - 0x94]
mov dword [ebp - 0x94], 0
push eax
lea eax, [ebp - 0x34]
push eax
push esi
push 1
push 0
push dword [ebp - 0x98]
push edi
push dword [ebp - 0x8c]
call fcn.00512340
test al, al
jne 0x51f5f1
mov eax, dword [esi]
mov ecx, esi
push str.Failed_to_calculate_expected_FINISHED_verify_data.
call dword [eax + 0x14]
mov dword [edi + 0x24], 0x64
jmp 0x51f844
mov eax, dword [ebp - 0x88]
mov edx, dword [eax + 0x25c]
mov eax, dword [ebp - 0x94]
cmp eax, dword [edx + 0x50]
jne 0x51f7f2
add edx, 0x2c
lea ecx, [ebp - 0x34]
sub eax, 4
mov dword [ebp - 0x94], eax
jb 0x51f63d
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x51f642
mov eax, dword [ebp - 0x94]
add ecx, 4
add edx, 4
sub eax, 4
mov dword [ebp - 0x94], eax
jae 0x51f620
cmp eax, 0xfffffffc
je 0x51f68b
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x51f7f2
cmp dword [ebp - 0x94], 0xfffffffd
je 0x51f68b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x51f7f2
cmp dword [ebp - 0x94], 0xfffffffe
je 0x51f68b
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x51f7f2
cmp dword [ebp - 0x94], 0xffffffff
je 0x51f68b
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x51f7f2
cmp byte [esi + 0xae], 0
je 0x51f6a0
mov eax, dword [esi]
mov ecx, esi
push str.Sending_ChangeCipherSpec...
call dword [eax + 0x18]
mov ecx, dword [ebp - 0x88]
push esi
push edi
push dword [ebp + 0x18]
push dword [ebp - 0x98]
push dword [ebp - 0x8c]
call fcn.0051e3c0
test al, al
jne 0x51f6e2
push str.Failed_to_send_ChangeCipherSpec
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
cmp dword [edi + 0x24], 0
jne 0x51f844
mov dword [edi + 0x24], 0x72
jmp 0x51f844
cmp byte [esi + 0xae], 0
je 0x51f6f7
mov eax, dword [esi]
mov ecx, esi
push str.Sent_ChangeCipherSpec_message.
call dword [eax + 0x18]
mov eax, dword [ebp - 0x88]
mov ecx, eax
push dword [eax + 0x188]
call fcn.00517c50
call fcn.00515a20
mov ecx, dword [ebp - 0x88]
mov dword [ecx + 0x188], eax
cmp byte [esi + 0xae], 0
je 0x51f730
mov eax, dword [esi]
mov ecx, esi
push str.Installed_new_outgoing_security_params.
call dword [eax + 0x18]
mov ecx, dword [ebp - 0x88]
push esi
push 0
push dword [ebp - 0x98]
push edi
push dword [ebp - 0x8c]
call fcn.00511180
test al, al
jne 0x51f767
mov eax, dword [esi]
mov ecx, esi
push str.Failed_to_build_server_Finished_message
call dword [eax + 0x14]
mov dword [edi + 0x24], 0x64
jmp 0x51f844
cmp byte [esi + 0xae], 0
je 0x51f77c
mov eax, dword [esi]
mov ecx, esi
push str.Sending_FINISHED_message..
call dword [eax + 0x18]
mov ecx, dword [ebp - 0x88]
push esi
push edi
push dword [ebp + 0x18]
push dword [ebp - 0x98]
push dword [ebp - 0x8c]
push 0
call fcn.0051ea10
test al, al
jne 0x51f7a8
push str.Failed_to_send_server_Finished_message.
jmp 0x51f6c5
cmp byte [esi + 0xae], 0
je 0x51f7d2
mov eax, dword [esi]
mov ecx, esi
push str.Sent_FINISHED_message..
call dword [eax + 0x18]
cmp byte [esi + 0xae], 0
je 0x51f7d2
mov eax, dword [esi]
mov ecx, esi
push str.Handshake_completed_successfully.
call dword [eax + 0x18]
mov eax, dword [ebp - 0x88]
mov ecx, eax
push esi
push 0
mov byte [eax + 0x260], 1
call fcn.0051d3b0
mov byte [ebp - 0x8d], 1
jmp 0x51f84b
mov eax, dword [esi]
mov ecx, esi
push str.Verify_data_in_client_FINISHED_message_is_invalid.
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x88]
push esi
push dword [ebp - 0x8c]
push 0x28
push edi
call fcn.0051e910
mov dword [edi + 0x24], 0x74
jmp 0x51f844
push str.Expected_to_receive_the_ClientKeyExchange_message.
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x88]
push esi
push dword [ebp - 0x8c]
push 0xa
push edi
call fcn.0051e910
mov dword [edi + 0x24], 0x66
mov byte [ebp - 0x8d], 0
lea ecx, [ebp - 0x84]
call fcn.00411b10
lea ecx, [ebp - 0x68]
call fcn.00430db0
mov al, byte [ebp - 0x8d]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005ebe04
mov esp, ebp
pop ebp
ret 0x1c