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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x14c]
cmp eax, dword [ecx + 8]
jbe 0x5281ed
sub esp, 0x1cc
xor eax, eax
lea edi, [esp + 0x198]
call fcn.0044c043
mov eax, dword [esp + 0x1d0]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
movzx ecx, byte [ecx + 0x4c]
test cl, cl
je 0x5269e6
mov ecx, dword [eax + 0x64]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jle 0x5269e6
mov ecx, dword [eax + 8]
mov byte [ecx + 0x38], 1
mov dword [esp + 0xe0], edx
mov ecx, dword [eax + 4]
movzx ecx, byte [ecx + 0x68]
test cl, cl
je 0x52818b
mov ecx, dword [edx + 0x24]
movzx ecx, byte [ecx + 0x5d]
xor ecx, 1
mov edx, dword [eax + 8]
mov byte [edx + 0x48], cl
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
movzx edx, word [edx]
mov word [ecx + 0x28], dx
mov ecx, dword [eax]
movzx ecx, word [ecx + 0x20]
mov edx, dword [eax + 0xc]
mov dword [esp + 4], edx
mov word [esp], cx
call dbg.crypto/tls.newFinishedHash
lea esi, [esp + 8]
lea edi, [esp + 0xfc]
call fcn.0044c4de
mov eax, dword [0x79b700]
mov ecx, dword [esp + 0x1d0]
lea edi, [ecx + 0x18]
mov dword [esp + 0xf8], edi
test eax, eax
jne 0x528169
lea esi, [esp + 0xfc]
call fcn.0044c4de
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x24]
mov ecx, dword [ecx + 0x44]
test ecx, ecx
jne 0x52815d
mov ecx, dword [esp + 0xf8]
test byte [ecx], al
mov edx, dword [esp + 0x1d0]
mov dword [edx + 0x3c], 0
mov dword [edx + 0x40], 0
mov ebx, dword [0x79b700]
lea ebp, [edx + 0x38]
test ebx, ebx
jne 0x528133
mov dword [edx + 0x38], 0
mov eax, dword [edx + 4]
mov dword [esp], eax
call dbg.crypto/tls.(*clientHelloMsg).marshal
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
call dbg.crypto/tls.(*finishedHash).Write
mov eax, dword [esp + 0x1d0]
mov ecx, dword [eax + 8]
mov dword [esp], ecx
call dbg.crypto/tls.(*serverHelloMsg).marshal
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
call dbg.crypto/tls.(*finishedHash).Write
mov eax, dword [esp + 0x1d0]
mov ecx, dword [eax + 8]
mov dword [esp], ecx
call dbg.crypto/tls.(*serverHelloMsg).marshal
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xe0]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call dbg.crypto/tls.(*Conn).writeRecord
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x52811e
lea eax, [0x614c20]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 0x1d0]
mov ecx, dword [eax + 0x64]
mov edx, dword [esp + 4]
mov dword [esp + 0xdc], edx
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [edx + 0x10], ebp
mov dword [edx + 0x14], ebx
mov ebx, dword [0x79b700]
lea ebp, [edx + 0xc]
test ebx, ebx
jne 0x528106
mov dword [edx + 0xc], ecx
mov dword [esp], edx
call dbg.crypto/tls.(*certificateMsg).marshal
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
call dbg.crypto/tls.(*finishedHash).Write
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
call dbg.crypto/tls.(*certificateMsg).marshal
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xe0]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call dbg.crypto/tls.(*Conn).writeRecord
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x5280f1
mov eax, dword [esp + 0x1d0]
mov ecx, dword [eax + 8]
movzx ecx, byte [ecx + 0x38]
test cl, cl
jne 0x528010
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0xe0]
movzx ebx, word [ecx + 0x20]
mov word [esp], bx
mov ebx, dword [edx]
call ebx
mov eax, dword [esp + 8]
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0xb0], ecx
mov ebx, dword [ecx + 0x18]
mov ebp, dword [esp + 0xe0]
mov esi, dword [ebp + 0x24]
mov edi, dword [esp + 0x1d0]
mov ecx, dword [edi + 0x64]
mov ebp, dword [edi + 4]
mov edi, dword [edi + 8]
mov dword [esp + 0x10], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp], eax
call ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
test ebx, ebx
jne 0x527fcb
test eax, eax
je 0x526ced
mov dword [esp + 0xa8], eax
mov ecx, dword [eax + 8]
mov edx, dword [eax]
mov ebx, dword [eax + 4]
test edx, edx
je 0x527eb3
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call dbg.crypto/tls.(*finishedHash).Write
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov ebx, dword [eax]
test ebx, ebx
je 0x527dab
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x16
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
call dbg.crypto/tls.(*Conn).writeRecord
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x527d96
mov ecx, dword [esp + 0xe0]
mov edx, dword [ecx + 0x24]
mov edx, dword [edx + 0x44]
cmp edx, 1
jge 0x527c56
lea eax, [0x604e20]
mov dword [esp], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 4
call dbg.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test edx, edx
jbe 0x5281ae
mov byte [eax], 0xe
mov ebx, dword [esp + 0xf8]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call dbg.crypto/tls.(*finishedHash).Write
mov dword [esp + 0x88], 0
mov byte [esp + 0x88], 0xe
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x16
lea ecx, [esp + 0x88]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 4
mov dword [esp + 0x10], 4
call dbg.crypto/tls.(*Conn).writeRecord
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x527c41
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call dbg.crypto/tls.(*Conn).flush
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
jne 0x527c2c
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call dbg.crypto/tls.(*Conn).readHandshake
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 4]
test ecx, ecx
jne 0x527c17
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x24]
mov ecx, dword [ecx + 0x44]
cmp ecx, 1
jl 0x527c0a
lea ecx, [0x61b1e0]
cmp ecx, ebx
jne 0x527bfe
mov ebp, edx
mov dword [esp + 0xdc], edx
jne 0x527b97
mov dword [esp], edx
call dbg.crypto/tls.(*certificateMsg).marshal
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
call dbg.crypto/tls.(*finishedHash).Write
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
test edx, edx
jne 0x526ed9
mov ebx, dword [esp + 0xe0]
mov ebp, dword [ebx + 0x24]
mov ebp, dword [ebp + 0x44]
cmp ebp, 2
jne 0x526ed4
mov dword [esp], ebx
mov byte [esp + 4], 0x2a
call dbg.crypto/tls.(*Conn).sendAlert
lea eax, [0x60f6c0]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x28
mov ecx, dword [0x79b700]
test ecx, ecx
jne 0x526eb2
lea ecx, [0x651e5f]
mov dword [eax], ecx
lea ecx, [0x757cf0]
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov dword [esp + 0xf4], eax
mov dword [esp], eax
lea ecx, [0x651e5f]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0xf4]
jmp 0x526e97
cmp ebp, 4
je 0x526e5f
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x1d0]
mov dword [esp], eax
call dbg.crypto/tls.(*serverHandshakeState).processCertsFromClient
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
test ecx, ecx
jne 0x527b82
mov dword [esp + 0xa0], edx
mov dword [esp + 0x9c], ebx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call dbg.crypto/tls.(*Conn).readHandshake
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
test ebx, ebx
jne 0x527b6d
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
lea ebp, [0x61b460]
cmp ebp, ecx
jne 0x527b61
mov esi, eax
mov dword [esp + 0xac], eax
jne 0x527af3
mov dword [esp + 0xa0], edx
mov dword [esp + 0x9c], ebx
mov ecx, dword [eax]
mov ebp, dword [eax + 4]
mov esi, dword [eax + 8]
test ecx, ecx
je 0x5279de
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
call dbg.crypto/tls.(*finishedHash).Write
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp + 0xe0]
mov edx, dword [ecx + 0x24]
mov ebx, dword [esp + 0x1d0]
mov ebp, dword [ebx + 0x64]
movzx esi, word [ecx + 0x20]
mov word [esp + 0x10], si
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov edx, dword [esp + 0xac]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xb4]
mov dword [esp], edx
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
test ebx, ebx
jne 0x527999
mov dword [esp + 0x7c], edx
mov ebx, dword [esp + 0x1d0]
mov ebp, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov edi, dword [esp + 0xe0]
movzx edi, word [edi + 0x20]
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0xf0], edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x84], edx
mov ebp, dword [ebp + 0x18]
mov dword [esp + 0x80], ebp
mov ebp, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov esi, dword [esi + 0x18]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], esi
mov word [esp], di
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x1c], eax
call dbg.crypto/tls.masterFromPreMasterSecret
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x1d0]
mov dword [ebx + 0x50], ecx
mov dword [ebx + 0x54], edx
mov ecx, dword [0x79b700]
lea edx, [ebx + 0x4c]
test ecx, ecx
jne 0x527973
mov dword [ebx + 0x4c], eax
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0xe0]
mov ebp, dword [edx + 0x24]
mov esi, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov edx, dword [ebx + 0x50]
mov ebx, dword [ebx + 0x54]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebx
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
call dbg.crypto/tls.(*Config).writeKeyLog
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
test eax, eax
jne 0x52792e
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x50]
test ecx, ecx
jg 0x52717f
mov eax, dword [esp + 0xf8]
test byte [eax], al
mov eax, dword [esp + 0x1d0]
mov dword [eax + 0x3c], 0
mov dword [eax + 0x40], 0
mov ecx, dword [0x79b700]
lea edx, [eax + 0x38]
test ecx, ecx
jne 0x52716d
mov dword [eax + 0x38], 0
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x1d8], 0
add esp, 0x1cc
ret
mov dword [esp], edx
mov dword [esp + 4], 0
call dbg.runtime.writebarrierptr
jmp 0x527150
mov dword [esp], eax
call dbg.crypto/tls.(*Conn).readHandshake
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
test edx, edx
jne 0x527919
lea ebp, [0x61b360]
cmp ebp, eax
jne 0x52790d
mov esi, ecx
mov dword [esp + 0xd4], ecx
jne 0x52789f
movzx eax, byte [ecx + 0xc]
test al, al
jne 0x5277b5
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x5277a0
mov ebp, dword [eax + 8]
cmp ebp, 0x2fd00e80
jne 0x527796
mov esi, ebp
lea ebp, [0x62b800]
cmp ebp, eax
jne 0x52775e
mov esi, 3
xor edi, edi
test eax, eax
je 0x527741
xchg esi, eax
mov byte [esp + 0x5e], al
xchg esi, eax
mov ecx, dword [eax + 8]
cmp ecx, 0x2fd00e80
jne 0x5275f4
cmp ebp, eax
jne 0x527754
mov ebp, dword [esp + 0xa0]
jne 0x5275f4
xchg esi, eax
cmp al, 3
xchg esi, eax
je 0x5273a2
lea eax, [0x60f6c0]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x36
mov ecx, dword [0x79b700]
test ecx, ecx
jne 0x52737d
lea ecx, [0x654de5]
mov dword [eax], ecx
lea ecx, [0x757cf0]
test ecx, ecx
je 0x52735a
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x2a
call dbg.crypto/tls.(*Conn).sendAlert
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0xcc]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x6553e9]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x38
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call dbg.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x78], ecx
lea edx, [0x60f6c0]
mov dword [esp], edx
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x78]
mov dword [eax + 4], ecx
mov ecx, dword [0x79b700]
test ecx, ecx
jne 0x527337
mov ecx, dword [esp + 0x98]
mov dword [eax], ecx
lea ecx, [0x757cf0]
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov dword [esp + 0xf4], eax
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0xf4]
jmp 0x52731c
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call dbg.crypto/tls.(*certificateVerifyMsg).marshal
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
call dbg.crypto/tls.(*finishedHash).Write
jmp 0x52711e
mov dword [esp + 0xf4], eax
mov dword [esp], eax
lea ecx, [0x654de5]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0xf4]
jmp 0x527269
mov dword [esp + 0xb8], ebp
xchg edi, eax
mov byte [esp + 0x5f], al
xchg edi, eax
lea eax, [0x614ce0]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 0xd4]
mov edx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x14]
mov ebp, dword [ecx + 0x18]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
lea edx, [0x5ec160]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
call dbg.encoding/asn1.Unmarshal
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
test eax, eax
je 0x52740d
mov edx, ecx
mov ecx, eax
mov eax, edx
jmp 0x52726f
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
test edx, edx
jne 0x5275d9
xor ecx, ecx
test ecx, ecx
jg 0x52747f
lea eax, [0x60f6c0]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x36
mov ecx, dword [0x79b700]
test ecx, ecx
jne 0x52745d
lea ecx, [0x654daf]
mov dword [eax], ecx
lea ecx, [0x757cf0]
jmp 0x52726f
mov dword [esp + 0xf4], eax
mov dword [esp], eax
lea ecx, [0x654daf]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0xf4]
jmp 0x527452
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
test edx, edx
jne 0x5275be
xor ecx, ecx
test ecx, ecx
jle 0x527427
lea edi, [esp + 0x164]
mov esi, dword [esp + 0xf8]
call fcn.0044c4de
mov eax, dword [esp + 0x1d0]
mov ecx, dword [eax + 0x4c]
mov edx, dword [eax + 0x50]
mov ebx, dword [eax + 0x54]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ebx
mov edi, esp
lea esi, [esp + 0x164]
call fcn.0044c4de
movzx ecx, byte [esp + 0x5f]
mov byte [esp + 0x34], cl
movzx ecx, byte [esp + 0x5e]
mov byte [esp + 0x35], cl
call dbg.crypto/tls.finishedHash.hashForClientCertificate
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
test ebx, ebx
je 0x527508
mov ecx, ebx
mov eax, ebp
jmp 0x52726f
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xcc], ebp
mov ebx, dword [esp + 0xd0]
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0xb8]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebp
call dbg.crypto/ecdsa.Verify
movzx eax, byte [esp + 0x18]
test al, al
je 0x527567
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xcc]
mov edx, ecx
mov ecx, eax
mov eax, edx
jmp 0x52726f
lea eax, [0x60f6c0]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1f
mov ecx, dword [0x79b700]
test ecx, ecx
jne 0x52759c
lea ecx, [0x64f3a2]
mov dword [eax], ecx
mov ecx, eax
lea eax, [0x757cf0]
jmp 0x52755c
mov dword [esp + 0xf4], eax
mov dword [esp], eax
lea ecx, [0x64f3a2]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0xf4]
jmp 0x527592
movzx ecx, byte [ecx]
test cl, cl
je 0x5275cf
mov ecx, 0xffffffff
jmp 0x52748f
mov ecx, 1
jmp 0x52748f
movzx ecx, byte [ecx]
test cl, cl
je 0x5275ea
mov ecx, 0xffffffff
jmp 0x527423
mov ecx, 1
jmp 0x527423
cmp ecx, 0xcc456746
jne 0x527741
lea ecx, [0x5ebda0]
cmp ecx, eax
jne 0x52774a
mov eax, dword [esp + 0xa0]
jne 0x527741
xchg esi, eax
cmp al, 1
xchg esi, eax
je 0x52767a
lea eax, [0x60f6c0]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x34
mov ecx, dword [0x79b700]
test ecx, ecx
jne 0x527658
lea ecx, [0x6547dc]
mov dword [eax], ecx
lea ecx, [0x757cf0]
jmp 0x52726f
mov dword [esp + 0xf4], eax
mov dword [esp], eax
lea ecx, [0x6547dc]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0xf4]
jmp 0x52764d
mov dword [esp + 0xbc], eax
mov eax, edi
lea edi, [esp + 0x130]
mov esi, dword [esp + 0xf8]
call fcn.0044c4de
mov ecx, dword [esp + 0x1d0]
mov edx, dword [ecx + 0x4c]
mov ebx, dword [ecx + 0x50]
mov ebp, dword [ecx + 0x54]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebp
mov edi, esp
lea esi, [esp + 0x130]
call fcn.0044c4de
mov byte [esp + 0x34], al
movzx eax, byte [esp + 0x5e]
mov byte [esp + 0x35], al
call dbg.crypto/tls.finishedHash.hashForClientCertificate
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x54]
mov esi, ebx
mov ebx, dword [esp + 0x58]
test ebp, ebp
je 0x5276f9
mov ecx, ebp
mov eax, ebx
jmp 0x52726f
mov ebx, dword [esp + 0xd4]
mov ebp, dword [ebx + 0x10]
mov edi, dword [ebx + 0x14]
mov ebx, dword [ebx + 0x18]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0xbc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], esi
call dbg.crypto/rsa.VerifyPKCS1v15
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
jmp 0x52726f
mov ecx, edx
mov eax, ebx
jmp 0x52726f
mov eax, 0
jmp 0x527615
mov ebp, 0
jmp 0x527229
cmp esi, 0xcc456746
jne 0x527787
mov esi, ecx
lea ecx, [0x5ebda0]
cmp ecx, eax
jne 0x52777e
mov ecx, esi
mov esi, 1
jmp 0x5271fb
mov ecx, esi
xor esi, esi
jmp 0x5271fb
lea ecx, [0x5ebda0]
mov esi, dword [esp + 0xd4]
jmp 0x52777e
mov esi, ebp
lea ebp, [0x62b800]
jmp 0x52775e
lea ecx, [0x5ebda0]
lea ebp, [0x62b800]
mov esi, dword [esp + 0xd4]
jmp 0x52777e
mov dword [esp + 0xec], edx
mov dword [esp + 0xe8], ebx
movzx eax, byte [ecx + 0xd]
mov byte [esp + 0x5f], al
movzx edx, byte [ecx + 0xe]
mov byte [esp + 0x5e], dl
mov byte [esp], al
mov byte [esp + 1], dl
mov ebx, dword [0x783688]
mov ebp, dword [0x78368c]
mov esi, dword [0x783690]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
call dbg.crypto/tls.isSupportedSignatureAndHash
movzx eax, byte [esp + 0x10]
test al, al
je 0x527837
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xec]
mov ebx, dword [esp + 0xe8]
lea ebp, [0x62b800]
movzx esi, byte [esp + 0x5e]
movzx edi, byte [esp + 0x5f]
jmp 0x5271fd
lea eax, [0x60f6c0]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x35
mov ecx, dword [0x79b700]
test ecx, ecx
jne 0x52787d
lea ecx, [0x654a89]
mov dword [eax], ecx
lea ecx, [0x757cf0]
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov dword [esp + 0xf4], eax
mov dword [esp], eax
lea ecx, [0x654a89]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0xf4]
jmp 0x527862
mov dword [esp + 0xa4], eax
mov dword [esp + 0xec], esi
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call dbg.crypto/tls.(*Conn).sendAlert
lea eax, [0x61b360]
mov dword [esp], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xc], eax
call dbg.crypto/tls.unexpectedMessageError
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d8], ecx
add esp, 0x1cc
ret
mov esi, ecx
mov ecx, 0
jmp 0x5271af
mov dword [esp + 0x1d4], edx
mov dword [esp + 0x1d8], ebx
add esp, 0x1cc
ret
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call dbg.crypto/tls.(*Conn).sendAlert
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov dword [esp + 0xe4], eax
mov dword [esp], edx
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0xe4]
mov ebx, dword [esp + 0x1d0]
jmp 0x5270c4
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xcc], ebp
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x28
call dbg.crypto/tls.(*Conn).sendAlert
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x84], ecx
lea edx, [0x604e20]
mov dword [esp], edx
lea edx, [ecx + 4]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call dbg.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test ecx, ecx
jbe 0x5281a7
mov byte [eax], 0x10
cmp ecx, 1
jbe 0x5281a0
mov ebx, dword [esp + 0x84]
mov ebp, ebx
sar ebx, 0x10
mov byte [eax + 1], bl
cmp ecx, 2
jbe 0x528199
mov ebx, ebp
sar ebp, 8
xchg ebp, ebx
mov byte [eax + 2], bl
xchg ebp, ebx
cmp ecx, 3
jbe 0x528192
mov dword [esp + 0x94], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], edx
mov byte [eax + 3], bl
lea ebx, [edx - 4]
neg ebx
sar ebx, 0x1f
and ebx, 4
add ebx, eax
lea ebp, [ecx - 4]
mov esi, dword [esp + 0xac]
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
cmp ebp, eax
jle 0x527aef
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call dbg.runtime.memmove
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xac]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x70]
mov dword [ecx + 8], edx
mov ebx, dword [0x79b700]
test ebx, ebx
jne 0x527ac4
mov ebx, dword [esp + 0x94]
mov dword [ecx], ebx
mov ecx, ebx
mov ebp, eax
mov esi, edx
jmp 0x526f8a
mov dword [esp], ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x94]
jmp 0x527ab9
mov eax, ebp
jmp 0x527a81
mov dword [esp + 0xec], esi
mov dword [esp + 0xa4], ecx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call dbg.crypto/tls.(*Conn).sendAlert
lea eax, [0x61b460]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xc], eax
call dbg.crypto/tls.unexpectedMessageError
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d8], ecx
add esp, 0x1cc
ret
mov esi, eax
mov eax, 0
jmp 0x526f5f
mov dword [esp + 0x1d4], ebx
mov dword [esp + 0x1d8], edx
add esp, 0x1cc
ret
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov dword [esp + 0xec], ebp
mov dword [esp + 0xa4], ebx
mov dword [esp], eax
mov byte [esp + 4], 0xa
call dbg.crypto/tls.(*Conn).sendAlert
lea eax, [0x61b1e0]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xc], eax
call dbg.crypto/tls.unexpectedMessageError
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov ebp, edx
mov edx, 0
jmp 0x526e11
mov eax, edx
mov ecx, ebx
xor edx, edx
xor ebx, ebx
jmp 0x526f4f
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d8], ecx
add esp, 0x1cc
ret
lea edi, [esp + 0x198]
xor eax, eax
call fcn.0044c043
lea ecx, [0x5fdc00]
mov dword [esp], ecx
call dbg.runtime.newobject
mov ecx, dword [esp + 4]
movzx edx, word [0x67aa44]
mov word [ecx], dx
test byte [ecx], al
mov dword [esp + 0x1ac], 2
mov dword [esp + 0x1b0], 2
mov dword [esp + 0x1a8], ecx
mov ecx, dword [esp + 0xe0]
movzx edx, word [ecx + 0x20]
cmp dx, 0x303
jb 0x527ce0
mov byte [esp + 0x1a4], 1
mov eax, dword [0x783690]
mov edx, dword [0x78368c]
mov ebx, dword [0x783688]
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1b4], ebx
mov eax, dword [ecx + 0x24]
mov eax, dword [eax + 0x48]
test eax, eax
jne 0x527d68
lea eax, [esp + 0x198]
mov dword [esp], eax
call dbg.crypto/tls.(*certificateRequestMsg).marshal
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
call dbg.crypto/tls.(*finishedHash).Write
lea eax, [esp + 0x198]
mov dword [esp], eax
call dbg.crypto/tls.(*certificateRequestMsg).marshal
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xe0]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call dbg.crypto/tls.(*Conn).writeRecord
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x526d03
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov dword [esp], eax
call dbg.crypto/x509.(*CertPool).Subjects
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1c0], edx
jmp 0x527cea
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x84], ecx
lea edx, [0x604e20]
mov dword [esp], edx
lea ebx, [ecx + 4]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call dbg.runtime.makeslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test ecx, ecx
jbe 0x5281ca
mov byte [edx], 0xc
cmp ecx, 1
jbe 0x5281c3
mov ebx, dword [esp + 0x84]
mov ebp, ebx
sar ebx, 0x10
mov byte [edx + 1], bl
cmp ecx, 2
jbe 0x5281bc
mov ebx, ebp
sar ebp, 8
xchg ebp, eax
mov byte [edx + 2], al
xchg ebp, eax
cmp ecx, 3
jbe 0x5281b5
mov dword [esp + 0x6c], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x8c], edx
mov byte [edx + 3], bl
lea ebx, [eax - 4]
neg ebx
sar ebx, 0x1f
and ebx, 4
add ebx, edx
lea ebp, [ecx - 4]
mov esi, dword [esp + 0xa8]
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
cmp ebp, edx
jle 0x527eaf
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], edx
call dbg.runtime.memmove
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xa8]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x6c]
mov dword [ecx + 8], edx
mov ebx, dword [0x79b700]
test ebx, ebx
jne 0x527e8b
mov ebx, dword [esp + 0x8c]
mov dword [ecx], ebx
mov ecx, eax
jmp 0x526cbd
mov dword [esp], ecx
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x8c]
jmp 0x527e84
mov edx, ebp
jmp 0x527e4c
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x84], ecx
lea edx, [0x604e20]
mov dword [esp], edx
lea ebx, [ecx + 4]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call dbg.runtime.makeslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test ecx, ecx
jbe 0x5281e6
mov byte [edx], 0xc
cmp ecx, 1
jbe 0x5281df
mov ebx, dword [esp + 0x84]
mov ebp, ebx
sar ebx, 0x10
mov byte [edx + 1], bl
cmp ecx, 2
jbe 0x5281d8
mov ebx, ebp
sar ebp, 8
xchg ebp, eax
mov byte [edx + 2], al
xchg ebp, eax
cmp ecx, 3
jbe 0x5281d1
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x90], edx
mov byte [edx + 3], bl
lea ebx, [eax - 4]
neg ebx
sar ebx, 0x1f
and ebx, 4
add ebx, edx
lea ebp, [ecx - 4]
mov esi, dword [esp + 0xa8]
mov edi, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
cmp ebp, edi
jle 0x527fc7
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], edi
call dbg.runtime.memmove
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xa8]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x74]
mov dword [ecx + 8], edx
mov ebx, dword [0x79b700]
test ebx, ebx
jne 0x527f9c
mov ebx, dword [esp + 0x90]
mov dword [ecx], ebx
mov ebx, eax
mov ecx, edx
mov edx, dword [esp + 0x90]
jmp 0x526c8b
mov dword [esp], ecx
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x90]
jmp 0x527f8c
mov edi, ebp
jmp 0x527f54
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xc0], ebx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x28
call dbg.crypto/tls.(*Conn).sendAlert
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
lea eax, [0x61d660]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0xd8], eax
mov byte [eax + 0xc], 1
mov ecx, dword [esp + 0x1d0]
mov edx, dword [ecx + 0x64]
mov ebx, dword [edx + 0x1c]
mov ebp, dword [edx + 0x18]
mov edx, dword [edx + 0x14]
mov dword [eax + 0x14], ebp
mov dword [eax + 0x18], ebx
mov ebx, dword [0x79b700]
lea ebp, [eax + 0x10]
test ebx, ebx
jne 0x5280d9
mov dword [eax + 0x10], edx
mov dword [esp], eax
call dbg.crypto/tls.(*certificateStatusMsg).marshal
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
call dbg.crypto/tls.(*finishedHash).Write
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
call dbg.crypto/tls.(*certificateStatusMsg).marshal
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xe0]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call dbg.crypto/tls.(*Conn).writeRecord
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x5280c4
mov eax, dword [esp + 0x1d0]
jmp 0x526bfb
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov dword [esp], ebp
mov dword [esp + 4], edx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0xd8]
jmp 0x52805a
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov dword [esp], ebp
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov edx, dword [esp + 0xdc]
jmp 0x526b83
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
add esp, 0x1cc
ret
mov dword [esp], ebp
mov dword [esp + 4], 0
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0x1d0]
jmp 0x526ab5
mov edx, dword [esp + 0x1d0]
jmp 0x526ab5
lea eax, [0x636da0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xfc]
mov dword [esp + 8], eax
call dbg.runtime.typedmemmove
jmp 0x526a6a
xor ecx, ecx
jmp 0x526a06
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.morestack_noctxt
jmp dbg.crypto/tls.(*serverHandshakeState).doFullHandshake