Function at 0x7b1b2c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 4]
call fcn.0040aa68
xor eax, eax
push ebp
push 0x7b20b4
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
push 0x7b2065
push dword fs:[0]
mov dword fs:[0], esp
mov byte [ebp - 0x1d], 0
push 0x20
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x49ae48]
call fcn.004c04d8
mov dword [ebp - 0x24], eax
push ebp
push 0x7b2054
push dword fs:[0]
mov dword fs:[0], esp
push 0x800000
lea eax, [ebp - 0xc]
mov ecx, 1
mov edx, dword [0x7b1af4]
call 0x40cf20
add esp, 4
mov eax, dword [ebp - 0xc]
call fcn.0040cd04
mov ecx, eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x24]
call 0x4bbedc
sub eax, 1
jno 0x7b1bdc
call 0x408a3c
sub eax, 8
jno 0x7b1be6
call 0x408a3c
test eax, eax
jl 0x7b2026
inc eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x28], 0
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x28]
movzx edx, byte [eax + edx + 7]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x28]
movzx eax, byte [eax + ecx + 6]
call fcn.007b1b24
movzx ebx, ax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x28]
add eax, edx
mov edx, 6
call 0x776de8
and eax, 0xffff
xor eax, 0xaaaa
cmp ebx, eax
jne 0x7b201a
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x28]
lea esi, [eax + edx]
mov eax, dword [ebp - 0xc]
call fcn.0040cd04
cdq
push edx
push eax
mov eax, dword [esi + 2]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x7b1c63
cmp eax, dword [esp]
pop edx
pop eax
jae 0x7b1c7c
jmp 0x7b1c67
pop edx
pop eax
jge 0x7b1c7c
cmp dword [esi + 2], 0
jbe 0x7b1c7c
mov ebx, dword [esi + 2]
add ebx, 8
jae 0x7b1c89
call 0x408a3c
jmp 0x7b1c89
or ebx, 0xffffffff
sub ebx, dword [ebp - 0x28]
jno 0x7b1c89
call 0x408a3c
mov eax, dword [ebp - 0xc]
call fcn.0040cd04
cdq
push edx
push eax
mov eax, dword [ebp - 0x28]
cdq
push edx
push eax
mov eax, ebx
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
jno 0x7b1cac
call 0x408a3c
add esp, 8
cmp edx, dword [esp + 4]
jne 0x7b1cc2
cmp eax, dword [esp]
pop edx
pop eax
jae 0x7b201a
jmp 0x7b1cca
pop edx
pop eax
jge 0x7b201a
mov eax, dword [ebp - 0x28]
cdq
push edx
push eax
mov eax, ebx
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
jno 0x7b1ce2
call 0x408a3c
add esp, 8
cmp edx, 0
jne 0x7b1cf5
cmp eax, 0
jbe 0x7b201a
jmp 0x7b1cfb
jle 0x7b201a
mov eax, dword [ebp - 0x28]
cdq
push edx
push eax
mov eax, ebx
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
jno 0x7b1d13
call 0x408a3c
add esp, 8
add eax, 7
adc edx, 0
jno 0x7b1d23
call 0x408a3c
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + eax]
push eax
mov eax, dword [ebp - 0x28]
cdq
push edx
push eax
mov eax, ebx
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
jno 0x7b1d43
call 0x408a3c
add esp, 8
add eax, 6
adc edx, 0
jno 0x7b1d53
call 0x408a3c
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + eax]
pop edx
call fcn.007b1b24
movzx eax, ax
push eax
mov eax, dword [ebp - 0x28]
cdq
push edx
push eax
mov eax, ebx
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
jno 0x7b1d7c
call 0x408a3c
add esp, 8
mov edi, eax
mov eax, dword [ebp - 0xc]
add eax, edi
mov edx, 6
call 0x776de8
and eax, 0xffff
xor eax, 0xaaaa
pop edx
cmp edx, eax
jne 0x7b201a
mov eax, dword [ebp - 0xc]
add eax, edi
mov edi, eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x28]
lea eax, [eax + edx + 8]
mov edx, ebx
sub edx, 8
jae 0x7b1dc0
call 0x408a3c
call 0x776de8
xor eax, 0xaaaaaaaa
cmp eax, dword [edi]
jne 0x7b201a
mov dl, 1
mov eax, dword [0x49b2fc]
call 0x408c6c
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x28]
lea edx, [eax + edx + 8]
mov ecx, ebx
sub ecx, 8
jae 0x7b1df7
call 0x408a3c
mov eax, dword [ebp - 0x2c]
call 0x4bbec8
push 0
push 0
mov eax, dword [ebp - 0x2c]
call 0x4bbbd4
mov ecx, dword [esi + 2]
sub ecx, 1
jae 0x7b1e18
call 0x408a3c
test ecx, ecx
jl 0x7b1e45
inc ecx
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 4]
add eax, edx
movzx eax, byte [eax]
movzx eax, al
movzx ebx, word [esi]
shr bx, 8
xor ax, bx
mov ebx, dword [ebp - 0x2c]
mov ebx, dword [ebx + 4]
add ebx, edx
mov byte [ebx], al
inc edx
dec ecx
jne 0x7b1e1f
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 4]
mov edx, dword [eax]
lea eax, [ebp - 0x10]
mov ecx, 0xfde9
call 0x40b34c
mov dl, 1
mov eax, dword [0x49b2fc]
call 0x408c6c
mov dword [ebp - 0x30], eax
xor ecx, ecx
push ebp
push 0x7b1f1f
push dword fs:[ecx]
mov dword fs:[ecx], esp
lea edx, [ebp - 0x38]
mov ecx, 4
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
cmp dword [ebp - 0x38], 0
jle 0x7b1ed5
mov ecx, dword [ebp - 0x2c]
mov dl, 1
mov eax, dword [0x524740]
call 0x5253f4
mov dword [ebp - 0x34], eax
xor eax, eax
push ebp
push 0x7b1ece
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
call 0x4c0890
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7b1ed5
mov eax, dword [ebp - 0x34]
call fcn.00408c9c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7b1f26
mov eax, dword [ebp - 0x2c]
call fcn.00408c9c
push 0
push 0
mov eax, dword [ebp - 0x30]
call 0x4bbbd4
lea eax, [ebp - 0x10]
call 0x40af4c
mov edx, eax
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x7b1f0c
sub eax, 4
mov eax, dword [eax]
mov ecx, eax
mov eax, dword [ebp - 0x30]
call 0x4bbedc
mov eax, dword [ebp - 0x30]
call fcn.00408c9c
ret
inc dword [ebp - 0x28]
dec dword [ebp - 0x3c]
jne 0x7b1bf9
push 0
lea eax, [ebp - 0xc]
mov ecx, 1
mov edx, dword [0x7b1af4]
call 0x40cf20
add esp, 4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7b205b
mov eax, dword [ebp - 0x24]
call fcn.00408c9c
ret