Function at 0x515f70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c36a0
mov eax, dword fs:[0]
push eax
sub esp, 0x160
mov eax, dword [0x68cc00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x154], edi
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x118]
mov esi, dword [ebp + 0x18]
xorps xmm0, xmm0
mov dword [ebp - 0x138], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x13c], eax
movzx eax, byte [esi + 0x12a]
push eax
push str.readTlsRecord
push esi
movq qword [ebp - 0x118], xmm0
mov dword [ebp - 0x110], 0
call fcn.00447f20
mov eax, dword [ebp - 0x138]
lea ecx, [eax + 0x4bc]
mov dword [eax + 0x4c0], 0
mov dword [ecx], 0
mov dword [ebp - 0x160], ecx
lea ecx, [eax + 0x4c0]
mov dword [ebp - 0x15c], ecx
lea ecx, [eax + 0x4c4]
mov dword [ebp - 0x158], ecx
mov dword [ecx], 0
lea ecx, [eax + 0x4e8]
mov dword [ebp - 4], 0
mov byte [eax + 0x4c8], 0
call fcn.00436ad0
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00436ad0
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x504]
call fcn.00436ad0
lea eax, [edi + 0x78]
mov dword [ebp - 0x130], 0
mov ecx, eax
mov dword [ebp - 0x14c], eax
call fcn.00436ad0
lea eax, [ebp - 0x130]
push eax
push esi
push dword [ebp - 0x13c]
lea ecx, [edi + 0x78]
push dword [ebp + 0x10]
push ecx
mov ecx, dword [ebp - 0x140]
push 5
call fcn.0056d260
mov byte [ebp - 0x10b], al
test al, al
je 0x5174a0
lea ecx, [edi + 0x78]
call fcn.00402f10
cmp eax, 5
jne 0x5174a0
lea ecx, [edi + 0x78]
call fcn.00438b90
mov edx, eax
mov dword [ebp - 0x108], edx
mov al, byte [edx]
lea ecx, [edx + 2]
mov dword [ebp - 0x168], ecx
test al, al
jns 0x5166b9
cmp byte [ecx], 1
jne 0x5166b9
mov eax, dword [esi]
mov ecx, esi
push str.Received_SSL_2.0_ClientHello.
call dword [eax + 0x18]
mov eax, dword [ebp - 0x168]
cmp byte [eax], 1
jne 0x51613d
mov eax, dword [esi]
mov ecx, esi
push str.Cannot_accept_SSL_2.0_connections.
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x138]
push esi
push dword [ebp - 0x140]
mov esi, dword [ebp - 0x13c]
push 0x47
push esi
call fcn.00519600
mov dword [esi + 0x28], 0x7d
jmp 0x517550
mov edx, dword [ebp - 0x108]
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x7f
shl ecx, 8
or ecx, eax
cmp byte [esi + 0x12a], 0
mov dword [ebp - 0x150], ecx
je 0x51617a
push ecx
push str.recLen
mov ecx, esi
call fcn.00448710
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x108]
cmp byte [edx], 0
mov dword [ebp - 0x148], 2
jl 0x5161d7
cmp byte [esi + 0x12a], 0
mov al, byte [edx + 3]
mov byte [ebp - 0x11c], al
mov al, byte [edx + 4]
mov byte [ebp - 0x11b], al
movzx eax, byte [edx + 2]
mov dword [ebp - 0x168], eax
lea eax, [ecx - 2]
mov dword [ebp - 0x108], eax
je 0x51622c
mov eax, dword [esi]
mov ecx, esi
push str.3_byte_record_header...
call dword [eax + 0x18]
push dword [ebp - 0x168]
mov ecx, esi
push str.paddingLen
call fcn.00448710
jmp 0x51621a
cmp byte [esi + 0x12a], 0
mov al, byte [edx + 2]
mov byte [ebp - 0x11c], al
mov al, byte [edx + 3]
mov byte [ebp - 0x11b], al
mov al, byte [edx + 4]
mov byte [ebp - 0x11a], al
lea eax, [ecx - 3]
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x148], 3
je 0x51622c
mov eax, dword [esi]
mov ecx, esi
push str.2_byte_record_header...
call dword [eax + 0x18]
push dword [ebp - 0x108]
mov ecx, esi
push str.nToRead
call fcn.00448710
lea ecx, [edi + 0x78]
call fcn.00436ad0
push dword [ebp - 0x148]
lea eax, [ebp - 0x11c]
push eax
lea ecx, [edi + 0x78]
call fcn.004351f0
mov ecx, dword [ebp - 0x140]
lea eax, [ebp - 0x130]
push eax
mov eax, dword [ebp + 0x10]
push esi
push dword [ebp - 0x13c]
push eax
lea eax, [edi + 0x78]
push eax
push dword [ebp - 0x108]
call fcn.0056d260
mov byte [ebp - 0x131], al
test al, al
je 0x51666a
lea ecx, [edi + 0x78]
call fcn.00402f10
cmp eax, dword [ebp - 0x150]
jne 0x51666a
lea ecx, [edi + 0x78]
call fcn.00438b90
mov dword [ebp - 0x144], eax
lea ecx, [edi + 0x78]
mov eax, dword [ebp - 0x138]
push ecx
lea ecx, [eax + 0x324]
mov byte [eax + 0x520], 1
call fcn.00435190
cmp byte [esi + 0x12a], 0
je 0x5162e3
lea ecx, [edi + 0x78]
call fcn.00402f10
push eax
lea ecx, [edi + 0x78]
call fcn.00438b90
push eax
push str.fullRecord
mov ecx, esi
call fcn.004484c0
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x144]
mov edx, dword [ebp - 0x15c]
mov dword [eax], 0x16
movzx eax, byte [ecx + 1]
mov dword [edx], eax
movzx eax, byte [ecx + 2]
mov ecx, dword [ebp - 0x158]
mov dword [ecx], eax
call fcn.0050cc50
mov dword [ebp - 0x148], eax
test eax, eax
je 0x517550
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x24]
movq qword [ebp - 0x24], xmm0
call fcn.0040ade0
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x1c], ecx
mov byte [ebp - 4], 1
mov eax, dword [eax]
mov dword [ecx + 0x2c], eax
mov eax, dword [ebp - 0x158]
mov eax, dword [eax]
mov dword [ecx + 0x30], eax
mov ecx, dword [ebp - 0x144]
add ecx, 3
mov dword [ebp - 0x144], ecx
movzx edx, byte [ecx]
movzx eax, byte [ecx + 1]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
mov dword [ebp - 0x164], eax
movzx eax, byte [ecx + 3]
or dword [ebp - 0x164], eax
movzx eax, byte [ecx + 4]
shl eax, 8
mov dword [ebp - 0x108], eax
movzx eax, byte [ecx + 5]
or dword [ebp - 0x108], eax
cmp byte [esi + 0x12a], 0
mov dword [ebp - 0x150], edx
je 0x5163e9
push edx
push str.cipherListLen
mov ecx, esi
call fcn.00448710
push dword [ebp - 0x164]
mov ecx, esi
push str.sessionIdLen
call fcn.00448710
push dword [ebp - 0x108]
mov ecx, esi
push str.challengeLen
call fcn.00448710
mov edx, dword [ebp - 0x150]
lea eax, [edx - 3]
cmp eax, 0xbd
ja 0x516660
mov ecx, dword [ebp - 0x150]
mov eax, 0xaaaaaaab
mul edx
shr edx, 1
mov dword [ebp - 0x14c], edx
lea eax, [edx + edx*2]
sub ecx, eax
jne 0x516660
cmp dword [ebp - 0x164], 0x20
jbe 0x516453
push str.Invalid_session_ID_length
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x138]
push esi
push dword [ebp - 0x140]
push 0xa
push dword [ebp - 0x13c]
call fcn.00519600
lea ecx, [ebp - 0x24]
call fcn.0040aeb0
jmp 0x517550
mov eax, dword [ebp - 0x108]
add eax, 0xfffffff8
cmp eax, 0x18
ja 0x516656
mov eax, dword [ebp - 0x144]
add eax, 6
mov dword [ebp - 0x144], eax
test edx, edx
je 0x51658a
mov edi, dword [ebp - 0x148]
inc eax
mov dword [ebp - 0x168], eax
nop dword [eax]
mov cl, byte [eax + 1]
movzx edx, cl
mov dword [ebp - 0x18], edx
movzx edx, byte [eax - 1]
movzx eax, byte [eax]
shl edx, 8
or edx, eax
mov byte [ebp - 0x131], cl
cmp byte [esi + 0x12a], 0
mov dword [ebp - 0x16c], edx
je 0x5164e7
push dword [ebp - 0x18]
mov ecx, esi
push str.cipherKind
call fcn.00448710
push dword [ebp - 0x16c]
mov ecx, esi
push str.key_len
call fcn.00448710
mov cl, byte [ebp - 0x131]
mov edx, dword [ebp - 0x16c]
mov word [ebp - 0x10c], 0x400
mov word [ebp - 0x120], 0x500
mov word [ebp - 0x124], 0xa00
mov word [ebp - 0x128], 0x2f00
mov word [ebp - 0x12c], 0x3500
test edx, edx
jne 0x516562
cmp cl, 4
jne 0x516525
lea eax, [ebp - 0x10c]
jmp 0x516557
cmp cl, 5
jne 0x516532
lea eax, [ebp - 0x120]
jmp 0x516557
cmp cl, 0xa
jne 0x51653f
lea eax, [ebp - 0x124]
jmp 0x516557
cmp cl, 0x2f
jne 0x51654c
lea eax, [ebp - 0x128]
jmp 0x516557
cmp cl, 0x35
jne 0x516562
lea eax, [ebp - 0x12c]
push 2
push eax
lea ecx, [edi + 0x6c]
call fcn.004351f0
mov eax, dword [ebp - 0x168]
add eax, 3
sub dword [ebp - 0x14c], 1
mov dword [ebp - 0x168], eax
jne 0x516490
mov edi, dword [ebp - 0x154]
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x148]
add eax, dword [ebp - 0x150]
push dword [ebp - 0x164]
mov dword [ebp - 0x144], eax
push eax
lea ecx, [ecx + 0x50]
call fcn.004351f0
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x144]
push dword [ebp - 0x108]
add eax, dword [ebp - 0x164]
push eax
lea ecx, [ecx + 0x34]
call fcn.004351f0
mov ecx, dword [ebp - 0x148]
push 0
lea ecx, [ecx + 0x88]
call fcn.00435440
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
call fcn.00434a00
mov edx, dword [ebp - 0x138]
push esi
mov byte [ebp - 4], 2
movzx eax, byte [edx + 0x86]
lea ecx, [edx + 0x4cc]
push ecx
push dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x148]
push eax
movzx eax, byte [edx + 0xb8]
push eax
lea eax, [edx + 0x130]
push eax
lea eax, [ebp - 0x40]
push eax
push 0
push 0
push edx
call fcn.00504990
lea ecx, [ebp - 0x40]
call fcn.00434c20
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call fcn.0040aeb0
jmp 0x51688d
push str.Invalid_challenge_length
jmp 0x516425
push str.Invalid_cipher_list_length
jmp 0x516425
mov eax, dword [esi]
mov ecx, esi
push str.Failed_to_read_TLS_record__1_
call dword [eax + 0x14]
movzx eax, byte [ebp - 0x131]
mov ecx, esi
push eax
push 0x606b64
call fcn.00448710
push dword [ebp - 0x150]
mov ecx, esi
push str.recLen
call fcn.00448710
mov ecx, dword [ebp - 0x14c]
call fcn.00402f10
push eax
push str.dbSize
mov ecx, esi
call fcn.00448710
jmp 0x517550
mov edi, dword [ebp - 0x160]
movzx eax, al
mov dword [edi], eax
movzx eax, byte [edx + 1]
mov edi, dword [ebp - 0x15c]
mov dword [ebp - 0x18], eax
mov dword [edi], eax
mov al, byte [ecx]
mov ecx, dword [ebp - 0x158]
mov edi, dword [ebp - 0x154]
mov byte [ebp - 0x131], al
movzx eax, al
mov dword [ecx], eax
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 4]
and ecx, 0x7f
shl ecx, 8
or ecx, eax
cmp byte [esi + 0x12a], 0
mov dword [ebp - 0x108], ecx
je 0x516822
cmp dword [ebp - 0x18], 3
jne 0x51676b
mov al, byte [ebp - 0x131]
test al, al
jne 0x51672b
mov dword [ebp - 0x148], str.SSL_3.0
jmp 0x516793
cmp al, 1
jne 0x51673b
mov dword [ebp - 0x148], str.TLS_1.0
jmp 0x516793
cmp al, 2
jne 0x51674b
mov dword [ebp - 0x148], str.TLS_1.1
jmp 0x516793
cmp al, 3
jne 0x51675b
mov dword [ebp - 0x148], str.TLS_1.2
jmp 0x516793
cmp al, 4
jne 0x51676b
mov dword [ebp - 0x148], str.TLS_1.3
jmp 0x516793
push dword [ebp - 0x158]
lea eax, [ebp - 0x44]
push dword [ebp - 0x15c]
push str.v_d._d
push 0x20
push eax
call fcn.00446c00
lea eax, [ebp - 0x44]
add esp, 0x14
mov dword [ebp - 0x148], eax
mov ecx, dword [ebp - 0x160]
mov eax, dword [ecx]
cmp eax, 0x14
jne 0x5167a7
mov eax, str.ChangeCipherSpec
jmp 0x5167e8
cmp eax, 0x15
jne 0x5167b3
mov eax, str.Alert
jmp 0x5167e8
cmp eax, 0x16
jne 0x5167bf
mov eax, str.Handshake
jmp 0x5167e8
cmp eax, 0x17
jne 0x5167cb
mov eax, str.Application
jmp 0x5167e8
push ecx
push str.ct_d
lea eax, [ebp - 0x64]
push 0x20
push eax
call fcn.00446b40
mov ecx, dword [ebp - 0x160]
lea eax, [ebp - 0x64]
add esp, 0x10
cmp dword [ecx], 0x17
je 0x516822
lea ecx, [ebp - 0x108]
push ecx
push eax
push dword [ebp - 0x148]
lea eax, [ebp - 0x104]
push str._s___s__sz_d
push 0x80
push eax
call fcn.00446cd0
mov eax, dword [esi]
lea ecx, [ebp - 0x104]
add esp, 0x18
push ecx
mov ecx, esi
call dword [eax + 0x18]
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00436ad0
mov ecx, dword [ebp - 0x140]
lea eax, [ebp - 0x130]
push eax
mov eax, dword [ebp + 0x10]
push esi
push dword [ebp - 0x13c]
push eax
mov eax, dword [ebp - 0x138]
add eax, 0x4cc
push eax
push dword [ebp - 0x108]
call fcn.0056d260
mov byte [ebp - 0x10b], al
test al, al
je 0x517422
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402f10
cmp eax, dword [ebp - 0x108]
jne 0x517422
mov eax, dword [ebp - 0x160]
cmp dword [eax], 0x14
jne 0x5168ae
mov eax, dword [ebp - 0x138]
cmp dword [eax + 0x44], 3
jne 0x5168ae
cmp dword [eax + 0x48], 4
je 0x517410
cmp byte [edi + 0x98], 0
je 0x517119
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
call fcn.00434a00
mov ecx, dword [ebp - 0x138]
mov byte [ebp - 4], 3
cmp dword [ecx + 0x44], 3
jne 0x5168f3
cmp dword [ecx + 0x48], 4
mov byte [ebp - 0x131], 1
je 0x5168fa
mov byte [ebp - 0x131], 0
mov eax, dword [edi + 0xac]
cmp eax, 6
jne 0x516be7
lea ecx, [ecx + 0x4cc]
call fcn.00402f10
lea ecx, [edi + 0x6b0]
mov dword [ebp - 0x150], eax
call fcn.00436ad0
mov al, byte [ebp - 0x131]
movzx ecx, al
xor ecx, 1
lea ecx, [ecx*8 + 0x10]
cmp dword [ebp - 0x150], ecx
jae 0x516985
mov eax, dword [esi]
mov ecx, esi
push str.GCM_fragment_not_large_enough.
call dword [eax + 0x14]
push dword [ebp - 0x150]
push str.tlsMsgLen
mov ecx, esi
call fcn.00448710
push esi
push dword [ebp - 0x140]
push 0x14
push dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x138]
call fcn.00519600
lea ecx, [ebp - 0x40]
call fcn.00434c20
jmp 0x517550
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
test al, al
je 0x51699e
call fcn.00402f10
mov ecx, eax
jmp 0x5169c0
call fcn.00402f10
sub eax, 0x18
lea ecx, [edi + 0x6b0]
mov dword [ebp - 0x18], eax
lea eax, [edi + 0xec]
push 8
push eax
call fcn.004351f0
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x160]
push 5
mov byte [ebp - 0x14], cl
mov al, byte [eax]
mov byte [ebp - 0x18], al
mov eax, dword [ebp - 0x15c]
mov al, byte [eax]
mov byte [ebp - 0x17], al
mov eax, dword [ebp - 0x158]
mov al, byte [eax]
mov byte [ebp - 0x16], al
mov eax, ecx
shr eax, 8
lea ecx, [edi + 0x6b0]
mov byte [ebp - 0x15], al
lea eax, [ebp - 0x18]
push eax
call fcn.004351f0
cmp byte [esi + 0x12b], 0
je 0x516a19
lea eax, [edi + 0x6b0]
mov ecx, esi
push eax
push str.aesGcmAad
call fcn.004485a0
mov eax, dword [ebp - 0x138]
cmp dword [eax + 0x44], 3
jne 0x516ac7
cmp dword [eax + 0x48], 4
jne 0x516ac7
mov eax, dword [edi + 0xec]
mov ecx, dword [edi + 0xf0]
mov dword [ebp - 0x20], eax
lea eax, [edi + 0xd0]
mov dword [ebp - 0x1c], ecx
mov ecx, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x18], eax
call fcn.00402f10
cmp eax, 0xc
je 0x516a7a
mov eax, dword [esi]
mov ecx, esi
push str.m_fixedIv_for_TLS_1.3_GCM_should_be_12_bytes
call dword [eax + 0x14]
lea ecx, [ebp - 0x40]
call fcn.00434c20
jmp 0x517550
mov ecx, dword [ebp - 0x18]
call fcn.00438b90
mov edi, eax
xor edx, edx
lea eax, [ebp - 0x24]
sub edi, eax
nop dword [eax + eax]
lea ecx, [ebp - 0x24]
add ecx, edx
inc edx
mov al, byte [ecx + edi]
xor byte [ecx], al
cmp edx, 0xc
jl 0x516a90
cmp byte [esi + 0x12b], 0
mov edi, dword [ebp - 0x154]
je 0x516b36
push 0xc
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
push str.aesGcmNonce
call fcn.004484c0
jmp 0x516b36
lea ecx, [edi + 0xd0]
call fcn.00402f10
cmp eax, 4
je 0x516b0a
push str.GCM_fixed_IV_not_equal_to_4.
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x138]
push esi
push dword [ebp - 0x140]
push 0x14
push dword [ebp - 0x13c]
call fcn.00519600
lea ecx, [ebp - 0x40]
call fcn.00434c20
jmp 0x517550
lea ecx, [edi + 0xd0]
call fcn.00438b90
mov ecx, dword [ebp - 0x138]
mov eax, dword [eax]
lea ecx, [ecx + 0x4cc]
mov dword [ebp - 0x24], eax
call fcn.00438b90
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], eax
push 0xc
lea ecx, [ebp - 0x24]
lea eax, [edi + 0x660]
push ecx
mov ecx, eax
mov dword [ebp - 0x14c], eax
call fcn.004de420
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00438b90
mov edi, dword [ebp - 0x150]
add edi, 0xfffffff0
add edi, eax
mov eax, dword [ebp - 0x154]
add eax, 0x6cc
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.00436ad0
push 0x10
push edi
mov edi, dword [ebp - 0x18]
mov ecx, edi
call fcn.004351f0
cmp byte [esi + 0x12b], 0
je 0x516ba3
push edi
push str.expected_aesGcmAuthTag
mov ecx, esi
call fcn.004485a0
mov ecx, dword [ebp - 0x138]
push 0x10
lea ecx, [ecx + 0x4cc]
call fcn.0043ab20
mov edi, dword [ebp - 0x154]
push esi
push dword [ebp - 0x14c]
mov ecx, dword [edi + 0x730]
lea eax, [edi + 0xf8]
push eax
call fcn.005907c0
test al, al
jne 0x516dbe
push str.GCM_decrypt_setup_failed.
jmp 0x516adc
cmp eax, 7
jne 0x516dc4
lea ecx, [ecx + 0x4cc]
call fcn.00402f10
mov dword [ebp - 0x14c], eax
cmp eax, 0x10
jae 0x516c10
push str.AEAD_fragment_not_large_enough.
jmp 0x516adc
lea ecx, [edi + 0x6b0]
call fcn.00436ad0
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402f10
cmp byte [ebp - 0x131], 0
je 0x516c39
mov ecx, eax
jmp 0x516c56
sub eax, 0x10
lea ecx, [edi + 0x6b0]
mov dword [ebp - 0x18], eax
lea eax, [edi + 0xec]
push 8
push eax
call fcn.004351f0
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x160]
push 5
mov byte [ebp - 0x14], cl
mov al, byte [eax]
mov byte [ebp - 0x18], al
mov eax, dword [ebp - 0x15c]
mov al, byte [eax]
mov byte [ebp - 0x17], al
mov eax, dword [ebp - 0x158]
mov al, byte [eax]
mov byte [ebp - 0x16], al
mov eax, ecx
shr eax, 8
lea ecx, [edi + 0x6b0]
mov byte [ebp - 0x15], al
lea eax, [ebp - 0x18]
push eax
call fcn.004351f0
mov eax, dword [edi + 0xec]
mov ecx, dword [edi + 0xf0]
mov dword [ebp - 0x20], eax
lea eax, [edi + 0xd0]
mov dword [ebp - 0x1c], ecx
mov ecx, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x18], eax
call fcn.00402f10
cmp eax, 0xc
je 0x516cda
mov eax, dword [esi]
mov ecx, esi
push str.m_fixedIv_should_be_12_bytes
call dword [eax + 0x14]
lea ecx, [ebp - 0x40]
call fcn.00434c20
jmp 0x517550
mov ecx, dword [ebp - 0x18]
call fcn.00438b90
mov edi, eax
xor edx, edx
lea eax, [ebp - 0x24]
sub edi, eax
nop dword [eax + eax]
lea ecx, [ebp - 0x24]
add ecx, edx
inc edx
mov al, byte [ecx + edi]
xor byte [ecx], al
cmp edx, 0xc
jl 0x516cf0
mov edi, dword [ebp - 0x154]
lea ecx, [ebp - 0x24]
push 0xc
push ecx
lea ecx, [edi + 0x660]
call fcn.004de420
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00438b90
mov ecx, dword [ebp - 0x14c]
add ecx, 0xfffffff0
add eax, ecx
lea ecx, [edi + 0x6cc]
mov dword [ebp - 0x18], eax
call fcn.00436ad0
push 0x10
push dword [ebp - 0x18]
lea ecx, [edi + 0x6cc]
call fcn.004351f0
mov ecx, dword [ebp - 0x138]
push 0x10
lea ecx, [ecx + 0x4cc]
call fcn.0043ab20
mov edx, dword [ebp - 0x154]
mov eax, edi
push esi
add edx, 0x660
mov ecx, dword [eax + 0x730]
lea edi, [eax + 0xf8]
push edi
push edx
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
mov eax, dword [ebp - 0x154]
mov edx, dword [ebp - 0x154]
push esi
add edx, 0x660
mov ecx, dword [eax + 0x730]
push edx
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
test al, al
jne 0x516db8
push str.AEAD_decrypt_setup_failed.
jmp 0x516adc
mov edi, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x138]
mov al, byte [esi + 0x129]
lea ecx, [ecx + 0x4cc]
mov byte [ebp - 0x10b], al
mov al, byte [esi + 0x12a]
mov byte [esi + 0x129], al
lea eax, [ebp - 0x40]
cmp dword [edi + 0xac], 6
push esi
push eax
jne 0x516f18
call fcn.00402f10
cmp byte [ebp - 0x131], 0
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
je 0x516ecd
push eax
call fcn.00438b90
mov ecx, dword [edi + 0x730]
push eax
lea eax, [edi + 0x660]
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.004dcd40
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x131], al
call fcn.00402f10
test eax, eax
je 0x516e66
lea ecx, [ebp - 0x40]
call fcn.004390f0
test al, al
jne 0x516e66
push 1
lea ecx, [ebp - 0x40]
call fcn.0043ab20
lea ecx, [ebp - 0x40]
call fcn.00402f10
test eax, eax
jne 0x516e44
lea ecx, [ebp - 0x40]
call fcn.004390f0
movzx ecx, al
sub al, 0x14
mov dword [ebp - 0x14c], ecx
cmp al, 3
ja 0x516e92
push 1
lea ecx, [ebp - 0x40]
call fcn.0043ab20
mov eax, dword [ebp - 0x14c]
jmp 0x516fad
mov edi, dword [ebp - 0x13c]
mov ecx, esi
push str.Invalid_TLS_1.3_actual_content_type..
mov dword [edi + 0x28], 0x7f
mov eax, dword [esi]
call dword [eax + 0x14]
mov eax, dword [ebp - 0x14c]
mov ecx, esi
push eax
push str.actualContentType
call fcn.00448710
push esi
push dword [ebp - 0x140]
push 0x14
push edi
jmp 0x51696d
sub eax, 8
push eax
call fcn.00438b90
add eax, 8
mov ecx, dword [edi + 0x730]
push eax
lea eax, [edi + 0x660]
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.004dcd40
mov cl, byte [ebp - 0x10b]
mov byte [esi + 0x129], cl
test al, al
jne 0x516ff5
mov eax, dword [esi]
mov ecx, esi
push str.Failed_to_decrypt_SSL_TLS_record.
call dword [eax + 0x14]
jmp 0x51695e
call fcn.00402f10
mov ecx, dword [ebp - 0x138]
push eax
lea ecx, [ecx + 0x4cc]
call fcn.00438b90
cmp byte [ebp - 0x131], 0
je 0x516ed9
mov ecx, dword [edi + 0x730]
push eax
lea eax, [edi + 0x660]
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.004dcd40
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x131], al
call fcn.00402f10
test eax, eax
je 0x516f86
lea ecx, [ebp - 0x40]
call fcn.004390f0
test al, al
jne 0x516f86
push 1
lea ecx, [ebp - 0x40]
call fcn.0043ab20
lea ecx, [ebp - 0x40]
call fcn.00402f10
test eax, eax
jne 0x516f64
lea ecx, [ebp - 0x40]
call fcn.004390f0
movzx ecx, al
sub al, 0x14
mov dword [ebp - 0x14c], ecx
cmp al, 3
ja 0x516fd8
push 1
lea ecx, [ebp - 0x40]
call fcn.0043ab20
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x160]
mov dword [ecx], eax
mov eax, dword [ebp - 0x15c]
mov dword [eax], 3
mov eax, dword [ebp - 0x158]
mov dword [eax], 4
mov al, byte [ebp - 0x131]
jmp 0x516ef3
mov eax, dword [esi]
mov ecx, esi
push str.Invalid_TLS_1.3_actual_content_type.
call dword [eax + 0x14]
mov eax, dword [ebp - 0x14c]
push eax
push str.actualContentType
jmp 0x516957
mov eax, dword [edi + 0xac]
cmp eax, 6
jne 0x5170ac
mov ecx, dword [edi + 0x730]
lea eax, [edi + 0x660]
push esi
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.00590700
test al, al
jne 0x517033
mov eax, dword [esi]
mov ecx, esi
push str.GCM_decrypt_finalize_failed.
call dword [eax + 0x14]
jmp 0x51695e
cmp byte [esi + 0x12b], 0
je 0x517048
mov eax, dword [esi]
mov ecx, esi
push str.gcm_decrypt_finalize_success.
call dword [eax + 0x18]
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0x40]
push eax
lea ecx, [ecx + 0x4cc]
call fcn.0043ab90
mov ecx, dword [ebp - 0x138]
mov byte [ecx + 0x4c8], 1
mov eax, dword [edi + 0xac]
cmp eax, 6
je 0x51710d
cmp eax, 0x63
je 0x51710d
cmp eax, 7
je 0x51710d
push esi
lea ecx, [ecx + 0x4cc]
call fcn.0043b270
test al, al
jne 0x5170e6
mov eax, dword [esi]
mov ecx, esi
push str.Invalid_block_cipher_padding_detected.
call dword [eax + 0x14]
jmp 0x51695e
cmp eax, 7
jne 0x517048
mov ecx, dword [edi + 0x730]
lea edx, [edi + 0x660]
push esi
push edx
lea edx, [edi + 0xf8]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x517048
mov eax, dword [esi]
mov ecx, esi
push str.AEAD_decrypt_finalize_failed.
call dword [eax + 0x14]
jmp 0x51695e
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.004390f0
mov ecx, dword [ebp - 0x138]
movzx eax, al
inc eax
push eax
lea ecx, [ecx + 0x4cc]
call fcn.0043ab20
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.00434c20
mov eax, dword [edi + 0xac]
cmp eax, 6
je 0x5173f6
cmp eax, 7
je 0x5173f6
mov ecx, dword [edi + 0xb0]
test ecx, ecx
je 0x5173f6
mov eax, 0x10
cmp ecx, 1
jne 0x517155
mov dword [ebp - 0x144], 0x14
jmp 0x517177
cmp ecx, 7
jne 0x517166
mov dword [ebp - 0x144], 0x20
jmp 0x517177
cmp ecx, 2
mov edx, 0x30
cmove eax, edx
mov dword [ebp - 0x144], eax
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402f10
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x144]
jae 0x5171be
mov eax, dword [esi]
mov ecx, esi
push str.SSL_TLS_record_shorter_than_MAC_length_
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x138]
push esi
push dword [ebp - 0x140]
push 0x14
push dword [ebp - 0x13c]
call fcn.00519600
jmp 0x517550
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
call fcn.00434a00
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x18]
push eax
sub ecx, eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x138]
push ecx
add eax, 0x4cc
lea ecx, [ebp - 0x40]
push eax
call fcn.004361c0
mov ecx, dword [ebp - 0x138]
push dword [ebp - 0x144]
lea ecx, [ecx + 0x4cc]
call fcn.0043ab20
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x150], 0
cmp dword [eax], 3
jne 0x5172d7
mov eax, dword [ebp - 0x158]
cmp dword [eax], 2
jl 0x5172d7
cmp dword [edi + 0xc4], 0
jbe 0x5172d7
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402f10
cmp eax, dword [edi + 0xc4]
jb 0x517299
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402f10
mov ecx, dword [edi + 0xc4]
lea edx, [ebp - 0x84]
push esi
sub eax, ecx
push edx
push eax
push ecx
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00438ba0
jmp 0x517302
mov eax, dword [esi]
mov ecx, esi
push str.Message_not_long_enough_for_the_MAC.
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402f10
push eax
push str.tlsMsgSize
mov ecx, esi
call fcn.00448710
push dword [edi + 0xc4]
mov ecx, esi
push str.cipherSuiteRecordIvLen
call fcn.00448710
jmp 0x51732a
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0x84]
push esi
push eax
lea ecx, [ecx + 0x4cc]
call fcn.00402f10
mov ecx, dword [ebp - 0x138]
push eax
lea ecx, [ecx + 0x4cc]
call fcn.00438b90
push eax
mov eax, dword [ebp - 0x158]
mov ecx, edi
push dword [eax]
mov eax, dword [ebp - 0x15c]
push dword [eax]
mov eax, dword [ebp - 0x160]
push dword [eax]
push 0
call fcn.00507c40
mov dword [ebp - 0x150], eax
lea ecx, [ebp - 0x40]
call fcn.00438b90
mov ecx, eax
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 0x144]
sub eax, 4
mov dword [ebp - 0x108], eax
jb 0x51736d
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x517372
mov eax, dword [ebp - 0x108]
add ecx, 4
add edx, 4
sub eax, 4
mov dword [ebp - 0x108], eax
jae 0x517350
cmp eax, 0xfffffffc
je 0x5173ee
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5173ab
cmp dword [ebp - 0x108], 0xfffffffd
je 0x5173ee
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5173ab
cmp dword [ebp - 0x108], 0xfffffffe
je 0x5173ee
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5173ab
cmp dword [ebp - 0x108], 0xffffffff
je 0x5173ee
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x5173ee
mov eax, dword [esi]
mov ecx, esi
push str.Invalid_MAC
call dword [eax + 0x14]
push dword [ebp - 0x144]
mov ecx, esi
push str.macLen
call fcn.00448710
push dword [ebp - 0x150]
mov ecx, esi
push str.macLen2
call fcn.00448710
lea ecx, [ebp - 0x40]
call fcn.00402f10
push eax
push str.dbMacSize
jmp 0x516957
lea ecx, [ebp - 0x40]
call fcn.00434c20
mov edx, 0xffffff14
lea ecx, [edi + 0xf3]
sub edx, edi
add byte [ecx], 1
jne 0x517410
dec ecx
lea eax, [edx + ecx]
test eax, eax
jns 0x517403
lea ecx, [ebp - 0x118]
call fcn.00447ff0
mov al, 1
jmp 0x51755d
cmp byte [esi + 0x134], 0
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
je 0x51743e
push str.Aborted_because_the_application_set_the_AbortCurrent_property..
call eax
jmp 0x517550
push str.Failed_to_read_TLS_record__2_
call eax
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402f10
push eax
push str.tlsRec_msg
mov ecx, esi
call fcn.00448710
push dword [ebp - 0x108]
mov ecx, esi
push str.msgLen
call fcn.00448710
push dword [ebp - 0x130]
mov ecx, esi
push str.nReadNBytes
call fcn.00448710
movzx eax, byte [ebp - 0x10b]
mov ecx, esi
push eax
push str.status
call fcn.00448710
jmp 0x517550
mov edi, dword [ebp - 0x13c]
mov ecx, edi
call fcn.0046d3d0
test al, al
je 0x5174be
cmp byte [edi + 0xac], 0
je 0x517550
mov eax, dword [esi]
mov ecx, esi
push str.Failed_to_read_beginning_of_SSL_TLS_record.
call dword [eax + 0x14]
movzx eax, byte [ebp - 0x10b]
mov ecx, esi
push eax
push 0x606b64
call fcn.00448710
mov ecx, dword [ebp - 0x14c]
call fcn.00402f10
push eax
push str.dbSize
mov ecx, esi
call fcn.00448710
push dword [ebp - 0x130]
mov ecx, esi
push str.nReadNBytes
call fcn.00448710
mov eax, dword [ebp + 0x10]
mov ecx, esi
push eax
push str.idleTimeoutMs
call fcn.00448710
mov al, byte [edi + 0xac]
mov ecx, edi
push esi
push str.readTlsRecord
mov byte [ebp - 0x10b], al
mov byte [edi + 0xac], 1
call fcn.0046d4b0
mov al, byte [ebp - 0x10b]
mov ecx, esi
mov byte [edi + 0xac], al
mov eax, dword [esi]
push str.See_https:__cknotes.com_failed_to_read_beginning_of_ssl_tls_record_can_be_caused_by_external_firewall_
call dword [eax + 0x14]
lea ecx, [ebp - 0x118]
call fcn.00447ff0
xor al, al
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.005af5a8
mov esp, ebp
pop ebp
ret 0x14