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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xb50
mov edx, dword [ebp + 0x14]
mov eax, 0x80000000
mov ebx, dword [ebp + 0xc]
xor eax, dword [edx]
cmp eax, 4
setb cl
cmp eax, 1
setne al
test cl, al
jne 0x58ba4b
cmp dword [edx + 0xc], 0x80000002
jne 0x58ba4b
lea esi, [edx + 0x10]
jmp 0x58ba8b
xor eax, eax
lea esi, [esp + 0x2d0]
mov edi, 0x777f2e
inc eax
mov ecx, esi
push eax
push edi
push eax
push edi
call fcn.0058b961
add esp, 0x10
mov al, byte [esi]
movzx ecx, word [esi + 1]
mov dl, byte [esi + 3]
mov esi, dword [esi + 4]
cmp al, 0x14
mov word [esp + 0xe8], cx
mov byte [esp + 0xea], dl
jne 0x58bb99
mov dword [esp + 0x24], esi
mov eax, dword [0x7f50bc]
cmp eax, 4
jbe 0x58bb04
lea esi, [esp + 0x24]
lea eax, [esp + 0x798]
mov dword [eax], esi
mov dword [eax + 4], 0x572094
push 2
pop ecx
lea edx, [esp + 0x2d0]
mov dword [edx], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], 0x20
and dword [edx + 0x14], 0
xor edi, edi
lea ecx, [esp + 0xe8]
mov dword [edx + 0x18], 4
mov byte [edx + 0x1c], 3
inc edi
mov dword [ecx], str.We_got_ServerHello
mov dword [ecx + 4], edi
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], edi
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edi
push 5
pop edx
push 0x77a0b0
call fcn.00513e35
pop eax
mov esi, dword [esi]
mov edi, dword [ebx + 0xbc]
add edi, 8
push 5
pop edx
mov ecx, edi
call fcn.00589294
movzx ebx, word [esi + 0xc]
movzx edx, word [esi + 0xe]
mov byte [esp + 0x10], al
sub esp, 4
mov ecx, ebx
push 4
call fcn.0056df75
pop ecx
pop edx
test al, al
je 0x58bb4b
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
call fcn.0057d28f
cmp ax, 0xa
cmove eax, ebx
mov edx, eax
jmp 0x58bb4d
mov edx, ebx
mov ebx, dword [ebp + 0x10]
cmp dx, 5
je 0x58bbd4
movzx eax, dx
mov cl, 9
cmp eax, 4
jne 0x58bbdd
mov dword [esp + 4], edx
push 4
pop edx
mov ecx, edi
call fcn.00589294
mov cl, 0xb
test al, al
je 0x58bbdd
mov eax, dword [ebx + 4]
movzx eax, byte [eax + 0xc]
dec eax
cmp eax, 1
ja 0x58bbf4
mov eax, dword [ebx]
cmp byte [eax + 0x400], 0
je 0x58bbf4
mov esi, dword [ebp + 8]
mov word [esi], 0x2208
jmp 0x58bcb9
movzx ecx, word [esp + 0xe8]
mov edx, dword [ebp + 8]
mov edi, dword [esp + 0x2dc]
mov word [edx + 1], cx
mov cl, byte [esp + 0xea]
mov byte [edx + 3], cl
mov ecx, dword [esp + 0x2d8]
mov byte [edx], al
mov dword [edx + 4], esi
mov dword [edx + 0xc], edi
mov esi, edx
mov edi, ebx
mov dword [edx + 8], ecx
jmp 0x58bcbc
cmp byte [esp + 0x10], 0
mov cl, 0xb
jne 0x58bc0d
mov esi, dword [ebp + 8]
mov edx, dword [ebx]
movzx eax, cl
mov ecx, esi
push eax
push 0x13
call fcn.00583552
jmp 0x58bcb7
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
call fcn.0057d28f
mov edx, dword [esp + 4]
cmp ax, 0xa
jne 0x58bca7
cmp byte [esi + 0x58], 0
je 0x58bc21
mov esi, dword [ebp + 8]
mov edx, dword [ebx]
mov ecx, esi
push 0x32
jmp 0x58bcb0
lea edi, [esp + 0x630]
mov dword [esp + 4], edx
mov ecx, edi
call fcn.0057559b
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi]
mov edi, dword [edi + 4]
movaps xmm0, xmmword [0x789410]
lea ebx, [esp + 0x2d0]
movaps xmmword [ebx], xmm0
mov dword [ebx + 0x14], edi
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x18], eax
mov edi, dword [esi + 4]
imul eax, dword [esi + 8], 0x14
test eax, eax
je 0x58bcdf
mov ecx, edi
mov dword [esp + 8], eax
call fcn.00577624
mov ecx, eax
call fcn.00577958
mov esi, eax
lea ebx, [esp + 0x2d0]
mov ecx, ebx
mov edx, esi
call fcn.005757dc
test al, al
jne 0x58bd3a
mov ecx, ebx
mov edx, esi
add edi, 0x14
call fcn.0057d07b
mov eax, dword [esp + 8]
add eax, 0xffffffec
jmp 0x58bc62
mov esi, dword [ebp + 8]
mov edx, dword [ebx]
mov ecx, esi
push 0x2f
push 0xd
call fcn.005834f6
pop eax
pop ecx
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
call fcn.0058229e
push edi
call fcn.0058dae7
pop eax
push 8
pop edx
mov ecx, edi
call fcn.004533f0
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x2d0]
mov edx, dword [esp + 0x2d4]
call fcn.00575506
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x5c]
mov word [eax], 0x23
mov edx, dword [edi + 0xdc]
mov ecx, dword [edi + 0xd8]
push 1
push eax
push dword [esi + 8]
push dword [esi + 4]
call fcn.0058d27b
add esp, 0x10
mov ecx, dword [ebp + 0x10]
test al, al
mov edx, dword [ecx]
je 0x58bd60
mov esi, dword [ebp + 8]
mov ecx, esi
push 0x40
push 0x1a
call fcn.005834f6
pop eax
pop ecx
jmp 0x58bcbc
mov ecx, dword [esp + 0x2d0]
mov edx, dword [esp + 0x2d4]
call fcn.00575506
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov edx, dword [eax]
mov ecx, esi
push 7
push 0x10
jmp 0x58bcb2
mov eax, dword [esp + 4]
mov ebx, dword [ebp + 8]
mov dword [esp + 8], edx
cmp ax, 5
mov word [edx + 0x3f4], ax
je 0x58bdda
mov eax, dword [esp + 0x24]
mov ebx, dword [edi + 0xbc]
mov edx, dword [eax + 8]
mov ecx, dword [eax + 4]
push 0x10
call fcn.0057d261
pop ecx
mov edx, eax
xor eax, eax
test edx, edx
je 0x58bdad
cmp word [edx], 4
jne 0x58bdad
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
call fcn.0057cff9
mov edi, edx
jmp 0x58bdad
mov edx, dword [esp + 8]
lea esi, [esp + 0x2d0]
mov ecx, esi
push edi
push eax
push dword [ebx + 0x30]
push dword [ebx + 0x2c]
call fcn.0058d333
add esp, 0x10
mov al, byte [esi]
cmp al, 0x14
jne 0x58bec1
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
push 0xb
call fcn.0057d261
pop ecx
test eax, eax
je 0x58be0d
cmp word [eax], 0
jne 0x58be0d
xor ecx, ecx
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.0057455d
pop ecx
pop edx
test al, al
je 0x58bf2d
mov eax, dword [edi + 0xbc]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
movzx eax, word [esi + 0x12]
push eax
push dword [esi + 0x10]
call fcn.0058d0bb
pop ecx
pop ecx
cmp eax, 2
jne 0x58be5f
mov edx, dword [esp + 8]
lea esi, [esp + 0x2d0]
mov ecx, esi
push 0x31
push 6
call fcn.005834f6
pop eax
pop ecx
mov al, byte [esi]
cmp al, 0x14
jne 0x58bef0
mov edi, dword [esp + 0x2d4]
mov ecx, dword [esp + 0x2d8]
jmp 0x58be63
mov edi, eax
mov ecx, edx
cmp edi, 1
mov ax, 5
mov edx, dword [esp + 8]
mov esi, ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], ecx
sbb ax, 0
cmp word [esp + 4], ax
jne 0x58bee7
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp eax, 2
je 0x58bf6c
cmp eax, edi
jne 0x58c0d6
mov eax, dword [ebp + 0xc]
mov esi, ecx
test edi, edi
mov eax, dword [eax + 4]
je 0x58bf3e
movzx edx, word [eax + 0x16]
mov ecx, dword [eax + 0x14]
movzx eax, word [esi + 0x14]
mov dword [esp + 4], eax
movzx eax, word [esi + 0x16]
jmp 0x58bf4f
movsd xmm0, qword [esp + 0x2d1]
movsd xmm1, qword [esp + 0x2d8]
mov esi, dword [ebp + 8]
movsd qword [esi + 8], xmm1
movsd qword [esi + 1], xmm0
mov byte [esi], al
jmp 0x58bcb9
mov ecx, esi
push 0x35
jmp 0x58bcb0
mov cl, byte [esp + 0x2d3]
mov edx, dword [esp + 0x2d8]
mov esi, dword [esp + 0x2dc]
mov byte [ebx + 3], cl
movzx ecx, word [esp + 0x2d1]
mov word [ebx + 1], cx
mov ecx, dword [esp + 0x2d4]
mov byte [ebx], al
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], esi
mov esi, ebx
jmp 0x58bcbc
mov edx, dword [esp + 8]
mov esi, ebx
mov ecx, ebx
push 0x36
push 6
jmp 0x58bd31
movzx edx, word [eax + 2]
mov ecx, dword [eax]
movzx eax, word [esi]
mov dword [esp + 4], eax
movzx eax, word [esi + 2]
push eax
push dword [esp + 8]
call fcn.0056dfd0
mov ecx, esi
add esp, 8
mov edx, dword [esp + 8]
test al, al
mov esi, ebx
je 0x58c0d6
mov eax, dword [0x7f50bc]
cmp eax, 3
jbe 0x58bfc0
xor edx, edx
lea ecx, [esp + 0x2d0]
lea esi, [esp + 0x3c]
lea eax, [esp + 0xe8]
inc edx
mov dword [ecx], str.Using_ciphersuite
mov dword [eax], esi
mov dword [eax + 4], 0x58618e
mov dword [ecx + 4], edx
and dword [ecx + 0x10], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
push 4
pop edx
push 0x77a0e8
call fcn.00513e35
mov edx, dword [esp + 0xc]
add esp, 4
mov edi, dword [esi]
mov ecx, dword [esi + 4]
mov eax, dword [ebp + 0xc]
mov ebx, ecx
lea esi, [esp + 0x880]
mov dword [eax], edi
mov dword [eax + 4], ebx
mov dword [edx + 0x78], edi
mov dword [edx + 0x7c], ebx
mov ecx, eax
movsd xmm0, qword [eax + 0xe8]
movsd xmm1, qword [eax + 0xf0]
xor eax, eax
test edi, edi
mov edi, ecx
lea ecx, [esp + 0x2d0]
setne al
mov edx, ecx
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
mov ecx, esi
push dword [ebx + eax*4 + 0xc]
call fcn.0058d108
pop eax
mov edx, dword [ebp + 0x14]
mov ecx, esi
call fcn.0058d483
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x2d0]
movsd xmm5, qword [edi + 0x10]
mov ecx, dword [esp + 0x40]
movsd xmm4, qword [edi + 8]
movsd xmm6, qword [edi + 0x18]
movsd xmm0, qword [esi + 0x14]
movsd xmm1, qword [esi + 0x1c]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], esi
movsd qword [eax], xmm0
movsd qword [eax + 8], xmm1
movsd xmm2, qword [esi + 0x24]
movsd qword [eax + 0x10], xmm2
movsd xmm3, qword [esi + 0x2c]
movsd qword [esp + 0x68], xmm5
movsd xmm5, qword [edi + 0x20]
movsd qword [esp + 0x60], xmm4
movsd qword [esp + 0x70], xmm6
movsd qword [eax + 0x18], xmm3
mov eax, dword [esp + 0x3c]
movsd qword [esp + 0x78], xmm5
movsd qword [esp + 0x98], xmm3
movsd qword [esp + 0x90], xmm2
movsd qword [esp + 0x88], xmm1
movsd qword [esp + 0x80], xmm0
test eax, eax
mov dword [esp + 0x30], eax
je 0x58c0df
mov edx, dword [edi + 0x90]
cmp edx, 0x3b9aca00
jne 0x58c18a
mov dword [esp + 0xa8], 0x80000000
jmp 0x58c1e7
mov ecx, esi
push 0x2d
jmp 0x58bcb0
mov ebx, dword [edi + 0x90]
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0xc], 0x80000000
cmp ebx, 0x3b9aca00
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
je 0x58c84d
mov edx, dword [edi + 0x30]
lea esi, [edi + 0x34]
mov dword [esp + 0xc], edx
mov edx, dword [edi + 0x94]
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x2dc]
mov dword [edx - 8], ecx
mov ecx, dword [edi + 0x88]
mov dword [edx - 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], ecx
mov ecx, dword [edi + 0x8c]
mov dword [edx - 4], eax
mov dword [esp + 0x38], ecx
push 0x15
pop ecx
mov dword [esp + 0x34], esi
mov edi, edx
cmp eax, 0x80000000
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
mov dword [edx + 0x58], ecx
mov dword [edx + 0x54], edi
mov dword [edx + 0x5c], ebx
mov dword [edx + 0x60], esi
jne 0x58c83a
lea ecx, [esp + 0x2d0]
call fcn.00589271
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
jmp 0x58c84a
mov ebx, dword [edi + 0x94]
lea esi, [edi + 0x28]
push 0x1a
pop ecx
lea eax, [esp + 0x2d0]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax + 0x68], edx
mov dword [eax + 0x6c], ebx
cmp dword [eax + 8], 0x80000000
jne 0x58c1c5
lea esi, [esp + 0x2e0]
push 0x12
pop ecx
lea edi, [esp + 0xa0]
rep movsd dword es:[edi], dword [esi]
jmp 0x58c1e4
lea ecx, [esp + 0x2d0]
mov dword [esp + 0xa8], 0x80000000
call fcn.00589271
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x880]
mov esi, dword [edi + 0xbc]
mov eax, dword [edi + 0xd0]
movsd xmm0, qword [edi + 0xc0]
movsd xmm1, qword [edi + 0xc8]
mov dword [esp + 0x58], eax
movsd qword [esp + 0x50], xmm1
movsd qword [esp + 0x48], xmm0
lea eax, [esp + 0x798]
push 0xe8
push ecx
push eax
call fcn.00616830
add esp, 0xc
lea eax, [edi + 0xf8]
lea ecx, [esp + 0xaa8]
push 0xa0
push eax
push ecx
call fcn.00616830
add esp, 0xc
mov ebx, dword [edi + 0x1a0]
test ebx, ebx
je 0x58d098
mov eax, dword [edi + 0x198]
lea ecx, [esp + 0xa04]
mov dword [ecx - 4], ebx
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x19c]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0xd4]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0xd8]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0xdc]
mov dword [esp + 0x2c], eax
lea eax, [edi + 0x1a4]
push 0xa4
push eax
push ecx
call fcn.00616830
add esp, 0xc
mov al, byte [edi + 0xe1]
mov ecx, dword [esp + 4]
mov dword [esp + 0x44], esi
mov dword [esp + 0x20], esi
mov byte [esp + 0x2b], al
mov esi, dword [ecx + 4]
imul edi, dword [ecx + 8], 0x14
test edi, edi
je 0x58c311
mov ecx, esi
call fcn.00577624
mov ecx, eax
push 3
push 0x77a64c
call fcn.0057458a
pop ecx
pop edx
test al, al
je 0x58c2ef
add esi, 0x14
add edi, 0xffffffec
jmp 0x58c2c8
mov edx, dword [esp + 8]
lea esi, [esp + 0x2d0]
mov ecx, esi
push 0x3c
push 0x1a
call fcn.005834f6
pop eax
pop ecx
mov al, byte [esi]
cmp al, 0x14
jne 0x58c7c2
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
push 0x1f
call fcn.0057d261
pop ecx
test eax, eax
je 0x58c335
cmp word [eax], 5
jne 0x58c335
mov edi, dword [ebp + 0xc]
add eax, 4
jmp 0x58c35d
mov edx, dword [esp + 8]
lea esi, [esp + 0x2d0]
mov ecx, esi
push 0x1e
push 0x19
call fcn.005834f6
pop eax
pop ecx
mov al, byte [esi]
mov edi, dword [ebp + 0xc]
cmp al, 0x14
jne 0x58c397
mov eax, dword [esp + 0x2d4]
movzx esi, word [eax + 0xe]
movzx edx, word [ebx + 2]
mov dword [esp + 0x38], ebx
mov ecx, dword [ebx]
movzx ebx, word [eax + 0xc]
mov dword [esp + 0x34], eax
push esi
push ebx
call fcn.0058d265
pop ecx
pop edx
test al, al
je 0x58c3d5
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 8]
push 0x41
push 0xd
call fcn.005834f6
pop eax
pop ecx
jmp 0x58c7f0
mov cl, byte [esp + 0x2d3]
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x2d4]
mov esi, dword [esp + 0x2d8]
mov byte [ebx + 3], cl
movzx ecx, word [esp + 0x2d1]
mov word [ebx + 1], cx
mov ecx, dword [esp + 0x2dc]
mov byte [ebx], al
mov dword [ebx + 4], edx
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], ecx
jmp 0x58c7f0
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
push 0x15
call fcn.0057d261
pop ecx
test eax, eax
je 0x58c416
cmp word [eax], 6
jne 0x58c416
cmp dword [esp + 0x18], 0
je 0x58c416
cmp dword [esp + 0xa8], 0x80000000
jne 0x58cd26
mov ebx, dword [ebp + 8]
mov word [ebx], 0x3408
jmp 0x58c7f0
mov eax, dword [0x7f50bc]
mov ebx, dword [esp + 0x38]
cmp eax, 3
jbe 0x58c455
lea ecx, [esp + 0x2d0]
mov dword [ecx], str.Not_resuming_
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x7b0e68
and dword [ecx + 0xc], 0
push 4
pop edx
push 0x77a738
call fcn.00513e35
pop eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
lea ecx, [eax + 8]
mov dword [esp + 4], eax
call fcn.0058d211
mov eax, dword [esp + 8]
mov byte [eax + 0x400], 0
push 0x12
pop ecx
lea eax, [esp + 0x2d0]
lea edx, [esp + 0xa0]
mov edi, eax
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [edx + 8], 0x80000000
call fcn.00586db0
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x6f0]
call fcn.0058d76a
mov eax, dword [ebx + 4]
mov ebx, dword [esp + 0xa38]
mov eax, dword [eax]
mov ecx, dword [ebx]
mov al, byte [eax + 0x14]
cmp al, byte [ecx + 0x14]
jne 0x58c7e5
mov eax, dword [esp + 0x34]
xorps xmm0, xmm0
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x640]
mov dword [esp + 0x1c], eax
movaps xmmword [ecx + 0x20], xmm0
movaps xmmword [ecx + 0x10], xmm0
movaps xmmword [ecx], xmm0
mov eax, dword [ebx]
mov edx, dword [eax + 0x10]
call fcn.00574036
mov esi, eax
mov edi, edx
push dword [esp + 0x1c]
push dword [esp + 0x1c]
lea eax, [esp + 0xa0c]
push eax
push edx
push esi
call dword [ebx + 4]
add esp, 0x14
test al, al
jne 0x58c7e5
lea eax, [esp + 0x6f0]
push 0xa8
push eax
lea ebx, [esp + 0x2d8]
push ebx
call fcn.00616830
add esp, 0xc
mov ecx, ebx
mov edx, esi
push edi
call fcn.0057404b
pop eax
lea esi, [esp + 0x2d2]
mov al, byte [esi - 2]
mov byte [esp + 0x18], al
mov al, byte [esi - 1]
mov byte [esp + 0x1c], al
lea eax, [esp + 0xe8]
push 0x9e
push esi
push eax
call fcn.00616830
add esp, 0xc
mov esi, dword [esi + 0x9e]
test esi, esi
je 0x58c7e5
lea eax, [esp + 0x2d0]
lea ebx, [esp + 0x642]
mov edi, dword [eax + 0xa4]
push 0x9e
lea eax, [esp + 0xec]
push eax
push ebx
call fcn.00616830
add esp, 0xc
mov al, byte [esp + 0x18]
mov byte [ebx - 2], al
mov al, byte [esp + 0x1c]
mov byte [ebx - 1], al
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x9e], esi
mov dword [ebx + 0xa2], edi
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x38]
call fcn.00589428
mov edi, dword [esp + 0x34]
lea esi, [esp + 0x48]
movzx ecx, word [edi + 0xe]
push ecx
push dword [edi + 0xc]
push esi
push eax
call dword [edx + 0xc]
add esp, 0x10
mov edx, dword [esp + 8]
lea esi, [esp + 0x2d0]
mov ecx, esi
call fcn.0058d0a2
mov al, byte [esi]
cmp al, 0x14
jne 0x58c7c2
lea ecx, [esp + 0x968]
lea edx, [esp + 0x798]
call fcn.0058d7ad
mov eax, dword [esp + 4]
movzx esi, byte [eax + 0xc]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x50]
mov edx, dword [eax + 0x54]
dec esi
call fcn.00589428
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 4], eax
mov eax, edx
lea edx, [esp + 0x640]
mov dword [edx + 0xa0], ecx
lea ecx, [esp + 0xe8]
push ebx
lea edi, [esp + 0x64]
push edi
push eax
push dword [esp + 0x10]
lea eax, [esp + 0x978]
push eax
call fcn.0058d82f
add esp, 0x14
lea edx, [esp + 0x230]
mov edi, dword [edx - 0xa8]
mov ecx, edi
push ebx
call fcn.0058da5b
pop eax
cmp esi, 2
jb 0x58c694
lea edx, [esp + 0x190]
mov ecx, edi
push dword [esp + 8]
call fcn.0058da7d
pop eax
lea eax, [esp + 0x310]
push 0x1e8
lea ecx, [esp + 0xec]
push ecx
push eax
call fcn.00616830
add esp, 0xc
mov edx, dword [esp + 8]
lea ecx, [esp + 0x2b]
call fcn.0058af35
lea edi, [esp + 0x4f8]
push 0x12
pop ecx
lea esi, [esp + 0xa0]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x58]
movsd xmm0, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x50]
mov dword [esp + 0xf8], eax
movsd qword [esp + 0xf0], xmm1
movsd qword [esp + 0xe8], xmm0
lea eax, [esp + 0x540]
push 0xe8
lea ecx, [esp + 0x79c]
push ecx
push eax
call fcn.00616830
add esp, 0xc
push 0x40
lea eax, [esp + 0x64]
push eax
lea edi, [esp + 0x2d8]
push edi
call fcn.00616830
add esp, 0xc
push 8
pop edx
mov ecx, 0x380
call fcn.005086b2
mov esi, eax
push 0x358
push edi
push eax
call fcn.00616830
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [esi + 0x358], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x35c], eax
movsd xmm0, qword [esp + 0xe8]
movsd xmm1, qword [esp + 0xf0]
movsd qword [esi + 0x360], xmm0
movsd qword [esi + 0x368], xmm1
mov eax, dword [esp + 0xf8]
mov dword [esi + 0x370], eax
mov dword [esi + 0x374], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esi + 0x378], edx
mov dword [esi + 0x37c], ecx
mov dword [ebx + 4], esi
mov dword [ebx + 8], 0x77a754
mov byte [ebx], 0x14
jmp 0x58c82e
movsd xmm0, qword [esp + 0x2d1]
movsd xmm1, qword [esp + 0x2d8]
mov ebx, dword [ebp + 8]
movsd qword [ebx + 8], xmm1
movsd qword [ebx + 1], xmm0
mov byte [ebx], al
jmp 0x58c7ed
mov ebx, dword [ebp + 8]
mov word [ebx], 0x1808
mov edi, dword [ebp + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
call fcn.00571ba3
mov ecx, dword [esp + 0x870]
mov edx, dword [esp + 0x874]
call fcn.0059e46e
lea ecx, [esp + 0x48]
call fcn.0056e58d
lea ecx, [esp + 0xa0]
call fcn.00586db0
lea ecx, [esp + 0x44]
call fcn.00589434
mov esi, dword [esp + 0x30]
mov ecx, dword [ebp + 0x14]
jmp 0x58cceb
push 0x15
pop ecx
mov esi, dword [esp + 0x34]
lea edi, [esp + 0x9ac]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x880]
mov eax, dword [edi + 0xd0]
lea ebx, [esp + 0x270]
movsd xmm0, qword [edi + 0xc8]
movsd xmm1, qword [edi + 0xc0]
mov esi, dword [edi + 0xbc]
mov dword [ebx + 0x10], eax
mov al, byte [edi + 0xe0]
movsd qword [ebx + 8], xmm0
movsd qword [ebx], xmm1
lea edi, [esp + 0x148]
mov byte [esp + 0x2c], al
push 0xe8
push ecx
push edi
call fcn.00616830
add esp, 0xc
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x14], esi
mov dword [edi - 0x5c], eax
mov eax, dword [esp + 0x18]
mov dword [edi - 0x60], eax
mov eax, dword [esp + 0xc]
mov dword [edi - 0x58], eax
lea edi, [esp + 0xf4]
push 0x15
pop ecx
lea esi, [esp + 0x9ac]
lea eax, [esp + 0x60]
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x230]
push 0x40
push eax
push esi
call fcn.00616830
add esp, 0xc
mov al, byte [esp + 0x2c]
mov ecx, dword [esp + 4]
mov byte [esi + 0x58], al
lea esi, [esp + 0x2d0]
add ecx, 0x14
and dword [esi], 0
mov dword [esi + 4], 1
and dword [esi + 8], 0
mov edx, esi
call fcn.00577cd8
mov edi, dword [esi]
mov ebx, dword [esi + 4]
push 0x20
pop edx
lea ecx, [esp + 0x250]
push 0x77815c
push dword [esi + 8]
push ebx
call fcn.00559708
add esp, 0xc
mov ecx, edi
mov edx, ebx
call fcn.00454e92
mov eax, 0x1445247
lea edx, [esp + 0x250]
mov ecx, 0x4e574f44
xor eax, dword [edx + 0x1c]
xor ecx, dword [edx + 0x18]
or ecx, eax
sete al
test byte [esp + 0x10], al
je 0x58c9a5
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 8]
push 0
push 0xd
call fcn.005834f6
pop eax
pop ecx
mov edi, dword [ebp + 0xc]
lea esi, [esp + 0x284]
mov ecx, esi
call fcn.00589434
lea ecx, [esp + 0xe8]
call fcn.0057558d
lea ecx, [esp + 0x270]
call fcn.0056e58d
mov ecx, dword [esi - 0x64]
mov edx, dword [esi - 0x60]
call fcn.0059e46e
jmp 0x58cce4
mov esi, dword [esp + 4]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
push 0x13
call fcn.0057d261
pop ecx
test eax, eax
mov dword [esp + 0x20], eax
setne byte [esp + 0x288]
setne byte [esp + 0xc]
mov edi, dword [esi + 4]
mov ebx, dword [esi + 8]
mov ecx, edi
mov edx, ebx
push 0x14
call fcn.0057d261
pop ecx
test eax, eax
mov dword [esp + 0x10], eax
je 0x58ca25
mov eax, dword [0x7f50bc]
cmp eax, 4
jb 0x58ca25
lea ecx, [esp + 0x2d0]
mov dword [ecx], 0x77a1d8
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x7b0e68
and dword [ecx + 0xc], 0
push 4
pop edx
push 0x77a204
call fcn.00513e35
pop eax
mov edi, dword [esi + 4]
mov ebx, dword [esi + 8]
mov ecx, edi
mov edx, ebx
push 5
call fcn.0057d261
pop ecx
test eax, eax
mov dword [esp + 0x18], eax
je 0x58ca7a
mov eax, dword [0x7f50bc]
cmp eax, 4
jb 0x58ca7a
lea ecx, [esp + 0x2d0]
mov dword [ecx], str.Server_may_staple_OCSP_response
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x7b0e68
and dword [ecx + 0xc], 0
push 4
pop edx
push 0x77a248
call fcn.00513e35
pop eax
mov edi, dword [esi + 4]
mov ebx, dword [esi + 8]
mov ecx, edi
mov edx, ebx
push 0x11
call fcn.0057d261
pop ecx
test eax, eax
je 0x58cb07
cmp word [eax], 9
jne 0x58cb07
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov eax, dword [0x7f50bc]
cmp eax, 3
jbe 0x58cae9
lea ecx, [esp + 0x2d0]
lea eax, [esp + 0x640]
lea edx, [esp + 0x798]
mov dword [ecx], str.Server_sent__SCTs
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [edx], eax
mov dword [ecx + 8], edx
mov dword [eax], edi
mov dword [edx + 4], fcn.004141b5
mov dword [ecx + 0xc], 1
push 4
pop edx
push 0x77a288
call fcn.00513e35
pop eax
mov ecx, esi
mov edx, edi
call fcn.0058d4ab
test al, al
je 0x58cd11
mov ebx, dword [ebp + 8]
mov word [ebx], 0x1908
jmp 0x58c96c
mov dword [esp + 0x6f0], 0x80000000
cmp dword [esp + 0xf0], 0x80000000
je 0x58cbdb
mov eax, dword [esp + 4]
lea ecx, [esp + 0x11c]
lea esi, [eax + 0x34]
mov edx, esi
call fcn.0057cda8
test al, al
je 0x58cbdb
mov dword [esp + 4], esi
mov eax, dword [0x7f50bc]
cmp eax, 3
jbe 0x58cb7f
lea ecx, [esp + 0x2d0]
mov dword [ecx], str.Server_agreed_to_resume
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x7b0e68
and dword [ecx + 0xc], 0
push 4
pop edx
push 0x77a2c4
call fcn.00513e35
pop eax
mov eax, dword [esp + 0x118]
mov esi, dword [esp + 0x14]
movzx edx, word [eax + 2]
mov ecx, dword [eax]
movzx eax, word [esi + 2]
push eax
push dword [esi]
call fcn.0056dfd0
pop ecx
pop edx
mov cl, 0x2a
test al, al
je 0x58cbc1
cmp dword [esp + 0x20], 0
setne al
cmp byte [esp + 0x140], 0
setne cl
xor cl, al
mov cl, 0x2b
je 0x58cd99
mov ebx, dword [ebp + 8]
mov byte [ebx], 8
mov byte [ebx + 1], cl
lea ecx, [esp + 0x6f0]
call fcn.0058d75d
jmp 0x58c96c
lea esi, [esp + 0xe8]
mov eax, dword [esi + 0x19c]
mov dword [esp + 8], eax
push 0x18
pop ecx
lea edi, [esp + 0x2d0]
lea ebx, [esp + 0x418]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x270]
mov eax, dword [ecx + 0x10]
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
add dword [esp + 4], 0x34
mov dword [ebx + 0x5c], eax
movsd qword [ebx + 0x54], xmm1
movsd qword [ebx + 0x4c], xmm0
push 0x10
pop ecx
mov edi, ebx
lea esi, [esp + 0x230]
lea eax, [esp + 0x330]
rep movsd dword es:[edi], dword [esi]
push 0xe8
lea ecx, [esp + 0x14c]
push ecx
push eax
call fcn.00616830
add esp, 0xc
movsd xmm0, qword [esp + 0x6f0]
mov eax, dword [esp + 0x6f8]
movsd qword [ebx + 0x40], xmm0
mov dword [ebx + 0x48], eax
push 8
pop edx
mov ecx, 0x1d8
call fcn.005086b2
mov ebx, eax
push 0x1a8
lea eax, [esp + 0x2d4]
push eax
push ebx
call fcn.00616830
add esp, 0xc
mov eax, dword [esp + 8]
cmp dword [esp + 0x18], 0
lea edi, [ebx + 0x1b0]
mov dword [ebx + 0x1a8], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x1ac], eax
push 9
pop ecx
mov esi, dword [esp + 4]
rep movsd dword es:[edi], dword [esi]
setne byte [ebx + 0x1d5]
mov ecx, dword [ebp + 8]
mov al, byte [esp + 0xc]
cmp dword [esp + 0x10], 0
mov byte [ebx + 0x1d4], al
setne byte [ebx + 0x1d6]
mov dword [ecx + 4], ebx
mov dword [ecx + 8], 0x77a320
mov byte [ecx], 0x14
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
mov esi, dword [esp + 0x30]
call fcn.0058229e
test esi, esi
mov esi, dword [ebp + 8]
jne 0x58bccb
mov ecx, dword [edi + 0xd4]
mov edx, dword [edi + 0xd8]
call fcn.00571ba3
jmp 0x58bccb
lea ecx, [esp + 0x6f0]
mov edx, esi
push edi
call fcn.005750dd
pop eax
jmp 0x58cb12
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 0x14]
mov ecx, dword [edx + 0x10]
mov esi, dword [esi + 0x10]
mov bl, byte [ecx + 0x58]
xor ecx, ecx
cmp bl, byte [esi + 0x58]
cmove ecx, edx
jne 0x58cf27
movzx esi, word [eax + 2]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
movzx eax, byte [eax + 0xc]
dec eax
cmp eax, 1
ja 0x58cd82
mov edi, dword [esp + 0x14]
movzx edx, word [ecx + 0x16]
mov ecx, dword [ecx + 0x14]
movzx eax, word [edi + 0x16]
push eax
push dword [edi + 0x14]
call fcn.0056dfd0
pop ecx
pop edx
test al, al
je 0x58d081
test si, si
je 0x58d00c
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 8]
push 0x2e
jmp 0x58d08a
lea esi, [esp + 0x640]
lea edx, [esp + 0x230]
mov ecx, esi
push dword [esp + 0x104]
push dword [esp + 0x104]
push dword [esp + 0x1c]
call fcn.0058d4c9
add esp, 0xc
mov eax, dword [esp + 0x284]
mov ecx, dword [eax + 0x50]
mov edx, dword [eax + 0x54]
mov dword [esp + 0x14], eax
call fcn.00589428
lea ecx, [esp + 0x644]
lea edi, [esp + 0x684]
push 0x30
push edi
push 0x20
push ecx
push 0xd
push str.CLIENT_RANDOM
push eax
call dword [edx + 0xc]
add esp, 0x1c
mov edi, dword [esp + 8]
mov edx, esi
mov ecx, edi
push 0
call fcn.0058d54e
pop eax
mov edx, dword [esp + 0x10c]
lea esi, [esp + 0x2d0]
mov ecx, esi
push dword [esp + 0x110]
call fcn.00573f5a
pop eax
lea ecx, [edi + 0x3dc]
call fcn.0057a798
mov eax, dword [esi + 8]
cmp dword [esp + 0x10], 0
mov dword [edi + 0x3e4], eax
movsd xmm0, qword [esi]
movsd qword [edi + 0x3dc], xmm0
je 0x58cf35
mov eax, esi
push 0x1d
pop ecx
lea edi, [esp + 0x798]
lea esi, [esp + 0x640]
rep movsd dword es:[edi], dword [esi]
push 0x18
pop ecx
lea esi, [esp + 0xe8]
mov edi, eax
lea edx, [esp + 0x270]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x330]
mov eax, dword [edx + 0x10]
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
mov dword [ecx + 0xf8], eax
movsd qword [ecx + 0xf0], xmm1
movsd qword [ecx + 0xe8], xmm0
push 0xe8
lea eax, [esp + 0x14c]
push eax
push ecx
call fcn.00616830
add esp, 0xc
push 8
pop edx
mov ecx, 0x200
call fcn.005086b2
mov ebx, eax
push 0x15c
lea eax, [esp + 0x2d4]
push eax
push ebx
call fcn.00616830
add esp, 0xc
mov eax, dword [esp + 0x14]
lea edi, [ebx + 0x160]
mov dword [ebx + 0x15c], eax
push 0x1d
pop ecx
lea esi, [esp + 0x798]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x1d4]
push 9
pop ecx
mov esi, dword [esp + 4]
rep movsd dword es:[edi], dword [esi]
mov al, byte [esp + 0xc]
mov byte [ebx + 0x1f8], al
mov eax, 0x77a308
mov byte [ebx + 0x1f9], 1
jmp 0x58cfef
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 8]
push 0x2c
jmp 0x58c389
push 0x1d
pop ecx
lea edi, [esp + 0x2d0]
lea esi, [esp + 0x640]
rep movsd dword es:[edi], dword [esi]
push 8
pop edx
mov ecx, 0x210
call fcn.005086b2
mov ebx, eax
mov dword [eax], 0x80000000
lea edi, [eax + 0x10]
push 0x18
pop ecx
lea esi, [esp + 0xe8]
add eax, 0x70
rep movsd dword es:[edi], dword [esi]
push 0xe8
lea ecx, [esp + 0x14c]
push ecx
push eax
call fcn.00616830
add esp, 0xc
lea eax, [esp + 0x270]
lea edi, [ebx + 0x170]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ebx + 0x158], xmm0
movsd qword [ebx + 0x160], xmm1
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x168], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x16c], eax
push 0x1d
pop ecx
lea esi, [esp + 0x2d0]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x1e4]
push 9
pop ecx
mov esi, dword [esp + 4]
rep movsd dword es:[edi], dword [esi]
mov al, byte [esp + 0xc]
mov byte [ebx + 0x208], al
mov byte [ebx + 0x209], 1
mov eax, 0x77a2f0
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], ebx
mov dword [ecx + 8], eax
mov byte [ecx], 0x14
lea ecx, [esp + 0x6f0]
call fcn.0058d75d
jmp 0x58cce1
mov eax, dword [0x7f50bc]
cmp eax, 3
jbe 0x58d047
lea ecx, [esp + 0x2d0]
mov dword [ecx], str.Resuming_using_PSK
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x7b0e68
and dword [ecx + 0xc], 0
push 4
pop edx
push 0x77a708
call fcn.00513e35
pop eax
lea esi, [esp + 0x6f0]
push 0xa0
lea eax, [esp + 0xaac]
push eax
push esi
call fcn.00616830
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], ecx
jmp 0x58c4a7
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 8]
push 0xb
push 0xd
call fcn.005834f6
pop eax
pop ecx
jmp 0x58c7ed
mov ecx, 0x77a104
call fcn.0062d7f0