Function at 0x5f5971
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x8d5f40]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 0x10], 1
mov edx, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x38], edi
je 0x5f59b9
push 0x29
push str.d:package_cacheopenssl1.1.1g.2_ssl_record_ssl3_record_tls13.c
push 0x44
push 0x261
push 0x50
push esi
call fcn.005c5a4c
add esp, 0x18
or eax, 0xffffffff
jmp 0x5f5d2a
test edx, edx
je 0x5f59c5
mov ecx, dword [esi + 0x3ec]
jmp 0x5f59cb
mov ecx, dword [esi + 0x3cc]
mov eax, 0xf28
mov dword [ebp - 0x28], ecx
test edx, edx
push ebx
lea ebx, [eax - 8]
cmove eax, ebx
add eax, esi
test edx, edx
mov dword [ebp - 0x2c], eax
mov eax, 0x3f0
lea ebx, [eax - 0x20]
cmove eax, ebx
add eax, esi
mov dword [ebp - 0x34], eax
test ecx, ecx
je 0x5f5d0f
cmp dword [edi + 4], 0x15
je 0x5f5d0f
push ecx
call fcn.0053b2f2
pop ecx
mov edx, eax
xor ecx, ecx
cmp dword [esi + 0x68], 4
mov dword [ebp - 0x30], edx
je 0x5f5a38
cmp dword [esi + 0x68], 3
je 0x5f5a38
mov eax, dword [esi + 0x7c]
mov ebx, dword [eax + 0x210]
test ebx, ebx
jne 0x5f5a33
push 0x59
jmp 0x5f5cf3
mov ebx, dword [ebx + 0x18]
jmp 0x5f5a6d
mov eax, dword [esi + 0x474]
test eax, eax
je 0x5f5a4a
cmp dword [eax + 0x1e4], ecx
ja 0x5f5a64
mov eax, dword [esi + 0x478]
test eax, eax
je 0x5f5cf1
cmp dword [eax + 0x1e4], ecx
jbe 0x5f5cf1
mov eax, dword [eax + 0x1bc]
mov ebx, dword [eax + 0x18]
mov eax, ebx
and eax, 0x3c000
mov dword [ebp - 0x40], eax
je 0x5f5ab0
and ebx, 0x30000
neg ebx
sbb ebx, ebx
and ebx, 0xfffffff8
add ebx, 0x10
mov dword [ebp - 0x24], ebx
cmp dword [ebp + 0x14], ecx
je 0x5f5aca
push ecx
push ebx
push 0x11
push dword [ebp - 0x28]
call fcn.0056ec59
add esp, 0x10
test eax, eax
jg 0x5f5aab
push 0x67
jmp 0x5f5cf3
mov edx, dword [ebp - 0x30]
jmp 0x5f5aca
test ebx, 0x3000
jne 0x5f5ac4
test ebx, 0x80000
je 0x5f5ced
push 0x10
pop ebx
mov dword [ebp - 0x24], ebx
cmp dword [ebp + 0x14], 0
jne 0x5f5ae6
mov ecx, dword [edi + 8]
lea eax, [ebx + 1]
cmp ecx, eax
jae 0x5f5ae1
xor eax, eax
jmp 0x5f5d29
sub ecx, ebx
mov dword [edi + 8], ecx
push 8
pop eax
cmp edx, eax
jae 0x5f5af7
push 0x82
jmp 0x5f5cf3
mov ebx, dword [ebp - 0x34]
lea esi, [edx - 8]
push esi
lea eax, [ebp - 0x1c]
push ebx
push eax
call fcn.00717660
lea eax, [ebp - 0x1c]
add esp, 0xc
mov edi, eax
xor edx, edx
sub ebx, eax
add esi, edi
mov edi, dword [ebp - 0x2c]
lea ecx, [esi + edx]
mov al, byte [ebx + ecx]
xor al, byte [edi + edx]
inc edx
mov byte [ecx], al
cmp edx, 8
jb 0x5f5b19
mov edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
push 8
pop eax
add byte [ecx + eax - 1], 1
jne 0x5f5b42
sub eax, 1
jne 0x5f5b36
test eax, eax
je 0x5f5d0a
push dword [ebp + 0x14]
mov esi, dword [ebp - 0x28]
lea eax, [ebp - 0x1c]
push eax
xor eax, eax
push eax
push eax
push eax
push esi
call fcn.0056ee3c
add esp, 0x18
test eax, eax
jle 0x5f5d0a
cmp dword [ebp + 0x14], 0
jne 0x5f5b8b
mov eax, dword [edi + 0x14]
add eax, dword [edi + 8]
push eax
push ebx
push 0x11
push esi
call fcn.0056ec59
add esp, 0x10
test eax, eax
jle 0x5f5d0a
push 0
push 5
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.005d7b8e
add esp, 0x10
test eax, eax
je 0x5f5ce1
push 1
push dword [edi + 4]
lea eax, [ebp - 0x60]
push eax
call fcn.005d7c3c
add esp, 0xc
test eax, eax
je 0x5f5ce1
push 2
push dword [edi]
lea eax, [ebp - 0x60]
push eax
call fcn.005d7c3c
add esp, 0xc
test eax, eax
je 0x5f5ce1
mov eax, dword [edi + 8]
add eax, ebx
push 2
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.005d7c3c
add esp, 0xc
test eax, eax
je 0x5f5ce1
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.005d7b2e
pop ecx
pop ecx
test eax, eax
je 0x5f5ce1
cmp dword [ebp - 0x3c], 5
jne 0x5f5ce1
lea eax, [ebp - 0x60]
push eax
call fcn.005d7aa7
pop ecx
test eax, eax
je 0x5f5ce1
cmp dword [ebp - 0x40], 0
je 0x5f5c49
push dword [edi + 8]
lea eax, [ebp - 0x20]
push 0
push eax
push 0
push esi
call fcn.0056f0cb
add esp, 0x14
test eax, eax
jle 0x5f5d0a
push 5
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push esi
call fcn.0056f0cb
add esp, 0x14
test eax, eax
jle 0x5f5d0a
push dword [edi + 8]
lea eax, [ebp - 0x20]
push dword [edi + 0x18]
push eax
push dword [edi + 0x14]
push esi
call fcn.0056f0cb
add esp, 0x14
test eax, eax
jle 0x5f5d0a
lea eax, [ebp - 0x44]
push eax
mov eax, dword [edi + 0x14]
add eax, dword [ebp - 0x20]
push eax
push esi
call fcn.0056ee18
add esp, 0xc
test eax, eax
jle 0x5f5d0a
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x20]
cmp eax, dword [edi + 8]
jne 0x5f5d0a
cmp dword [ebp + 0x14], 0
je 0x5f5d26
mov eax, dword [edi + 0x14]
add eax, dword [edi + 8]
push eax
push ebx
push 0x10
push esi
call fcn.0056ec59
add esp, 0x10
test eax, eax
jg 0x5f5cdc
push 0xbd
push str.d:package_cacheopenssl1.1.1g.2_ssl_record_ssl3_record_tls13.c
push 0x44
push 0x261
push 0x50
push dword [ebp - 0x48]
jmp 0x5f5d02
add dword [edi + 8], ebx
jmp 0x5f5d26
lea eax, [ebp - 0x60]
push eax
call fcn.005d7a21
pop ecx
jmp 0x5f5d0a
push 0x70
jmp 0x5f5cf3
push 0x4d
push str.d:package_cacheopenssl1.1.1g.2_ssl_record_ssl3_record_tls13.c
push 0x44
push 0x261
push 0x50
push esi
call fcn.005c5a4c
add esp, 0x18
or eax, 0xffffffff
jmp 0x5f5d29
push dword [edi + 8]
push dword [edi + 0x18]
push dword [edi + 0x14]
call fcn.00717be0
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [edi + 0x18], eax
xor eax, eax
inc eax
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.006fedff
leave
ret