Function at 0x5f7f30
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x658197
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x120
push ebx
push ebp
mov ebp, dword [esp + 0x148]
push esi
push edi
mov ebx, ecx
mov al, byte [ebp + 0x122]
lea ecx, [esp + 0x44]
push eax
push str.readTlsRecord
push ebp
call fcn.004f03a0
mov ecx, dword [esp + 0x140]
xor esi, esi
add ecx, 0x46c
mov dword [esp + 0x138], esi
call fcn.005f93b0
lea edi, [ebx + 0x78]
mov dword [esp + 0x64], esi
mov ecx, edi
call fcn.004dd9e0
mov esi, dword [esp + 0x14c]
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x144]
lea edx, [esp + 0x64]
push edx
push ebp
push esi
push eax
push edi
push 5
call fcn.00622130
test al, al
mov byte [esp + 0x40], al
je 0x5f9229
mov ecx, edi
call fcn.005a8750
cmp eax, 5
jne 0x5f9229
mov ecx, edi
call fcn.004dda10
mov esi, eax
mov al, byte [esi]
test al, 0x80
je 0x5f852c
cmp byte [esi + 2], 1
jne 0x5f852c
mov edx, dword [ebp]
push str.Received_SSL_2.0_ClientHello.
mov ecx, ebp
call dword [edx + 0x18]
cmp byte [esi + 2], 1
jne 0x5f8040
mov eax, dword [ebp]
push str.Cannot_accept_SSL_2.0_connections.
mov ecx, ebp
call dword [eax + 0x14]
mov ecx, dword [esp + 0x144]
mov esi, dword [esp + 0x14c]
push ebp
push ecx
mov ecx, dword [esp + 0x148]
push 0x47
push esi
call fcn.005f4c00
mov dword [esi + 0x28], 0x7d
jmp 0x5f929a
mov al, byte [esi]
mov cl, byte [ebp + 0x122]
and eax, 0x7f
xor edx, edx
mov dl, byte [esi + 1]
shl eax, 8
or eax, edx
test cl, cl
mov dword [esp + 0x20], eax
je 0x5f806e
push eax
push str.recLen
mov ecx, ebp
call fcn.004effe0
mov eax, dword [esp + 0x20]
mov cl, byte [esi]
mov dword [esp + 0x1c], 2
test cl, 0x80
jne 0x5f80c1
mov cl, byte [esi + 3]
mov dl, byte [esi + 4]
mov byte [esp + 0x18], cl
xor ecx, ecx
mov cl, byte [esi + 2]
lea esi, [eax - 2]
mov al, byte [ebp + 0x122]
mov byte [esp + 0x19], dl
test al, al
mov dword [esp + 0x14], ecx
je 0x5f8105
mov edx, dword [ebp]
push str.3_byte_record_header...
mov ecx, ebp
call dword [edx + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, ebp
push eax
push str.paddingLen
call fcn.004effe0
jmp 0x5f80f8
mov cl, byte [esi + 2]
mov dl, byte [esi + 3]
mov byte [esp + 0x18], cl
mov cl, byte [esi + 4]
lea esi, [eax - 3]
mov al, byte [ebp + 0x122]
test al, al
mov byte [esp + 0x19], dl
mov byte [esp + 0x1a], cl
mov dword [esp + 0x1c], 3
je 0x5f8105
mov edx, dword [ebp]
push str.2_byte_record_header...
mov ecx, ebp
call dword [edx + 0x18]
push esi
push str.nToRead
mov ecx, ebp
call fcn.004effe0
mov ecx, edi
call fcn.004dd9e0
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
push eax
push ecx
mov ecx, edi
call fcn.004e1260
mov eax, dword [esp + 0x14c]
mov ecx, dword [esp + 0x148]
lea edx, [esp + 0x64]
push edx
push ebp
push eax
push ecx
mov ecx, dword [esp + 0x154]
push edi
push esi
call fcn.00622130
test al, al
mov byte [esp + 0x40], al
je 0x5f84e5
mov ecx, edi
call fcn.005a8750
cmp eax, dword [esp + 0x20]
jne 0x5f84e5
mov ecx, edi
call fcn.004dda10
mov esi, eax
mov eax, dword [esp + 0x140]
push edi
lea ecx, [eax + 0x2e8]
mov byte [eax + 0x4d4], 1
call fcn.004de6c0
mov al, byte [ebp + 0x122]
test al, al
je 0x5f81a7
mov ecx, edi
call fcn.005a8750
push eax
mov ecx, edi
call fcn.004dda10
push eax
push str.fullRecord
mov ecx, ebp
call fcn.004ef450
mov eax, dword [esp + 0x140]
xor edx, edx
lea ecx, [eax + 0x470]
lea edi, [eax + 0x474]
mov dword [esp + 0x24], ecx
add eax, 0x478
mov dword [ecx], 0x16
mov dl, byte [esi + 1]
xor ecx, ecx
mov dword [edi], edx
mov cl, byte [esi + 2]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], eax
mov dword [eax], ecx
call fcn.005e0070
mov edi, eax
test edi, edi
je 0x5f929a
lea ecx, [esp + 0x34]
call fcn.004d8060
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], edi
add esi, 3
mov eax, dword [edx]
mov byte [esp + 0x138], 1
mov dword [edi + 0x2c], eax
mov edx, dword [ecx]
xor eax, eax
mov dword [edi + 0x30], edx
mov ah, byte [esi]
xor ecx, ecx
mov al, byte [esi + 1]
mov ch, byte [esi + 2]
mov cl, byte [esi + 3]
xor edx, edx
mov dh, byte [esi + 4]
mov dword [esp + 0x68], eax
mov al, byte [ebp + 0x122]
mov dl, byte [esi + 5]
test al, al
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
je 0x5f8278
mov eax, dword [esp + 0x68]
mov ecx, ebp
push eax
push str.cipherListLen
call fcn.004effe0
mov ecx, dword [esp + 0x20]
push ecx
push str.sessionIdLen
mov ecx, ebp
call fcn.004effe0
mov edx, dword [esp + 0x1c]
mov ecx, ebp
push edx
push str.challengeLen
call fcn.004effe0
mov eax, dword [esp + 0x68]
cmp eax, 3
jb 0x5f84a3
cmp eax, 0xc0
ja 0x5f84a3
xor edx, edx
mov ecx, 3
div ecx
test edx, edx
jne 0x5f84a3
cmp dword [esp + 0x20], 0x20
jbe 0x5f82cd
mov edx, dword [ebp]
push str.Invalid_session_ID_length
mov ecx, ebp
call dword [edx + 0x14]
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x14c]
push ebp
push eax
push 0xa
push ecx
jmp 0x5f84c3
mov eax, dword [esp + 0x1c]
cmp eax, 8
jb 0x5f8499
cmp eax, 0x20
ja 0x5f8499
mov eax, 0xaaaaaaab
add esi, 6
mul dword [esp + 0x68]
shr edx, 1
je 0x5f83f7
mov ecx, esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x50], ecx
mov eax, 2
xor edx, edx
mov dl, byte [eax + ecx]
mov eax, 1
mov dword [esp + 0x58], edx
xor edx, edx
mov dl, byte [eax + ecx]
mov al, byte [ebp + 0x122]
mov dh, byte [ecx]
test al, al
mov dword [esp + 0x8c], edx
je 0x5f8351
mov eax, dword [esp + 0x58]
mov ecx, ebp
push eax
push str.cipherKind
call fcn.004effe0
mov ecx, dword [esp + 0x8c]
push ecx
push str.key_len
mov ecx, ebp
call fcn.004effe0
mov eax, dword [esp + 0x8c]
mov byte [esp + 0x32], 0
test eax, eax
mov byte [esp + 0x33], 4
mov byte [esp + 0x12], 0
mov byte [esp + 0x13], 5
mov byte [esp + 0x60], 0
mov byte [esp + 0x61], 0xa
mov byte [esp + 0x62], 0
mov byte [esp + 0x63], 0x2f
mov byte [esp + 0x40], 0
mov byte [esp + 0x41], 0x35
jne 0x5f83dd
mov eax, dword [esp + 0x58]
cmp eax, 4
jne 0x5f83a0
lea edx, [esp + 0x32]
push 2
push edx
jmp 0x5f83d5
cmp eax, 5
jne 0x5f83ad
push 2
lea eax, [esp + 0x16]
jmp 0x5f83d4
cmp eax, 0xa
jne 0x5f83bb
lea ecx, [esp + 0x60]
push 2
push ecx
jmp 0x5f83d5
cmp eax, 0x2f
jne 0x5f83c9
lea edx, [esp + 0x62]
push 2
push edx
jmp 0x5f83d5
cmp eax, 0x35
jne 0x5f83dd
push 2
lea eax, [esp + 0x44]
push eax
lea ecx, [edi + 0x6c]
call fcn.004e1260
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
add ecx, 3
dec eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x14], eax
jne 0x5f8301
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x20]
add esi, eax
push ecx
push esi
lea ecx, [edi + 0x50]
call fcn.004e1260
mov edx, dword [esp + 0x20]
lea ecx, [edi + 0x34]
add esi, edx
mov edx, dword [esp + 0x1c]
push edx
push esi
call fcn.004e1260
push 0
lea ecx, [edi + 0x88]
call fcn.004e0da0
lea ecx, [esp + 0x6c]
call fcn.004dfe70
mov eax, dword [esp + 0x140]
push ebp
mov byte [esp + 0x13c], 2
mov cl, byte [eax + 0x81]
mov dl, byte [eax + 0xb3]
lea esi, [eax + 0x480]
push esi
push ecx
push edx
lea ecx, [eax + 0x12c]
lea edx, [esp + 0x7c]
push ecx
push edx
push 0
push 0
push eax
mov ecx, edi
call fcn.005f2840
lea ecx, [esp + 0x6c]
mov byte [esp + 0x138], 1
call fcn.004e0890
lea ecx, [esp + 0x34]
mov byte [esp + 0x138], 0
call fcn.004d80a0
jmp 0x5f86f1
mov eax, dword [ebp]
push str.Invalid_challenge_length
jmp 0x5f84ab
mov eax, dword [ebp]
push str.Invalid_cipher_list_length
mov ecx, ebp
call dword [eax + 0x14]
mov ecx, dword [esp + 0x144]
mov edx, dword [esp + 0x14c]
push ebp
push ecx
push 0xa
push edx
mov ecx, dword [esp + 0x150]
call fcn.005f4c00
lea ecx, [esp + 0x34]
mov byte [esp + 0x138], 0
call fcn.004d80a0
jmp 0x5f929a
mov eax, dword [ebp]
push str.Failed_to_read_TLS_record__1_
mov ecx, ebp
call dword [eax + 0x14]
mov ecx, dword [esp + 0x40]
and ecx, 0xff
push ecx
push 0x6e593c
mov ecx, ebp
call fcn.004effe0
mov edx, dword [esp + 0x20]
mov ecx, ebp
push edx
push str.recLen
call fcn.004effe0
mov ecx, edi
call fcn.005a8750
push eax
push str.dbSize
jmp 0x5f9293
mov ecx, dword [esp + 0x140]
and eax, 0xff
lea edx, [ecx + 0x470]
lea edi, [ecx + 0x474]
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], edi
mov dword [edx], eax
xor eax, eax
mov al, byte [esi + 1]
xor edx, edx
mov dword [edi], eax
mov dl, byte [esi + 2]
lea eax, [ecx + 0x478]
mov edi, edx
mov dword [esp + 0x28], eax
xor ecx, ecx
mov dword [eax], edi
mov al, byte [esi + 3]
mov cl, byte [esi + 4]
and eax, 0x7f
shl eax, 8
or eax, ecx
mov dword [esp + 0x20], eax
mov al, byte [ebp + 0x122]
test al, al
je 0x5f8698
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
cmp eax, 3
jne 0x5f85e3
test edi, edi
jne 0x5f85a0
mov esi, str.SSL_3.0
jmp 0x5f860b
cmp eax, 3
jne 0x5f85e3
cmp edi, 1
jne 0x5f85b1
mov esi, str.TLS_1.0
jmp 0x5f860b
cmp eax, 3
jne 0x5f85e3
cmp edi, 2
jne 0x5f85c2
mov esi, str.TLS_1.1
jmp 0x5f860b
cmp eax, 3
jne 0x5f85e3
cmp edi, eax
jne 0x5f85d2
mov esi, str.TLS_1.2
jmp 0x5f860b
cmp eax, 3
jne 0x5f85e3
cmp edi, 4
jne 0x5f85e3
mov esi, str.TLS_1.3
jmp 0x5f860b
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
push ecx
push edx
push str.v_d._d
lea eax, [esp + 0x9c]
push 0x20
push eax
call fcn.004edc50
add esp, 0x14
lea esi, [esp + 0x90]
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
cmp eax, 0x14
jne 0x5f861d
mov eax, str.ChangeCipherSpec
jmp 0x5f865e
cmp eax, 0x15
jne 0x5f8629
mov eax, str.Alert
jmp 0x5f865e
cmp eax, 0x16
jne 0x5f8635
mov eax, str.Handshake
jmp 0x5f865e
cmp eax, 0x17
jne 0x5f8641
mov eax, str.Application
jmp 0x5f865e
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x6c]
push edx
push str.ct_d
push 0x20
push eax
call fcn.004edc30
add esp, 0x10
lea eax, [esp + 0x6c]
mov ecx, dword [esp + 0x24]
cmp dword [ecx], 0x17
je 0x5f8698
lea edx, [esp + 0x20]
push edx
push eax
push esi
push str._s___s__sz_d
lea eax, [esp + 0xc0]
push 0x80
push eax
call fcn.004edc90
mov edx, dword [ebp]
add esp, 0x18
lea eax, [esp + 0xb0]
mov ecx, ebp
push eax
call dword [edx + 0x18]
mov ecx, dword [esp + 0x140]
lea esi, [ecx + 0x480]
mov ecx, esi
call fcn.004dd9e0
mov eax, dword [esp + 0x14c]
mov ecx, dword [esp + 0x148]
lea edx, [esp + 0x64]
push edx
mov edx, dword [esp + 0x24]
push ebp
push eax
push ecx
mov ecx, dword [esp + 0x154]
push esi
push edx
call fcn.00622130
test al, al
mov byte [esp + 0x40], al
je 0x5f91d5
mov ecx, esi
call fcn.005a8750
cmp eax, dword [esp + 0x20]
jne 0x5f91d5
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x140]
cmp dword [eax], 0x14
jne 0x5f8711
cmp dword [edi + 0x40], 3
jne 0x5f8711
cmp dword [edi + 0x44], 4
je 0x5f91ba
mov al, byte [ebx + 0x98]
test al, al
je 0x5f8f37
lea ecx, [esp + 0x6c]
call fcn.004dfe70
mov eax, dword [edi + 0x40]
mov byte [esp + 0x138], 3
cmp eax, 3
jne 0x5f8746
cmp dword [edi + 0x44], 4
jne 0x5f8746
mov cl, 1
mov byte [esp + 0x12], cl
jmp 0x5f874f
mov byte [esp + 0x12], 0
mov cl, byte [esp + 0x12]
mov eax, dword [ebx + 0xac]
cmp eax, 6
jne 0x5f89d8
test cl, cl
mov dword [esp + 0x14], 0x18
je 0x5f8772
mov dword [esp + 0x14], 0x10
mov ecx, esi
call fcn.005a8750
lea edi, [ebx + 0x69c]
mov dword [esp + 0x1c], eax
mov ecx, edi
call fcn.004dd9e0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
jae 0x5f87b9
mov edx, dword [ebp]
push str.GCM_fragment_not_large_enough.
mov ecx, ebp
call dword [edx + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, ebp
push eax
push str.tlsMsgLen
call fcn.004effe0
jmp 0x5f8edc
mov al, byte [esp + 0x12]
mov ecx, esi
test al, al
je 0x5f87ce
call fcn.005a8750
mov dword [esp + 0x14], eax
jmp 0x5f87ea
call fcn.005a8750
sub eax, 0x18
push 8
mov dword [esp + 0x18], eax
lea eax, [ebx + 0xec]
push eax
mov ecx, edi
call fcn.004e1260
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
push 5
mov dl, byte [ecx]
mov cl, byte [eax]
mov byte [esp + 0x54], dl
mov edx, dword [esp + 0x2c]
mov byte [esp + 0x55], cl
mov al, byte [edx]
lea edx, [esp + 0x54]
mov byte [esp + 0x56], al
mov eax, dword [esp + 0x18]
mov ecx, eax
push edx
shr ecx, 8
mov byte [esp + 0x5b], cl
mov ecx, edi
mov byte [esp + 0x5c], al
call fcn.004e1260
mov al, byte [ebp + 0x123]
test al, al
je 0x5f883e
push edi
push str.aesGcmAad
mov ecx, ebp
call fcn.004ef410
mov eax, dword [esp + 0x140]
cmp dword [eax + 0x40], 3
jne 0x5f88f1
cmp dword [eax + 0x44], 4
jne 0x5f88f1
mov ecx, dword [ebx + 0xf0]
mov eax, dword [ebx + 0xec]
lea edi, [ebx + 0xd0]
mov dword [esp + 0x3c], ecx
mov ecx, edi
mov byte [esp + 0x34], 0
mov byte [esp + 0x35], 0
mov byte [esp + 0x36], 0
mov byte [esp + 0x37], 0
mov dword [esp + 0x38], eax
call fcn.005a8750
cmp eax, 0xc
je 0x5f88a5
mov edx, dword [ebp]
push str.m_fixedIv_for_TLS_1.3_GCM_should_be_12_bytes
mov ecx, ebp
call dword [edx + 0x14]
jmp 0x5f8efb
mov ecx, edi
call fcn.004dda10
mov ecx, eax
lea eax, [esp + 0x34]
xor edi, edi
sub ecx, eax
lea eax, [esp + edi + 0x34]
mov dl, byte [eax + ecx]
xor byte [eax], dl
inc edi
cmp edi, 0xc
jl 0x5f88b6
mov al, byte [ebp + 0x123]
test al, al
je 0x5f88e2
lea eax, [esp + 0x34]
push 0xc
push eax
push str.aesGcmNonce
mov ecx, ebp
call fcn.004ef450
lea edx, [esp + 0x34]
push 0xc
lea ecx, [ebx + 0x650]
push edx
jmp 0x5f893e
lea edi, [ebx + 0xd0]
mov ecx, edi
call fcn.005a8750
cmp eax, 4
je 0x5f8910
mov eax, dword [ebp]
push str.GCM_fixed_IV_not_equal_to_4.
jmp 0x5f8ed7
mov ecx, edi
call fcn.004dda10
mov eax, dword [eax]
mov ecx, esi
mov dword [esp + 0x34], eax
call fcn.004dda10
mov ecx, dword [eax]
push 0xc
mov dword [esp + 0x3c], ecx
lea ecx, [ebx + 0x650]
mov edx, dword [eax + 4]
lea eax, [esp + 0x38]
mov dword [esp + 0x40], edx
push eax
call fcn.0052eac0
mov ecx, esi
call fcn.004dda10
mov ecx, dword [esp + 0x1c]
lea edi, [ebx + 0x6b8]
lea edx, [eax + ecx - 0x10]
mov ecx, edi
mov dword [esp + 0x14], edx
call fcn.004dd9e0
mov eax, dword [esp + 0x14]
push 0x10
push eax
mov ecx, edi
call fcn.004e1260
mov al, byte [ebp + 0x123]
test al, al
je 0x5f8988
push edi
push str.expected_aesGcmAuthTag
mov ecx, ebp
call fcn.004ef410
push 0x10
mov ecx, esi
call fcn.004dfbb0
lea eax, [ebx + 0x650]
push ebp
lea ecx, [ebx + 0xf8]
push eax
push ecx
mov ecx, dword [ebx + 0x6e0]
call fcn.005b6150
test al, al
jne 0x5f8b87
mov edx, dword [ebp]
push str.GCM_decrypt_setup_failed.
mov ecx, ebp
call dword [edx + 0x14]
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x14c]
push ebp
push eax
push 0x14
push ecx
jmp 0x5f8eef
cmp eax, 7
jne 0x5f8b8b
mov ecx, esi
call fcn.005a8750
cmp eax, 0x10
mov dword [esp + 0x50], eax
jae 0x5f8a18
mov edx, dword [ebp]
push str.AEAD_fragment_not_large_enough.
mov ecx, ebp
call dword [edx + 0x14]
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x14c]
push ebp
push eax
push 0x14
push ecx
mov ecx, edi
jmp 0x5f8ef6
lea edi, [ebx + 0x69c]
mov ecx, edi
call fcn.004dd9e0
mov al, byte [esp + 0x12]
mov ecx, esi
test al, al
je 0x5f8a3a
call fcn.005a8750
mov dword [esp + 0x14], eax
jmp 0x5f8a56
call fcn.005a8750
lea edx, [ebx + 0xec]
sub eax, 0x10
push 8
push edx
mov ecx, edi
mov dword [esp + 0x1c], eax
call fcn.004e1260
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
push 5
mov cl, byte [eax]
mov al, byte [edx]
mov byte [esp + 0x5c], cl
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x5d], al
mov eax, dword [esp + 0x18]
mov dl, byte [ecx]
mov ecx, eax
mov byte [esp + 0x5e], dl
lea edx, [esp + 0x5c]
shr ecx, 8
mov byte [esp + 0x5f], cl
push edx
mov ecx, edi
mov byte [esp + 0x64], al
call fcn.004e1260
mov ecx, dword [ebx + 0xf0]
mov eax, dword [ebx + 0xec]
lea edi, [ebx + 0xd0]
mov dword [esp + 0x3c], ecx
mov ecx, edi
mov byte [esp + 0x34], 0
mov byte [esp + 0x35], 0
mov byte [esp + 0x36], 0
mov byte [esp + 0x37], 0
mov dword [esp + 0x38], eax
call fcn.005a8750
cmp eax, 0xc
je 0x5f8adf
mov edx, dword [ebp]
push str.m_fixedIv_should_be_12_bytes
mov ecx, ebp
call dword [edx + 0x14]
jmp 0x5f8efb
mov ecx, edi
call fcn.004dda10
mov ecx, eax
lea eax, [esp + 0x34]
xor edi, edi
sub ecx, eax
lea eax, [esp + edi + 0x34]
mov dl, byte [eax + ecx]
xor byte [eax], dl
inc edi
cmp edi, 0xc
jl 0x5f8af0
lea edi, [ebx + 0x650]
lea eax, [esp + 0x34]
push 0xc
push eax
mov ecx, edi
call fcn.0052eac0
mov ecx, esi
call fcn.004dda10
mov ecx, dword [esp + 0x50]
lea edx, [eax + ecx - 0x10]
lea ecx, [ebx + 0x6b8]
mov dword [esp + 0x14], edx
call fcn.004dd9e0
mov eax, dword [esp + 0x14]
push 0x10
push eax
lea ecx, [ebx + 0x6b8]
call fcn.004e1260
push 0x10
mov ecx, esi
call fcn.004dfbb0
mov ecx, dword [ebx + 0x6e0]
lea eax, [ebx + 0xf8]
push ebp
push eax
mov edx, dword [ecx]
push edi
push 0
call dword [edx + 0xc]
mov ecx, dword [ebx + 0x6e0]
push ebp
lea eax, [ebx + 0xf8]
push edi
mov edx, dword [ecx]
push eax
call dword [edx + 0x2c]
test al, al
jne 0x5f8b87
mov eax, dword [ebp]
push str.AEAD_decrypt_setup_failed.
jmp 0x5f8ed7
mov cl, byte [esp + 0x12]
mov al, byte [ebp + 0x121]
mov dl, byte [ebp + 0x122]
mov byte [esp + 0x32], al
mov byte [ebp + 0x121], dl
cmp dword [ebx + 0xac], 6
jne 0x5f8ca4
lea eax, [esp + 0x6c]
push ebp
test cl, cl
lea edi, [ebx + 0x650]
push eax
mov ecx, esi
je 0x5f8c8c
call fcn.005a8750
push eax
mov ecx, esi
call fcn.004dda10
mov ecx, dword [ebx + 0x6e0]
push eax
lea eax, [ebx + 0xf8]
push edi
push eax
call fcn.0052ee10
lea ecx, [esp + 0x6c]
mov byte [esp + 0x12], al
call fcn.005a8750
test eax, eax
jbe 0x5f8c1b
lea ecx, [esp + 0x6c]
call fcn.004ddb00
test al, al
jne 0x5f8c1b
push 1
lea ecx, [esp + 0x70]
call fcn.004dfbb0
lea ecx, [esp + 0x6c]
call fcn.005a8750
test eax, eax
ja 0x5f8bf6
lea ecx, [esp + 0x6c]
call fcn.004ddb00
cmp al, 0x14
mov byte [esp + 0x14], al
jb 0x5f8c64
cmp al, 0x17
ja 0x5f8c64
push 1
lea ecx, [esp + 0x70]
call fcn.004dfbb0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
and ecx, 0xff
mov dword [edx], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax], 3
mov dword [ecx], 4
jmp 0x5f8db8
mov edx, dword [ebp]
push str.Invalid_TLS_1.3_actual_content_type..
mov ecx, ebp
call dword [edx + 0x14]
mov eax, dword [esp + 0x14]
mov ecx, ebp
and eax, 0xff
push eax
push str.actualContentType
call fcn.004effe0
jmp 0x5f8edc
call fcn.005a8750
sub eax, 8
mov ecx, esi
push eax
call fcn.004dda10
add eax, 8
jmp 0x5f8da0
test cl, cl
lea ecx, [esp + 0x6c]
push ebp
push ecx
lea edi, [ebx + 0x650]
mov ecx, esi
je 0x5f8d93
call fcn.005a8750
push eax
mov ecx, esi
call fcn.004dda10
mov ecx, dword [ebx + 0x6e0]
push eax
lea eax, [ebx + 0xf8]
push edi
push eax
call fcn.0052ee10
lea ecx, [esp + 0x6c]
mov byte [esp + 0x12], al
call fcn.005a8750
test eax, eax
jbe 0x5f8d11
lea ecx, [esp + 0x6c]
call fcn.004ddb00
test al, al
jne 0x5f8d11
push 1
lea ecx, [esp + 0x70]
call fcn.004dfbb0
lea ecx, [esp + 0x6c]
call fcn.005a8750
test eax, eax
ja 0x5f8cec
lea ecx, [esp + 0x6c]
call fcn.004ddb00
cmp al, 0x14
mov byte [esp + 0x14], al
jb 0x5f8d57
cmp al, 0x17
ja 0x5f8d57
push 1
lea ecx, [esp + 0x70]
call fcn.004dfbb0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
and edx, 0xff
mov dword [eax], edx
mov edx, dword [esp + 0x28]
mov dword [ecx], 3
mov dword [edx], 4
jmp 0x5f8db8
mov eax, dword [ebp]
push str.Invalid_TLS_1.3_actual_content_type.
mov ecx, ebp
call dword [eax + 0x14]
mov ecx, dword [esp + 0x14]
and ecx, 0xff
push ecx
push str.actualContentType
mov ecx, ebp
call fcn.004effe0
mov edx, dword [esp + 0x144]
mov eax, dword [esp + 0x14c]
push ebp
push edx
push 0x14
push eax
jmp 0x5f8eef
call fcn.005a8750
push eax
mov ecx, esi
call fcn.004dda10
mov ecx, dword [ebx + 0x6e0]
push eax
lea eax, [ebx + 0xf8]
push edi
push eax
call fcn.0052ee10
mov byte [esp + 0x12], al
mov al, byte [esp + 0x12]
mov dl, byte [esp + 0x32]
test al, al
mov byte [ebp + 0x121], dl
jne 0x5f8dd7
mov eax, dword [ebp]
push str.Failed_to_decrypt_SSL_TLS_record.
jmp 0x5f8ed7
mov eax, dword [ebx + 0xac]
cmp eax, 6
jne 0x5f8eaa
mov ecx, dword [ebx + 0x6e0]
push ebp
lea eax, [ebx + 0xf8]
push edi
push eax
call fcn.005b61d0
test al, al
jne 0x5f8e0b
mov eax, dword [ebp]
push str.GCM_decrypt_finalize_failed.
jmp 0x5f8ed7
mov al, byte [ebp + 0x123]
test al, al
je 0x5f8e22
mov eax, dword [ebp]
push str.gcm_decrypt_finalize_success.
mov ecx, ebp
call dword [eax + 0x18]
lea eax, [esp + 0x6c]
mov ecx, esi
push eax
call fcn.004e0c50
mov edi, dword [esp + 0x140]
mov byte [edi + 0x47c], 1
mov eax, dword [ebx + 0xac]
cmp eax, 6
je 0x5f8f26
cmp eax, 0x63
je 0x5f8f26
cmp eax, 7
je 0x5f8f26
push ebp
mov ecx, esi
call fcn.004e1bd0
test al, al
jne 0x5f8f11
mov edx, dword [ebp]
push str.Invalid_block_cipher_padding_detected.
mov ecx, ebp
call dword [edx + 0x14]
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x14c]
push ebp
push eax
push 0x14
push ecx
mov ecx, edi
call fcn.005f4c00
lea ecx, [esp + 0x6c]
mov byte [esp + 0x138], 0
call fcn.004e0890
jmp 0x5f929a
cmp eax, 7
jne 0x5f8e22
mov ecx, dword [ebx + 0x6e0]
push ebp
lea eax, [ebx + 0xf8]
push edi
mov edx, dword [ecx]
push eax
call dword [edx + 0x30]
test al, al
jne 0x5f8e22
mov eax, dword [ebp]
push str.AEAD_decrypt_finalize_failed.
mov ecx, ebp
call dword [eax + 0x14]
mov ecx, dword [esp + 0x144]
mov edx, dword [esp + 0x14c]
push ebp
push ecx
push 0x14
push edx
mov ecx, dword [esp + 0x150]
call fcn.005f4c00
lea ecx, [esp + 0x6c]
mov byte [esp + 0x138], 0
call fcn.004e0890
jmp 0x5f929a
mov ecx, esi
call fcn.004ddb00
and eax, 0xff
mov ecx, esi
inc eax
push eax
call fcn.004dfbb0
lea ecx, [esp + 0x6c]
mov byte [esp + 0x138], 0
call fcn.004e0890
mov eax, dword [ebx + 0xac]
cmp eax, 6
je 0x5f919d
cmp eax, 7
je 0x5f919d
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x5f919d
cmp eax, 1
mov dword [esp + 0x18], 0x10
jne 0x5f8f74
mov dword [esp + 0x18], 0x14
jmp 0x5f8f90
cmp eax, 7
jne 0x5f8f83
mov dword [esp + 0x18], 0x20
jmp 0x5f8f90
cmp eax, 2
jne 0x5f8f90
mov dword [esp + 0x18], 0x30
mov ecx, esi
call fcn.005a8750
mov edi, eax
mov eax, dword [esp + 0x18]
cmp edi, eax
jae 0x5f8fd2
mov edx, dword [ebp]
push str.SSL_TLS_record_shorter_than_MAC_length_
mov ecx, ebp
call dword [edx + 0x14]
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x14c]
push ebp
push eax
push 0x14
push ecx
mov ecx, dword [esp + 0x150]
call fcn.005f4c00
jmp 0x5f929a
lea ecx, [esp + 0x90]
call fcn.004dfe70
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x90]
sub edi, eax
push eax
push edi
push esi
mov byte [esp + 0x144], 4
call fcn.004de770
mov edx, dword [esp + 0x18]
mov ecx, esi
push edx
call fcn.004dfbb0
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x1c], 0
cmp dword [edi], 3
jne 0x5f90af
mov eax, dword [esp + 0x28]
cmp dword [eax], 2
jl 0x5f90af
mov eax, dword [ebx + 0xc4]
test eax, eax
jbe 0x5f90af
mov ecx, esi
call fcn.005a8750
mov ecx, dword [ebx + 0xc4]
cmp eax, ecx
jb 0x5f9079
mov edi, ecx
lea ecx, [esp + 0xb0]
push ebp
push ecx
mov ecx, esi
call fcn.005a8750
sub eax, edi
mov ecx, esi
push eax
push edi
call fcn.004dda70
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
push eax
mov eax, dword [edx]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x38]
push edx
mov ecx, dword [eax]
push ecx
jmp 0x5f90d9
mov edx, dword [ebp]
push str.Message_not_long_enough_for_the_MAC.
mov ecx, ebp
call dword [edx + 0x14]
mov ecx, esi
call fcn.005a8750
push eax
push str.tlsMsgSize
mov ecx, ebp
call fcn.004effe0
mov eax, dword [ebx + 0xc4]
mov ecx, ebp
push eax
push str.cipherSuiteRecordIvLen
call fcn.004effe0
jmp 0x5f90e6
lea ecx, [esp + 0xb0]
push ebp
push ecx
mov ecx, esi
call fcn.005a8750
push eax
mov ecx, esi
call fcn.004dda10
mov edx, dword [esp + 0x34]
mov ecx, dword [edi]
push eax
mov eax, dword [edx]
mov edx, dword [esp + 0x34]
push eax
push ecx
mov eax, dword [edx]
push eax
push 0
mov ecx, ebx
call fcn.005f3650
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x90]
lea edi, [esp + 0xb0]
call fcn.004dda10
mov ecx, dword [esp + 0x18]
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5f9189
mov eax, dword [ebp]
push str.Invalid_MAC
mov ecx, ebp
call dword [eax + 0x14]
mov ecx, dword [esp + 0x18]
push ecx
push str.macLen
mov ecx, ebp
call fcn.004effe0
mov edx, dword [esp + 0x1c]
mov ecx, ebp
push edx
push str.macLen2
call fcn.004effe0
lea ecx, [esp + 0x90]
call fcn.005a8750
push eax
push str.dbMacSize
mov ecx, ebp
call fcn.004effe0
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x14c]
push ebp
push eax
push 0x14
push ecx
mov ecx, dword [esp + 0x150]
call fcn.005f4c00
lea ecx, [esp + 0x90]
mov byte [esp + 0x138], 0
call fcn.004e0890
jmp 0x5f929a
lea ecx, [esp + 0x90]
mov byte [esp + 0x138], 0
call fcn.004e0890
mov ecx, 0xffffff14
lea eax, [ebx + 0xf3]
sub ecx, ebx
mov dl, byte [eax]
inc dl
mov byte [eax], dl
jne 0x5f91ba
dec eax
lea edx, [ecx + eax]
test edx, edx
jge 0x5f91aa
lea ecx, [esp + 0x44]
mov dword [esp + 0x138], 0xffffffff
call fcn.004f03e0
mov al, 1
jmp 0x5f92b0
mov eax, dword [ebp]
push str.Failed_to_read_TLS_record__2_
mov ecx, ebp
call dword [eax + 0x14]
mov ecx, esi
call fcn.005a8750
push eax
push str.tlsRec_msg
mov ecx, ebp
call fcn.004effe0
mov ecx, dword [esp + 0x20]
push ecx
push str.msgLen
mov ecx, ebp
call fcn.004effe0
mov edx, dword [esp + 0x64]
mov ecx, ebp
push edx
push str.nReadNBytes
call fcn.004effe0
mov eax, dword [esp + 0x40]
and eax, 0xff
push eax
push str.status
jmp 0x5f9293
mov ecx, esi
call fcn.00514c80
test al, al
je 0x5f923e
mov al, byte [esi + 0xac]
test al, al
je 0x5f929a
mov edx, dword [ebp]
push str.Failed_to_read_beginning_of_SSL_TLS_record.
mov ecx, ebp
call dword [edx + 0x14]
mov eax, dword [esp + 0x40]
mov ecx, ebp
and eax, 0xff
push eax
push 0x6e593c
call fcn.004effe0
mov ecx, edi
call fcn.005a8750
push eax
push str.dbSize
mov ecx, ebp
call fcn.004effe0
mov ecx, dword [esp + 0x64]
push ecx
push str.nReadNBytes
mov ecx, ebp
call fcn.004effe0
mov edx, dword [esp + 0x148]
push edx
push str.idleTimeoutMs
mov ecx, ebp
call fcn.004effe0
lea ecx, [esp + 0x44]
mov dword [esp + 0x138], 0xffffffff
call fcn.004f03e0
xor al, al
mov ecx, dword [esp + 0x130]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x12c
ret 0x14