Function at 0x515fc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c3700
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.00447f80
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.00436b40
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00436b40
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x504]
call fcn.00436b40
lea eax, [edi + 0x78]
mov dword [ebp - 0x130], 0
mov ecx, eax
mov dword [ebp - 0x14c], eax
call fcn.00436b40
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.0056d2e0
mov byte [ebp - 0x10b], al
test al, al
je 0x5174f0
lea ecx, [edi + 0x78]
call fcn.00402f80
cmp eax, 5
jne 0x5174f0
lea ecx, [edi + 0x78]
call fcn.00438c00
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 0x516709
cmp byte [ecx], 1
jne 0x516709
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 0x51618d
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.00519660
mov dword [esi + 0x28], 0x7d
jmp 0x5175a0
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 0x5161ca
push ecx
push str.recLen
mov ecx, esi
call fcn.00448770
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x108]
cmp byte [edx], 0
mov dword [ebp - 0x148], 2
jl 0x516227
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 0x51627c
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.00448770
jmp 0x51626a
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 0x51627c
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.00448770
lea ecx, [edi + 0x78]
call fcn.00436b40
push dword [ebp - 0x148]
lea eax, [ebp - 0x11c]
push eax
lea ecx, [edi + 0x78]
call fcn.00435260
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.0056d2e0
mov byte [ebp - 0x131], al
test al, al
je 0x5166ba
lea ecx, [edi + 0x78]
call fcn.00402f80
cmp eax, dword [ebp - 0x150]
jne 0x5166ba
lea ecx, [edi + 0x78]
call fcn.00438c00
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.00435200
cmp byte [esi + 0x12a], 0
je 0x516333
lea ecx, [edi + 0x78]
call fcn.00402f80
push eax
lea ecx, [edi + 0x78]
call fcn.00438c00
push eax
push str.fullRecord
mov ecx, esi
call fcn.00448520
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.0050cc90
mov dword [ebp - 0x148], eax
test eax, eax
je 0x5175a0
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x24]
movq qword [ebp - 0x24], xmm0
call fcn.0040ae50
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 0x516439
push edx
push str.cipherListLen
mov ecx, esi
call fcn.00448770
push dword [ebp - 0x164]
mov ecx, esi
push str.sessionIdLen
call fcn.00448770
push dword [ebp - 0x108]
mov ecx, esi
push str.challengeLen
call fcn.00448770
mov edx, dword [ebp - 0x150]
lea eax, [edx - 3]
cmp eax, 0xbd
ja 0x5166b0
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 0x5166b0
cmp dword [ebp - 0x164], 0x20
jbe 0x5164a3
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.00519660
lea ecx, [ebp - 0x24]
call fcn.0040af20
jmp 0x5175a0
mov eax, dword [ebp - 0x108]
add eax, 0xfffffff8
cmp eax, 0x18
ja 0x5166a6
mov eax, dword [ebp - 0x144]
add eax, 6
mov dword [ebp - 0x144], eax
test edx, edx
je 0x5165da
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 0x516537
push dword [ebp - 0x18]
mov ecx, esi
push str.cipherKind
call fcn.00448770
push dword [ebp - 0x16c]
mov ecx, esi
push str.key_len
call fcn.00448770
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 0x5165b2
cmp cl, 4
jne 0x516575
lea eax, [ebp - 0x10c]
jmp 0x5165a7
cmp cl, 5
jne 0x516582
lea eax, [ebp - 0x120]
jmp 0x5165a7
cmp cl, 0xa
jne 0x51658f
lea eax, [ebp - 0x124]
jmp 0x5165a7
cmp cl, 0x2f
jne 0x51659c
lea eax, [ebp - 0x128]
jmp 0x5165a7
cmp cl, 0x35
jne 0x5165b2
lea eax, [ebp - 0x12c]
push 2
push eax
lea ecx, [edi + 0x6c]
call fcn.00435260
mov eax, dword [ebp - 0x168]
add eax, 3
sub dword [ebp - 0x14c], 1
mov dword [ebp - 0x168], eax
jne 0x5164e0
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.00435260
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.00435260
mov ecx, dword [ebp - 0x148]
push 0
lea ecx, [ecx + 0x88]
call fcn.004354b0
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
call fcn.00434a70
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.005049d0
lea ecx, [ebp - 0x40]
call fcn.00434c90
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call fcn.0040af20
jmp 0x5168dd
push str.Invalid_challenge_length
jmp 0x516475
push str.Invalid_cipher_list_length
jmp 0x516475
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.00448770
push dword [ebp - 0x150]
mov ecx, esi
push str.recLen
call fcn.00448770
mov ecx, dword [ebp - 0x14c]
call fcn.00402f80
push eax
push str.dbSize
mov ecx, esi
call fcn.00448770
jmp 0x5175a0
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 0x516872
cmp dword [ebp - 0x18], 3
jne 0x5167bb
mov al, byte [ebp - 0x131]
test al, al
jne 0x51677b
mov dword [ebp - 0x148], str.SSL_3.0
jmp 0x5167e3
cmp al, 1
jne 0x51678b
mov dword [ebp - 0x148], str.TLS_1.0
jmp 0x5167e3
cmp al, 2
jne 0x51679b
mov dword [ebp - 0x148], str.TLS_1.1
jmp 0x5167e3
cmp al, 3
jne 0x5167ab
mov dword [ebp - 0x148], str.TLS_1.2
jmp 0x5167e3
cmp al, 4
jne 0x5167bb
mov dword [ebp - 0x148], str.TLS_1.3
jmp 0x5167e3
push dword [ebp - 0x158]
lea eax, [ebp - 0x44]
push dword [ebp - 0x15c]
push str.v_d._d
push 0x20
push eax
call fcn.00446c60
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 0x5167f7
mov eax, str.ChangeCipherSpec
jmp 0x516838
cmp eax, 0x15
jne 0x516803
mov eax, str.Alert
jmp 0x516838
cmp eax, 0x16
jne 0x51680f
mov eax, str.Handshake
jmp 0x516838
cmp eax, 0x17
jne 0x51681b
mov eax, str.Application
jmp 0x516838
push ecx
push str.ct_d
lea eax, [ebp - 0x64]
push 0x20
push eax
call fcn.00446ba0
mov ecx, dword [ebp - 0x160]
lea eax, [ebp - 0x64]
add esp, 0x10
cmp dword [ecx], 0x17
je 0x516872
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.00446d30
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.00436b40
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.0056d2e0
mov byte [ebp - 0x10b], al
test al, al
je 0x517472
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402f80
cmp eax, dword [ebp - 0x108]
jne 0x517472
mov eax, dword [ebp - 0x160]
cmp dword [eax], 0x14
jne 0x5168fe
mov eax, dword [ebp - 0x138]
cmp dword [eax + 0x44], 3
jne 0x5168fe
cmp dword [eax + 0x48], 4
je 0x517460
cmp byte [edi + 0x98], 0
je 0x517169
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
call fcn.00434a70
mov ecx, dword [ebp - 0x138]
mov byte [ebp - 4], 3
cmp dword [ecx + 0x44], 3
jne 0x516943
cmp dword [ecx + 0x48], 4
mov byte [ebp - 0x131], 1
je 0x51694a
mov byte [ebp - 0x131], 0
mov eax, dword [edi + 0xac]
cmp eax, 6
jne 0x516c37
lea ecx, [ecx + 0x4cc]
call fcn.00402f80
lea ecx, [edi + 0x6b0]
mov dword [ebp - 0x150], eax
call fcn.00436b40
mov al, byte [ebp - 0x131]
movzx ecx, al
xor ecx, 1
lea ecx, [ecx*8 + 0x10]
cmp dword [ebp - 0x150], ecx
jae 0x5169d5
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.00448770
push esi
push dword [ebp - 0x140]
push 0x14
push dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x138]
call fcn.00519660
lea ecx, [ebp - 0x40]
call fcn.00434c90
jmp 0x5175a0
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
test al, al
je 0x5169ee
call fcn.00402f80
mov ecx, eax
jmp 0x516a10
call fcn.00402f80
sub eax, 0x18
lea ecx, [edi + 0x6b0]
mov dword [ebp - 0x18], eax
lea eax, [edi + 0xec]
push 8
push eax
call fcn.00435260
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.00435260
cmp byte [esi + 0x12b], 0
je 0x516a69
lea eax, [edi + 0x6b0]
mov ecx, esi
push eax
push str.aesGcmAad
call fcn.00448600
mov eax, dword [ebp - 0x138]
cmp dword [eax + 0x44], 3
jne 0x516b17
cmp dword [eax + 0x48], 4
jne 0x516b17
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.00402f80
cmp eax, 0xc
je 0x516aca
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.00434c90
jmp 0x5175a0
mov ecx, dword [ebp - 0x18]
call fcn.00438c00
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 0x516ae0
cmp byte [esi + 0x12b], 0
mov edi, dword [ebp - 0x154]
je 0x516b86
push 0xc
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
push str.aesGcmNonce
call fcn.00448520
jmp 0x516b86
lea ecx, [edi + 0xd0]
call fcn.00402f80
cmp eax, 4
je 0x516b5a
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.00519660
lea ecx, [ebp - 0x40]
call fcn.00434c90
jmp 0x5175a0
lea ecx, [edi + 0xd0]
call fcn.00438c00
mov ecx, dword [ebp - 0x138]
mov eax, dword [eax]
lea ecx, [ecx + 0x4cc]
mov dword [ebp - 0x24], eax
call fcn.00438c00
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.004de480
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00438c00
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.00436b40
push 0x10
push edi
mov edi, dword [ebp - 0x18]
mov ecx, edi
call fcn.00435260
cmp byte [esi + 0x12b], 0
je 0x516bf3
push edi
push str.expected_aesGcmAuthTag
mov ecx, esi
call fcn.00448600
mov ecx, dword [ebp - 0x138]
push 0x10
lea ecx, [ecx + 0x4cc]
call fcn.0043ab90
mov edi, dword [ebp - 0x154]
push esi
push dword [ebp - 0x14c]
mov ecx, dword [edi + 0x730]
lea eax, [edi + 0xf8]
push eax
call fcn.00590830
test al, al
jne 0x516e0e
push str.GCM_decrypt_setup_failed.
jmp 0x516b2c
cmp eax, 7
jne 0x516e14
lea ecx, [ecx + 0x4cc]
call fcn.00402f80
mov dword [ebp - 0x14c], eax
cmp eax, 0x10
jae 0x516c60
push str.AEAD_fragment_not_large_enough.
jmp 0x516b2c
lea ecx, [edi + 0x6b0]
call fcn.00436b40
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402f80
cmp byte [ebp - 0x131], 0
je 0x516c89
mov ecx, eax
jmp 0x516ca6
sub eax, 0x10
lea ecx, [edi + 0x6b0]
mov dword [ebp - 0x18], eax
lea eax, [edi + 0xec]
push 8
push eax
call fcn.00435260
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.00435260
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.00402f80
cmp eax, 0xc
je 0x516d2a
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.00434c90
jmp 0x5175a0
mov ecx, dword [ebp - 0x18]
call fcn.00438c00
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 0x516d40
mov edi, dword [ebp - 0x154]
lea ecx, [ebp - 0x24]
push 0xc
push ecx
lea ecx, [edi + 0x660]
call fcn.004de480
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00438c00
mov ecx, dword [ebp - 0x14c]
add ecx, 0xfffffff0
add eax, ecx
lea ecx, [edi + 0x6cc]
mov dword [ebp - 0x18], eax
call fcn.00436b40
push 0x10
push dword [ebp - 0x18]
lea ecx, [edi + 0x6cc]
call fcn.00435260
mov ecx, dword [ebp - 0x138]
push 0x10
lea ecx, [ecx + 0x4cc]
call fcn.0043ab90
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 0x516e08
push str.AEAD_decrypt_setup_failed.
jmp 0x516b2c
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 0x516f68
call fcn.00402f80
cmp byte [ebp - 0x131], 0
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
je 0x516f1d
push eax
call fcn.00438c00
mov ecx, dword [edi + 0x730]
push eax
lea eax, [edi + 0x660]
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.004dcda0
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x131], al
call fcn.00402f80
test eax, eax
je 0x516eb6
lea ecx, [ebp - 0x40]
call fcn.00439160
test al, al
jne 0x516eb6
push 1
lea ecx, [ebp - 0x40]
call fcn.0043ab90
lea ecx, [ebp - 0x40]
call fcn.00402f80
test eax, eax
jne 0x516e94
lea ecx, [ebp - 0x40]
call fcn.00439160
movzx ecx, al
sub al, 0x14
mov dword [ebp - 0x14c], ecx
cmp al, 3
ja 0x516ee2
push 1
lea ecx, [ebp - 0x40]
call fcn.0043ab90
mov eax, dword [ebp - 0x14c]
jmp 0x516ffd
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.00448770
push esi
push dword [ebp - 0x140]
push 0x14
push edi
jmp 0x5169bd
sub eax, 8
push eax
call fcn.00438c00
add eax, 8
mov ecx, dword [edi + 0x730]
push eax
lea eax, [edi + 0x660]
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.004dcda0
mov cl, byte [ebp - 0x10b]
mov byte [esi + 0x129], cl
test al, al
jne 0x517045
mov eax, dword [esi]
mov ecx, esi
push str.Failed_to_decrypt_SSL_TLS_record.
call dword [eax + 0x14]
jmp 0x5169ae
call fcn.00402f80
mov ecx, dword [ebp - 0x138]
push eax
lea ecx, [ecx + 0x4cc]
call fcn.00438c00
cmp byte [ebp - 0x131], 0
je 0x516f29
mov ecx, dword [edi + 0x730]
push eax
lea eax, [edi + 0x660]
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.004dcda0
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x131], al
call fcn.00402f80
test eax, eax
je 0x516fd6
lea ecx, [ebp - 0x40]
call fcn.00439160
test al, al
jne 0x516fd6
push 1
lea ecx, [ebp - 0x40]
call fcn.0043ab90
lea ecx, [ebp - 0x40]
call fcn.00402f80
test eax, eax
jne 0x516fb4
lea ecx, [ebp - 0x40]
call fcn.00439160
movzx ecx, al
sub al, 0x14
mov dword [ebp - 0x14c], ecx
cmp al, 3
ja 0x517028
push 1
lea ecx, [ebp - 0x40]
call fcn.0043ab90
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 0x516f43
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 0x5169a7
mov eax, dword [edi + 0xac]
cmp eax, 6
jne 0x5170fc
mov ecx, dword [edi + 0x730]
lea eax, [edi + 0x660]
push esi
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.00590770
test al, al
jne 0x517083
mov eax, dword [esi]
mov ecx, esi
push str.GCM_decrypt_finalize_failed.
call dword [eax + 0x14]
jmp 0x5169ae
cmp byte [esi + 0x12b], 0
je 0x517098
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.0043ac00
mov ecx, dword [ebp - 0x138]
mov byte [ecx + 0x4c8], 1
mov eax, dword [edi + 0xac]
cmp eax, 6
je 0x51715d
cmp eax, 0x63
je 0x51715d
cmp eax, 7
je 0x51715d
push esi
lea ecx, [ecx + 0x4cc]
call fcn.0043b2e0
test al, al
jne 0x517136
mov eax, dword [esi]
mov ecx, esi
push str.Invalid_block_cipher_padding_detected.
call dword [eax + 0x14]
jmp 0x5169ae
cmp eax, 7
jne 0x517098
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 0x517098
mov eax, dword [esi]
mov ecx, esi
push str.AEAD_decrypt_finalize_failed.
call dword [eax + 0x14]
jmp 0x5169ae
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00439160
mov ecx, dword [ebp - 0x138]
movzx eax, al
inc eax
push eax
lea ecx, [ecx + 0x4cc]
call fcn.0043ab90
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.00434c90
mov eax, dword [edi + 0xac]
cmp eax, 6
je 0x517446
cmp eax, 7
je 0x517446
mov ecx, dword [edi + 0xb0]
test ecx, ecx
je 0x517446
mov eax, 0x10
cmp ecx, 1
jne 0x5171a5
mov dword [ebp - 0x144], 0x14
jmp 0x5171c7
cmp ecx, 7
jne 0x5171b6
mov dword [ebp - 0x144], 0x20
jmp 0x5171c7
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.00402f80
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x144]
jae 0x51720e
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.00519660
jmp 0x5175a0
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
call fcn.00434a70
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.00436230
mov ecx, dword [ebp - 0x138]
push dword [ebp - 0x144]
lea ecx, [ecx + 0x4cc]
call fcn.0043ab90
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x150], 0
cmp dword [eax], 3
jne 0x517327
mov eax, dword [ebp - 0x158]
cmp dword [eax], 2
jl 0x517327
cmp dword [edi + 0xc4], 0
jbe 0x517327
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402f80
cmp eax, dword [edi + 0xc4]
jb 0x5172e9
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402f80
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.00438c10
jmp 0x517352
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.00402f80
push eax
push str.tlsMsgSize
mov ecx, esi
call fcn.00448770
push dword [edi + 0xc4]
mov ecx, esi
push str.cipherSuiteRecordIvLen
call fcn.00448770
jmp 0x51737a
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0x84]
push esi
push eax
lea ecx, [ecx + 0x4cc]
call fcn.00402f80
mov ecx, dword [ebp - 0x138]
push eax
lea ecx, [ecx + 0x4cc]
call fcn.00438c00
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.00507c80
mov dword [ebp - 0x150], eax
lea ecx, [ebp - 0x40]
call fcn.00438c00
mov ecx, eax
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 0x144]
sub eax, 4
mov dword [ebp - 0x108], eax
jb 0x5173bd
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5173c2
mov eax, dword [ebp - 0x108]
add ecx, 4
add edx, 4
sub eax, 4
mov dword [ebp - 0x108], eax
jae 0x5173a0
cmp eax, 0xfffffffc
je 0x51743e
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5173fb
cmp dword [ebp - 0x108], 0xfffffffd
je 0x51743e
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5173fb
cmp dword [ebp - 0x108], 0xfffffffe
je 0x51743e
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5173fb
cmp dword [ebp - 0x108], 0xffffffff
je 0x51743e
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x51743e
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.00448770
push dword [ebp - 0x150]
mov ecx, esi
push str.macLen2
call fcn.00448770
lea ecx, [ebp - 0x40]
call fcn.00402f80
push eax
push str.dbMacSize
jmp 0x5169a7
lea ecx, [ebp - 0x40]
call fcn.00434c90
mov edx, 0xffffff14
lea ecx, [edi + 0xf3]
sub edx, edi
add byte [ecx], 1
jne 0x517460
dec ecx
lea eax, [edx + ecx]
test eax, eax
jns 0x517453
lea ecx, [ebp - 0x118]
call fcn.00448050
mov al, 1
jmp 0x5175ad
cmp byte [esi + 0x134], 0
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
je 0x51748e
push str.Aborted_because_the_application_set_the_AbortCurrent_property..
call eax
jmp 0x5175a0
push str.Failed_to_read_TLS_record__2_
call eax
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402f80
push eax
push str.tlsRec_msg
mov ecx, esi
call fcn.00448770
push dword [ebp - 0x108]
mov ecx, esi
push str.msgLen
call fcn.00448770
push dword [ebp - 0x130]
mov ecx, esi
push str.nReadNBytes
call fcn.00448770
movzx eax, byte [ebp - 0x10b]
mov ecx, esi
push eax
push str.status
call fcn.00448770
jmp 0x5175a0
mov edi, dword [ebp - 0x13c]
mov ecx, edi
call fcn.0046d420
test al, al
je 0x51750e
cmp byte [edi + 0xac], 0
je 0x5175a0
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.00448770
mov ecx, dword [ebp - 0x14c]
call fcn.00402f80
push eax
push str.dbSize
mov ecx, esi
call fcn.00448770
push dword [ebp - 0x130]
mov ecx, esi
push str.nReadNBytes
call fcn.00448770
mov eax, dword [ebp + 0x10]
mov ecx, esi
push eax
push str.idleTimeoutMs
call fcn.00448770
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.0046d500
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.00448050
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.005af618
mov esp, ebp
pop ebp
ret 0x14