Function at 0xbbbc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
mov eax, dword [0x1a700c]
xor eax, esp
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
push ebx
push esi
push edi
mov dword [esp + 0x38], edx
xor edi, edi
mov dword [esp + 0x34], eax
xor edx, edx
mov eax, dword [ecx + 0x298]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], edi
movlpd qword [esp + 0x28], xmm0
cmp eax, dword [ecx + 0x29c]
je 0xbbc26
push 0x9d1
push str.civetweb.c
push str.conn__request_len__conn__data_len
call fcn.0015c848
mov ecx, dword [esp + 0x20]
add esp, 0xc
xor edx, edx
mov eax, dword [ecx]
cmp dword [eax], edi
jne 0xbbfaa
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
test edx, edx
jne 0xbbf9d
xorps xmm0, xmm0
mov word [esp + 0x48], dx
movq qword [esp + 0x40], xmm0
lea ebx, [esp + 0x40]
mov esi, 2
xor edi, edi
push esi
mov edx, ebx
call fcn.000b9730
add esp, 4
test eax, eax
jle 0xbbc80
mov ecx, dword [esp + 0x14]
sub esi, eax
add edi, eax
add ebx, eax
test esi, esi
jg 0xbbc61
jmp 0xbbc87
test edi, edi
cmovne eax, edi
mov edi, eax
cmp edi, 2
je 0xbbc96
mov edx, 1
jmp 0xbbf80
mov al, byte [esp + 0x40]
and al, 0xf
cmp al, 8
je 0xbbf99
mov al, byte [esp + 0x41]
and al, 0x7f
movzx eax, al
cdq
mov ecx, eax
mov eax, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], eax
test eax, eax
jb 0xbbd54
ja 0xbbccd
cmp ecx, 0x7e
jbe 0xbbd57
mov esi, 8
lea edi, [esp + 0x42]
xor ebx, ebx
mov ecx, dword [esp + 0x14]
mov edx, edi
push esi
call fcn.000b9730
add esp, 4
test eax, eax
jle 0xbbcf7
sub esi, eax
add ebx, eax
add edi, eax
test esi, esi
jg 0xbbcd8
jmp 0xbbcfe
test ebx, ebx
cmovne eax, ebx
mov ebx, eax
cmp ebx, 8
je 0xbbd2c
push str.failed_to_read_websocket_length
push 0x17bec4
push 0x9ea
push str.read_websocket
push 0x188be0
call fcn.000c0810
mov edx, eax
mov dword [esp + 0x30], edx
jmp 0xbbdbf
push dword [esp + 0x46]
mov ebx, dword [sym.imp.WS2_32.dll_htonl]
call ebx
push dword [esp + 0x42]
mov esi, eax
call ebx
xor ecx, ecx
add ecx, esi
mov dword [esp + 0x18], ecx
adc eax, 0
mov dword [esp + 0x20], eax
jmp 0xbbde2
cmp ecx, 0x7e
jne 0xbbde2
test eax, eax
jne 0xbbde2
mov esi, 2
lea edi, [esp + 0x42]
xor ebx, ebx
mov ecx, dword [esp + 0x14]
mov edx, edi
push esi
call fcn.000b9730
add esp, 4
test eax, eax
jle 0xbbd8f
sub esi, eax
add ebx, eax
add edi, eax
test esi, esi
jg 0xbbd70
jmp 0xbbd96
test ebx, ebx
cmovne eax, ebx
mov ebx, eax
cmp ebx, 2
je 0xbbdcc
push str.failed_to_read_websocket_length
push 0x17bec4
push 0x9ef
push str.read_websocket
push 0x188be0
call fcn.000c0810
mov edx, eax
mov dword [esp + 0x30], eax
add esp, 0x14
test edx, edx
jne 0xbbf84
jmp 0xbbde2
push dword [esp + 0x42]
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
cdq
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
test byte [esp + 0x41], 0x80
je 0xbbe33
mov esi, 4
lea edi, [esp + 0x3c]
xor ebx, ebx
mov ecx, dword [esp + 0x14]
mov edx, edi
push esi
call fcn.000b9730
add esp, 4
test eax, eax
jle 0xbbe13
sub esi, eax
add ebx, eax
add edi, eax
test esi, esi
jg 0xbbdf4
jmp 0xbbe1a
test ebx, ebx
cmovne eax, ebx
mov ebx, eax
cmp ebx, 4
je 0xbbe33
push str.failed_to_read_websocket_mask_key
push 0x17bec4
push 0x9f7
jmp 0xbbf6c
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0x30], esi
ja 0xbbe73
jb 0xbbe49
cmp dword [esp + 0x28], ebx
jae 0xbbe73
mov eax, dword [esp + 0x10]
test eax, eax
je 0xbbe5a
push eax
call fcn.00158d47
add esp, 4
push ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], esi
call fcn.0015c8ae
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
jmp 0xbbe77
mov edi, dword [esp + 0x10]
test edi, edi
jne 0xbbea7
push str.failed_to_create_websocket_payload_buffer
push 0x17bec4
push 0xa04
push str.read_websocket
push 0x188be0
call fcn.000c0810
mov edx, eax
add esp, 0x14
mov dword [esp + 0x1c], edx
jmp 0xbbf88
mov eax, dword [esp + 0x18]
mov esi, ebx
xor ebx, ebx
test eax, eax
jle 0xbbed0
mov ecx, dword [esp + 0x14]
mov edx, edi
push esi
call fcn.000b9730
add esp, 4
test eax, eax
jle 0xbbf2e
sub esi, eax
add ebx, eax
add edi, eax
test esi, esi
jg 0xbbeb3
mov eax, ebx
mov ebx, dword [esp + 0x18]
cdq
cmp ebx, eax
jne 0xbbf5d
mov esi, dword [esp + 0x20]
cmp esi, edx
jne 0xbbf5d
test byte [esp + 0x41], 0x80
je 0xbbf35
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
test esi, esi
jb 0xbbf35
ja 0xbbf01
test ebx, ebx
je 0xbbf35
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
nop dword [eax]
mov eax, ecx
and eax, 3
mov al, byte [esp + eax + 0x3c]
xor byte [ecx + edi], al
add ecx, 1
adc edx, 0
cmp edx, esi
jb 0xbbf10
ja 0xbbf39
cmp ecx, ebx
jb 0xbbf10
jmp 0xbbf39
test ebx, ebx
cmovne eax, ebx
jmp 0xbbed2
mov edi, dword [esp + 0x10]
push dword [esp + 0x34]
movzx eax, byte [esp + 0x44]
push ebx
push edi
and eax, 0xf
push eax
push dword [esp + 0x24]
call dword [esp + 0x4c]
add esp, 0x14
test eax, eax
jne 0xbbf9d
mov edx, dword [esp + 0x1c]
jmp 0xbbf88
push str.failed_to_read_websocket_payload
push 0x17bec4
push 0xa08
push str.read_websocket
push 0x188be0
call fcn.000c0810
mov edx, eax
add esp, 0x14
mov dword [esp + 0x1c], edx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
cmp dword [eax], 0
je 0xbbc40
jmp 0xbbf9d
mov edi, dword [esp + 0x10]
test edi, edi
je 0xbbfaa
push edi
call fcn.00158d47
add esp, 4
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00150cb2
mov esp, ebp
pop ebp
ret