Function at 0x443bc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3c
mov eax, dword [ebp + 0x10]
lea edx, [eax + 4]
add eax, 0x13
and eax, 0xfffffff0
mov dword [ebp - 0x2c], edx
call fcn.0046d550
sub esp, eax
lea eax, [esp + 0xc]
mov dword [ebp - 0x34], eax
xor esi, esi
xor ebx, ebx
lea esi, [esi]
xor eax, eax
test ebx, ebx
setg al
mov edi, eax
or eax, esi
mov dword [esp + 8], eax
lea eax, [ebp - 0x19]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [sym.brltty.exe_io]
call dword [eax + 8]
test eax, eax
je 0x443d65
test esi, esi
jne 0x443c68
movzx ecx, byte [ebp - 0x19]
cmp cl, 0x10
je 0x443cf0
cmp cl, 1
je 0x443cd0
cmp cl, 4
je 0x443cb0
sub ecx, 1
cmp cl, 0x14
ja 0x443cb0
mov eax, 1
shl eax, cl
test eax, 0x108029
je 0x443cb0
test edi, edi
je 0x443be6
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], ebx
xor ebx, ebx
mov dword [esp], eax
call sym.brltty.exe_logShortPacket
jmp 0x443bf0
test edi, edi
mov eax, 1
je 0x443cb6
cmp dword [ebp - 0x2c], ebx
jbe 0x443c96
movzx edx, byte [ebp - 0x19]
mov ecx, dword [ebp - 0x34]
mov byte [ecx + ebx], dl
test eax, eax
lea edx, [ebx + 1]
jne 0x443c8d
cmp byte [ebp - 0x19], 4
je 0x443d00
mov ebx, edx
xor esi, esi
jmp 0x443bf0
je 0x443d88
movzx edx, byte [ebp - 0x19]
mov dword [ebp - 0x30], eax
mov dword [esp], edx
call sym.brltty.exe_logDiscardedByte
mov eax, dword [ebp - 0x30]
jmp 0x443c80
xor eax, eax
test edi, edi
jne 0x443c71
movzx eax, byte [ebp - 0x19]
xor esi, esi
mov dword [esp], eax
call sym.brltty.exe_logIgnoredByte
jmp 0x443bf0
xor eax, eax
test edi, edi
je 0x443c71
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], ebx
mov ebx, 1
mov dword [esp], eax
call sym.brltty.exe_logShortPacket
jmp 0x443bf0
mov esi, 1
jmp 0x443bf0
cmp dword [ebp - 0x2c], edx
jb 0x443be6
mov edi, dword [ebp - 0x34]
mov dword [esp + 4], edx
mov dword [esp], edi
call sym.brltty.exe_logInputPacket
cmp ebx, 1
jle 0x443db6
mov eax, 1
xor edx, edx
mov ecx, edi
lea esi, [esi]
xor dl, byte [ecx + eax]
add eax, 1
cmp eax, ebx
jne 0x443d30
test dl, dl
je 0x443db6
mov eax, dword [ebp + 8]
xor esi, esi
xor ebx, ebx
mov dword [esp + 8], 2
mov dword [esp + 4], 0x48d686
mov dword [esp], eax
mov eax, dword [sym.brltty.exe_io]
call dword [eax + 0xc]
jmp 0x443bf0
test edi, edi
jne 0x443da5
lea esi, [esi]
call sub.msvcrt.dll__errno
cmp dword [eax], 0xb
setne al
movzx eax, al
neg eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call sym.brltty.exe_logTruncatedPacket
mov eax, dword [ebp - 0x30]
jmp 0x443c9c
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym.brltty.exe_logPartialPacket
jmp 0x443d69
mov eax, dword [ebp + 8]
lea esi, [ebx - 2]
mov dword [esp + 8], 1
mov dword [esp + 4], 0x48d685
mov dword [esp], eax
mov eax, dword [sym.brltty.exe_io]
call dword [eax + 0xc]
mov eax, dword [ebp - 0x34]
movzx eax, byte [eax + ebx - 2]
cmp eax, dword [0x4bd3a4]
je 0x443be6
mov dword [0x4bd3a4], eax
mov eax, dword [ebp - 0x34]
sub ebx, 3
mov dword [esp + 8], ebx
add eax, 1
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, esi
jmp 0x443d80