Function at 0x518a50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c7750
mov eax, dword fs:[0]
push eax
sub esp, 0x160
mov eax, dword [0x692c00]
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.00448220
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.00436dd0
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00436dd0
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x504]
call fcn.00436dd0
lea eax, [edi + 0x78]
mov dword [ebp - 0x130], 0
mov ecx, eax
mov dword [ebp - 0x14c], eax
call fcn.00436dd0
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.005706b0
mov byte [ebp - 0x10b], al
test al, al
je 0x519f80
lea ecx, [edi + 0x78]
call fcn.00402fb0
cmp eax, 5
jne 0x519f80
lea ecx, [edi + 0x78]
call fcn.00438ea0
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 0x519199
cmp byte [ecx], 1
jne 0x519199
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 0x518c1d
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.0051c110
mov dword [esi + 0x2c], 0x7d
jmp 0x51a030
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 0x518c5a
push ecx
push str.recLen
mov ecx, esi
call fcn.00448a10
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x108]
cmp byte [edx], 0
mov dword [ebp - 0x148], 2
jl 0x518cb7
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 0x518d0c
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.00448a10
jmp 0x518cfa
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 0x518d0c
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.00448a10
lea ecx, [edi + 0x78]
call fcn.00436dd0
push dword [ebp - 0x148]
lea eax, [ebp - 0x11c]
push eax
lea ecx, [edi + 0x78]
call fcn.004354f0
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.005706b0
mov byte [ebp - 0x131], al
test al, al
je 0x51914a
lea ecx, [edi + 0x78]
call fcn.00402fb0
cmp eax, dword [ebp - 0x150]
jne 0x51914a
lea ecx, [edi + 0x78]
call fcn.00438ea0
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.00435490
cmp byte [esi + 0x12a], 0
je 0x518dc3
lea ecx, [edi + 0x78]
call fcn.00402fb0
push eax
lea ecx, [edi + 0x78]
call fcn.00438ea0
push eax
push str.fullRecord
mov ecx, esi
call fcn.004487c0
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.0050e250
mov dword [ebp - 0x148], eax
test eax, eax
je 0x51a030
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x24]
movq qword [ebp - 0x24], xmm0
call fcn.0040af80
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 0x518ec9
push edx
push str.cipherListLen
mov ecx, esi
call fcn.00448a10
push dword [ebp - 0x164]
mov ecx, esi
push str.sessionIdLen
call fcn.00448a10
push dword [ebp - 0x108]
mov ecx, esi
push str.challengeLen
call fcn.00448a10
mov edx, dword [ebp - 0x150]
lea eax, [edx - 3]
cmp eax, 0xbd
ja 0x519140
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 0x519140
cmp dword [ebp - 0x164], 0x20
jbe 0x518f33
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.0051c110
lea ecx, [ebp - 0x24]
call fcn.0040b050
jmp 0x51a030
mov eax, dword [ebp - 0x108]
add eax, 0xfffffff8
cmp eax, 0x18
ja 0x519136
mov eax, dword [ebp - 0x144]
add eax, 6
mov dword [ebp - 0x144], eax
test edx, edx
je 0x51906a
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 0x518fc7
push dword [ebp - 0x18]
mov ecx, esi
push str.cipherKind
call fcn.00448a10
push dword [ebp - 0x16c]
mov ecx, esi
push str.key_len
call fcn.00448a10
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 0x519042
cmp cl, 4
jne 0x519005
lea eax, [ebp - 0x10c]
jmp 0x519037
cmp cl, 5
jne 0x519012
lea eax, [ebp - 0x120]
jmp 0x519037
cmp cl, 0xa
jne 0x51901f
lea eax, [ebp - 0x124]
jmp 0x519037
cmp cl, 0x2f
jne 0x51902c
lea eax, [ebp - 0x128]
jmp 0x519037
cmp cl, 0x35
jne 0x519042
lea eax, [ebp - 0x12c]
push 2
push eax
lea ecx, [edi + 0x6c]
call fcn.004354f0
mov eax, dword [ebp - 0x168]
add eax, 3
sub dword [ebp - 0x14c], 1
mov dword [ebp - 0x168], eax
jne 0x518f70
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.004354f0
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.004354f0
mov ecx, dword [ebp - 0x148]
push 0
lea ecx, [ecx + 0x88]
call fcn.00435740
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
call fcn.00434d00
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.00505f90
lea ecx, [ebp - 0x40]
call fcn.00434f20
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call fcn.0040b050
jmp 0x51936d
push str.Invalid_challenge_length
jmp 0x518f05
push str.Invalid_cipher_list_length
jmp 0x518f05
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 0x60be84
call fcn.00448a10
push dword [ebp - 0x150]
mov ecx, esi
push str.recLen
call fcn.00448a10
mov ecx, dword [ebp - 0x14c]
call fcn.00402fb0
push eax
push str.dbSize
mov ecx, esi
call fcn.00448a10
jmp 0x51a030
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 0x519302
cmp dword [ebp - 0x18], 3
jne 0x51924b
mov al, byte [ebp - 0x131]
test al, al
jne 0x51920b
mov dword [ebp - 0x148], str.SSL_3.0
jmp 0x519273
cmp al, 1
jne 0x51921b
mov dword [ebp - 0x148], str.TLS_1.0
jmp 0x519273
cmp al, 2
jne 0x51922b
mov dword [ebp - 0x148], str.TLS_1.1
jmp 0x519273
cmp al, 3
jne 0x51923b
mov dword [ebp - 0x148], str.TLS_1.2
jmp 0x519273
cmp al, 4
jne 0x51924b
mov dword [ebp - 0x148], str.TLS_1.3
jmp 0x519273
push dword [ebp - 0x158]
lea eax, [ebp - 0x44]
push dword [ebp - 0x15c]
push str.v_d._d
push 0x20
push eax
call fcn.00446f00
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 0x519287
mov eax, str.ChangeCipherSpec
jmp 0x5192c8
cmp eax, 0x15
jne 0x519293
mov eax, str.Alert
jmp 0x5192c8
cmp eax, 0x16
jne 0x51929f
mov eax, str.Handshake
jmp 0x5192c8
cmp eax, 0x17
jne 0x5192ab
mov eax, str.Application
jmp 0x5192c8
push ecx
push str.ct_d
lea eax, [ebp - 0x64]
push 0x20
push eax
call fcn.00446e40
mov ecx, dword [ebp - 0x160]
lea eax, [ebp - 0x64]
add esp, 0x10
cmp dword [ecx], 0x17
je 0x519302
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.00446fd0
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.00436dd0
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.005706b0
mov byte [ebp - 0x10b], al
test al, al
je 0x519f02
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402fb0
cmp eax, dword [ebp - 0x108]
jne 0x519f02
mov eax, dword [ebp - 0x160]
cmp dword [eax], 0x14
jne 0x51938e
mov eax, dword [ebp - 0x138]
cmp dword [eax + 0x44], 3
jne 0x51938e
cmp dword [eax + 0x48], 4
je 0x519ef0
cmp byte [edi + 0x98], 0
je 0x519bf9
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
call fcn.00434d00
mov ecx, dword [ebp - 0x138]
mov byte [ebp - 4], 3
cmp dword [ecx + 0x44], 3
jne 0x5193d3
cmp dword [ecx + 0x48], 4
mov byte [ebp - 0x131], 1
je 0x5193da
mov byte [ebp - 0x131], 0
mov eax, dword [edi + 0xac]
cmp eax, 6
jne 0x5196c7
lea ecx, [ecx + 0x4cc]
call fcn.00402fb0
lea ecx, [edi + 0x6b0]
mov dword [ebp - 0x150], eax
call fcn.00436dd0
mov al, byte [ebp - 0x131]
movzx ecx, al
xor ecx, 1
lea ecx, [ecx*8 + 0x10]
cmp dword [ebp - 0x150], ecx
jae 0x519465
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.00448a10
push esi
push dword [ebp - 0x140]
push 0x14
push dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x138]
call fcn.0051c110
lea ecx, [ebp - 0x40]
call fcn.00434f20
jmp 0x51a030
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
test al, al
je 0x51947e
call fcn.00402fb0
mov ecx, eax
jmp 0x5194a0
call fcn.00402fb0
sub eax, 0x18
lea ecx, [edi + 0x6b0]
mov dword [ebp - 0x18], eax
lea eax, [edi + 0xec]
push 8
push eax
call fcn.004354f0
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.004354f0
cmp byte [esi + 0x12b], 0
je 0x5194f9
lea eax, [edi + 0x6b0]
mov ecx, esi
push eax
push str.aesGcmAad
call fcn.004488a0
mov eax, dword [ebp - 0x138]
cmp dword [eax + 0x44], 3
jne 0x5195a7
cmp dword [eax + 0x48], 4
jne 0x5195a7
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.00402fb0
cmp eax, 0xc
je 0x51955a
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.00434f20
jmp 0x51a030
mov ecx, dword [ebp - 0x18]
call fcn.00438ea0
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 0x519570
cmp byte [esi + 0x12b], 0
mov edi, dword [ebp - 0x154]
je 0x519616
push 0xc
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
push str.aesGcmNonce
call fcn.004487c0
jmp 0x519616
lea ecx, [edi + 0xd0]
call fcn.00402fb0
cmp eax, 4
je 0x5195ea
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.0051c110
lea ecx, [ebp - 0x40]
call fcn.00434f20
jmp 0x51a030
lea ecx, [edi + 0xd0]
call fcn.00438ea0
mov ecx, dword [ebp - 0x138]
mov eax, dword [eax]
lea ecx, [ecx + 0x4cc]
mov dword [ebp - 0x24], eax
call fcn.00438ea0
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.004f67e0
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00438ea0
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.00436dd0
push 0x10
push edi
mov edi, dword [ebp - 0x18]
mov ecx, edi
call fcn.004354f0
cmp byte [esi + 0x12b], 0
je 0x519683
push edi
push str.expected_aesGcmAuthTag
mov ecx, esi
call fcn.004488a0
mov ecx, dword [ebp - 0x138]
push 0x10
lea ecx, [ecx + 0x4cc]
call fcn.0043ae30
mov edi, dword [ebp - 0x154]
push esi
push dword [ebp - 0x14c]
mov ecx, dword [edi + 0x730]
lea eax, [edi + 0xf8]
push eax
call fcn.005946e0
test al, al
jne 0x51989e
push str.GCM_decrypt_setup_failed.
jmp 0x5195bc
cmp eax, 7
jne 0x5198a4
lea ecx, [ecx + 0x4cc]
call fcn.00402fb0
mov dword [ebp - 0x14c], eax
cmp eax, 0x10
jae 0x5196f0
push str.AEAD_fragment_not_large_enough.
jmp 0x5195bc
lea ecx, [edi + 0x6b0]
call fcn.00436dd0
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402fb0
cmp byte [ebp - 0x131], 0
je 0x519719
mov ecx, eax
jmp 0x519736
sub eax, 0x10
lea ecx, [edi + 0x6b0]
mov dword [ebp - 0x18], eax
lea eax, [edi + 0xec]
push 8
push eax
call fcn.004354f0
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.004354f0
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.00402fb0
cmp eax, 0xc
je 0x5197ba
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.00434f20
jmp 0x51a030
mov ecx, dword [ebp - 0x18]
call fcn.00438ea0
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 0x5197d0
mov edi, dword [ebp - 0x154]
lea ecx, [ebp - 0x24]
push 0xc
push ecx
lea ecx, [edi + 0x660]
call fcn.004f67e0
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00438ea0
mov ecx, dword [ebp - 0x14c]
add ecx, 0xfffffff0
add eax, ecx
lea ecx, [edi + 0x6cc]
mov dword [ebp - 0x18], eax
call fcn.00436dd0
push 0x10
push dword [ebp - 0x18]
lea ecx, [edi + 0x6cc]
call fcn.004354f0
mov ecx, dword [ebp - 0x138]
push 0x10
lea ecx, [ecx + 0x4cc]
call fcn.0043ae30
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 0x519898
push str.AEAD_decrypt_setup_failed.
jmp 0x5195bc
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 0x5199f8
call fcn.00402fb0
cmp byte [ebp - 0x131], 0
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
je 0x5199ad
push eax
call fcn.00438ea0
mov ecx, dword [edi + 0x730]
push eax
lea eax, [edi + 0x660]
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.004f5100
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x131], al
call fcn.00402fb0
test eax, eax
je 0x519946
lea ecx, [ebp - 0x40]
call fcn.00439400
test al, al
jne 0x519946
push 1
lea ecx, [ebp - 0x40]
call fcn.0043ae30
lea ecx, [ebp - 0x40]
call fcn.00402fb0
test eax, eax
jne 0x519924
lea ecx, [ebp - 0x40]
call fcn.00439400
movzx ecx, al
sub al, 0x14
mov dword [ebp - 0x14c], ecx
cmp al, 3
ja 0x519972
push 1
lea ecx, [ebp - 0x40]
call fcn.0043ae30
mov eax, dword [ebp - 0x14c]
jmp 0x519a8d
mov edi, dword [ebp - 0x13c]
mov ecx, esi
push str.Invalid_TLS_1.3_actual_content_type..
mov dword [edi + 0x2c], 0x7f
mov eax, dword [esi]
call dword [eax + 0x14]
mov eax, dword [ebp - 0x14c]
mov ecx, esi
push eax
push str.actualContentType
call fcn.00448a10
push esi
push dword [ebp - 0x140]
push 0x14
push edi
jmp 0x51944d
sub eax, 8
push eax
call fcn.00438ea0
add eax, 8
mov ecx, dword [edi + 0x730]
push eax
lea eax, [edi + 0x660]
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.004f5100
mov cl, byte [ebp - 0x10b]
mov byte [esi + 0x129], cl
test al, al
jne 0x519ad5
mov eax, dword [esi]
mov ecx, esi
push str.Failed_to_decrypt_SSL_TLS_record.
call dword [eax + 0x14]
jmp 0x51943e
call fcn.00402fb0
mov ecx, dword [ebp - 0x138]
push eax
lea ecx, [ecx + 0x4cc]
call fcn.00438ea0
cmp byte [ebp - 0x131], 0
je 0x5199b9
mov ecx, dword [edi + 0x730]
push eax
lea eax, [edi + 0x660]
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.004f5100
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x131], al
call fcn.00402fb0
test eax, eax
je 0x519a66
lea ecx, [ebp - 0x40]
call fcn.00439400
test al, al
jne 0x519a66
push 1
lea ecx, [ebp - 0x40]
call fcn.0043ae30
lea ecx, [ebp - 0x40]
call fcn.00402fb0
test eax, eax
jne 0x519a44
lea ecx, [ebp - 0x40]
call fcn.00439400
movzx ecx, al
sub al, 0x14
mov dword [ebp - 0x14c], ecx
cmp al, 3
ja 0x519ab8
push 1
lea ecx, [ebp - 0x40]
call fcn.0043ae30
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 0x5199d3
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 0x519437
mov eax, dword [edi + 0xac]
cmp eax, 6
jne 0x519b8c
mov ecx, dword [edi + 0x730]
lea eax, [edi + 0x660]
push esi
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.00594620
test al, al
jne 0x519b13
mov eax, dword [esi]
mov ecx, esi
push str.GCM_decrypt_finalize_failed.
call dword [eax + 0x14]
jmp 0x51943e
cmp byte [esi + 0x12b], 0
je 0x519b28
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.0043aea0
mov ecx, dword [ebp - 0x138]
mov byte [ecx + 0x4c8], 1
mov eax, dword [edi + 0xac]
cmp eax, 6
je 0x519bed
cmp eax, 0x63
je 0x519bed
cmp eax, 7
je 0x519bed
push esi
lea ecx, [ecx + 0x4cc]
call fcn.0043b580
test al, al
jne 0x519bc6
mov eax, dword [esi]
mov ecx, esi
push str.Invalid_block_cipher_padding_detected.
call dword [eax + 0x14]
jmp 0x51943e
cmp eax, 7
jne 0x519b28
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 0x519b28
mov eax, dword [esi]
mov ecx, esi
push str.AEAD_decrypt_finalize_failed.
call dword [eax + 0x14]
jmp 0x51943e
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00439400
mov ecx, dword [ebp - 0x138]
movzx eax, al
inc eax
push eax
lea ecx, [ecx + 0x4cc]
call fcn.0043ae30
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.00434f20
mov eax, dword [edi + 0xac]
cmp eax, 6
je 0x519ed6
cmp eax, 7
je 0x519ed6
mov ecx, dword [edi + 0xb0]
test ecx, ecx
je 0x519ed6
mov eax, 0x10
cmp ecx, 1
jne 0x519c35
mov dword [ebp - 0x144], 0x14
jmp 0x519c57
cmp ecx, 7
jne 0x519c46
mov dword [ebp - 0x144], 0x20
jmp 0x519c57
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.00402fb0
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x144]
jae 0x519c9e
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.0051c110
jmp 0x51a030
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
call fcn.00434d00
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.004364c0
mov ecx, dword [ebp - 0x138]
push dword [ebp - 0x144]
lea ecx, [ecx + 0x4cc]
call fcn.0043ae30
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x150], 0
cmp dword [eax], 3
jne 0x519db7
mov eax, dword [ebp - 0x158]
cmp dword [eax], 2
jl 0x519db7
cmp dword [edi + 0xc4], 0
jbe 0x519db7
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402fb0
cmp eax, dword [edi + 0xc4]
jb 0x519d79
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402fb0
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.00438eb0
jmp 0x519de2
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.00402fb0
push eax
push str.tlsMsgSize
mov ecx, esi
call fcn.00448a10
push dword [edi + 0xc4]
mov ecx, esi
push str.cipherSuiteRecordIvLen
call fcn.00448a10
jmp 0x519e0a
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0x84]
push esi
push eax
lea ecx, [ecx + 0x4cc]
call fcn.00402fb0
mov ecx, dword [ebp - 0x138]
push eax
lea ecx, [ecx + 0x4cc]
call fcn.00438ea0
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.00509240
mov dword [ebp - 0x150], eax
lea ecx, [ebp - 0x40]
call fcn.00438ea0
mov ecx, eax
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 0x144]
sub eax, 4
mov dword [ebp - 0x108], eax
jb 0x519e4d
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x519e52
mov eax, dword [ebp - 0x108]
add ecx, 4
add edx, 4
sub eax, 4
mov dword [ebp - 0x108], eax
jae 0x519e30
cmp eax, 0xfffffffc
je 0x519ece
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x519e8b
cmp dword [ebp - 0x108], 0xfffffffd
je 0x519ece
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x519e8b
cmp dword [ebp - 0x108], 0xfffffffe
je 0x519ece
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x519e8b
cmp dword [ebp - 0x108], 0xffffffff
je 0x519ece
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x519ece
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.00448a10
push dword [ebp - 0x150]
mov ecx, esi
push str.macLen2
call fcn.00448a10
lea ecx, [ebp - 0x40]
call fcn.00402fb0
push eax
push str.dbMacSize
jmp 0x519437
lea ecx, [ebp - 0x40]
call fcn.00434f20
mov edx, 0xffffff14
lea ecx, [edi + 0xf3]
sub edx, edi
add byte [ecx], 1
jne 0x519ef0
dec ecx
lea eax, [edx + ecx]
test eax, eax
jns 0x519ee3
lea ecx, [ebp - 0x118]
call fcn.004482f0
mov al, 1
jmp 0x51a03d
cmp byte [esi + 0x134], 0
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
je 0x519f1e
push str.Aborted_because_the_application_set_the_AbortCurrent_property..
call eax
jmp 0x51a030
push str.Failed_to_read_TLS_record__2_
call eax
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx + 0x4cc]
call fcn.00402fb0
push eax
push str.tlsRec_msg
mov ecx, esi
call fcn.00448a10
push dword [ebp - 0x108]
mov ecx, esi
push str.msgLen
call fcn.00448a10
push dword [ebp - 0x130]
mov ecx, esi
push str.nReadNBytes
call fcn.00448a10
movzx eax, byte [ebp - 0x10b]
mov ecx, esi
push eax
push str.status
call fcn.00448a10
jmp 0x51a030
mov edi, dword [ebp - 0x13c]
mov ecx, edi
call fcn.0046ec90
test al, al
je 0x519f9e
cmp byte [edi + 0xb0], 0
je 0x51a030
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 0x60be84
call fcn.00448a10
mov ecx, dword [ebp - 0x14c]
call fcn.00402fb0
push eax
push str.dbSize
mov ecx, esi
call fcn.00448a10
push dword [ebp - 0x130]
mov ecx, esi
push str.nReadNBytes
call fcn.00448a10
mov eax, dword [ebp + 0x10]
mov ecx, esi
push eax
push str.idleTimeoutMs
call fcn.00448a10
mov al, byte [edi + 0xb0]
mov ecx, edi
push esi
push str.readTlsRecord
mov byte [ebp - 0x10b], al
mov byte [edi + 0xb0], 1
call fcn.0046ed70
mov al, byte [ebp - 0x10b]
mov ecx, esi
mov byte [edi + 0xb0], 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.004482f0
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.005b34c8
mov esp, ebp
pop ebp
ret 0x14