Function at 0x1bbbd68
Capabilities:
Encode data using xor

Disassembly:
mov ebx, dword [0x5000fda8]
sub ebx, 3
mov ecx, ebx
mov esi, dword [0x5000fdbc]
test esi, esi
jne 0x1bbbd88
mov dword [0x50082b44], 0xffffffff
inc esi
xor ebx, ebx
mov bx, word [esi + 0x5002a800]
mov dl, byte [esi + 0x5002a802]
xor bh, dl
xor bl, dl
mov edx, dword [ebx*4 + 0x50042b04]
mov dword [ebx*4 + 0x50042b04], esi
mov dword [esi*4 + 0x50082b44], edx
inc esi
cmp esi, ecx
jbe 0x1bbbd8a
mov edx, dword [0x5000fdbc]
mov dword [0x501035d0], 2
mov ebx, dword [edx*4 + 0x50082b44]
test ebx, ebx
js 0x1bbbf3c
mov dword [0x501035bc], edx
sub dword [0x501035bc], 0x7ffe
mov eax, dword [0x501035c0]
mov dword [0x501035c4], eax
mov dword [0x501035c8], 2
mov al, byte [edx + 0x5002a802]
mov esi, dword [0x501035c8]
cmp byte [ebx + esi + 0x5002a800], al
jne 0x1bbbe6b
cmp ebx, dword [0x501035bc]
jle 0x1bbbe8a
mov ecx, 0x103
mov esi, edx
add esi, 0x5002a800
mov edi, ebx
add edi, 0x5002a800
cld
repe cmpsb byte [esi], byte es:[edi]
sub ecx, 0x102
neg ecx
cmp ecx, dword [0x501035c8]
jbe 0x1bbbe6b
mov dword [0x501035c8], ecx
mov dword [0x501035cc], ebx
dec ecx
mov dword [0x501035d0], ecx
mov dword [0x501035d4], ebx
mov al, byte [edx + ecx + 0x5002a801]
mov ah, byte [edx + 0x5002a800]
mov ebx, edx
inc ebx
jmp 0x1bbbfc9
dec dword [0x501035c4]
js 0x1bbbe8a
mov ebx, dword [ebx*4 + 0x50082b44]
test ebx, ebx
js 0x1bbbe8a
cmp ebx, dword [0x501035bc]
jge 0x1bbbdfe
cmp dword [0x501035c8], 3
jb 0x1bbbf3c
mov dword [0x501035d0], 2
mov ebx, dword [0x5000fda8]
sub ebx, edx
cmp ebx, dword [0x501035c8]
jae 0x1bbbec0
mov dword [0x501035c8], ebx
cmp dword [0x501035c8], 3
jb 0x1bbbf3c
mov edi, edx
sub edi, dword [0x501035cc]
cmp dword [0x501035c8], 3
ja 0x1bbbed9
cmp edi, dword [0x501035b8]
ja 0x1bbbf3c
mov esi, dword [0x501035c8]
mov ecx, dword [esi*4 + 0x500e317c]
sub esi, dword [ecx*4 + 0x5000e0b0]
add ecx, 0x100
shl esi, 0x10
or esi, ecx
inc dword [ecx*4 + 0x500e2c04]
mov ecx, dword [0x5010358c]
mov dword [ecx*4 + 0x500c2b84], esi
mov ebx, dword [edi*4 + 0x500e358c]
sub edi, dword [ebx*4 + 0x5000e1b0]
shl edi, 0x10
or edi, ebx
inc dword [ebx*4 + 0x500e307c]
mov dword [ecx*4 + 0x500c2b88], edi
add dword [0x5010358c], 2
add edx, dword [0x501035c8]
jmp 0x1bbbf5f
xor ebx, ebx
mov bl, byte [edx + 0x5002a800]
inc dword [ebx*4 + 0x500e2c04]
mov esi, dword [0x5010358c]
mov dword [esi*4 + 0x500c2b84], ebx
inc dword [0x5010358c]
inc edx
cmp edx, dword [0x5000fda8]
jae 0x1bbc0e3
cmp dword [0x5010358c], 0x8000
jb 0x1bbbdc5
pushal
call fcn.01bbbbb0
call fcn.01bbb1bc
popal
jmp 0x1bbbdc5
mov esi, dword [0x501035d0]
cmp byte [ebx + esi + 0x5002a800], al
je 0x1bbc03c
cmp esi, dword [0x501035c8]
jb 0x1bbbfc9
cmp byte [ebx + 0x5002a7ff], ah
jne 0x1bbbfc9
mov esi, dword [0x501035c8]
mov ecx, dword [edx + esi + 0x5002a7fd]
cmp ecx, dword [ebx + esi + 0x5002a7fc]
je 0x1bbc09f
dec dword [0x501035c4]
js 0x1bbbfe4
mov ebx, dword [ebx*4 + 0x50082b44]
test ebx, ebx
js 0x1bbbfe4
cmp ebx, dword [0x501035bc]
jge 0x1bbbf8c
cmp dword [0x501035c8], 0x103
jb 0x1bbbff6
dec dword [0x501035c8]
mov esi, dword [0x501035d0]
cmp dword [0x501035c8], esi
ja 0x1bbbe97
jb 0x1bbbf3c
mov esi, dword [0x501035d4]
cmp esi, dword [0x501035cc]
jbe 0x1bbbe97
sub esi, edx
neg esi
mov edi, edx
sub edi, dword [0x501035cc]
shr edi, 2
cmp esi, edi
jae 0x1bbbe97
jmp 0x1bbbf3c
mov ecx, 0x103
mov esi, edx
add esi, 0x5002a801
mov edi, ebx
add edi, 0x5002a800
cld
repe cmpsb byte [esi], byte es:[edi]
sub ecx, 0x102
neg ecx
cmp ecx, dword [0x501035d0]
jbe 0x1bbbfc9
mov dword [0x501035d0], ecx
mov dword [0x501035d4], ebx
mov al, byte [edx + ecx + 0x5002a801]
cmp ah, byte [ebx + 0x5002a7ff]
jne 0x1bbbfc9
inc ecx
mov dword [0x501035c8], ecx
mov dword [0x501035cc], ebx
dec dword [0x501035cc]
jmp 0x1bbbfc9
mov ecx, 0x102
mov esi, edx
add esi, 0x5002a801
mov edi, ebx
add edi, 0x5002a800
cld
repe cmpsb byte [esi], byte es:[edi]
sub ecx, 0x101
neg ecx
inc ecx
cmp ecx, dword [0x501035c8]
jbe 0x1bbbfc9
mov dword [0x501035c8], ecx
mov dword [0x501035cc], ebx
dec dword [0x501035cc]
jmp 0x1bbbfc9
ret