Function at 0x79daac
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 5
push 0
push 0
dec ecx
jne 0x79dab5
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov byte [ebp - 0x21], cl
mov esi, edx
mov dword [ebp - 0x20], eax
xor eax, eax
push ebp
push 0x79de1c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
test eax, eax
je 0x79dae3
sub eax, 4
mov eax, dword [eax]
mov edi, eax
movzx eax, byte [ebp - 0x21]
dec al
je 0x79db02
dec al
je 0x79db8b
sub al, 2
je 0x79ddd6
jmp 0x79dde8
cmp edi, 0xb
jle 0x79db12
cmp byte [esi], 0
jne 0x79db12
cmp byte [esi + 1], 2
je 0x79db25
mov cl, 0x62
mov dl, 1
mov eax, dword [0x73d640]
call fcn.0073e5d8
call fcn.0040a258
mov ebx, 2
cmp edi, ebx
jle 0x79db39
cmp byte [esi + ebx], 0
je 0x79db39
inc ebx
cmp edi, ebx
jg 0x79db2e
cmp edi, ebx
jne 0x79db50
mov cl, 0x62
mov dl, 1
mov eax, dword [0x73d640]
call fcn.0073e5d8
call fcn.0040a258
inc ebx
sub edi, ebx
push edi
mov eax, dword [ebp + 8]
mov ecx, 1
mov edx, dword [0x404d18]
call fcn.0040d618
add esp, 4
mov eax, dword [ebp + 8]
mov eax, dword [eax]
test eax, eax
je 0x79db78
sub eax, 4
mov eax, dword [eax]
mov edx, dword [ebp + 8]
mov edx, dword [edx]
lea ecx, [esi + ebx]
xchg ecx, eax
call fcn.00407340
jmp 0x79ddfb
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x1c]
movzx edx, byte [eax + 4]
mov eax, dword [0x74d800]
call fcn.0074e628
add eax, eax
add eax, 2
cmp edi, eax
jle 0x79dbad
cmp byte [esi], 0
je 0x79dbc0
mov cl, 0x62
mov dl, 1
mov eax, dword [0x73d640]
call fcn.0073e5d8
call fcn.0040a258
lea eax, [ebp - 4]
mov edx, dword [0x404d18]
call fcn.0040d73c
lea edx, [ebp - 4]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x1c]
call fcn.007a11ec
mov eax, dword [ebp - 4]
test eax, eax
je 0x79dbe8
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
sub edi, dword [ebp - 0x28]
dec edi
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x28]
push eax
lea eax, [ebp - 8]
mov ecx, 1
mov edx, dword [0x404d18]
call fcn.0040d618
add esp, 4
lea eax, [esi + 1]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 8]
call fcn.00407340
mov eax, dword [ebp - 0x2c]
push eax
lea eax, [ebp - 0xc]
mov ecx, 1
mov edx, dword [0x404d18]
call fcn.0040d618
add esp, 4
mov eax, dword [ebp - 8]
test eax, eax
je 0x79dc40
sub eax, 4
mov eax, dword [eax]
inc eax
lea eax, [esi + eax]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0xc]
call fcn.00407340
lea eax, [ebp - 0x10]
mov edx, dword [0x404d18]
call fcn.0040d73c
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x1c]
movzx eax, byte [eax + 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0xc]
call fcn.0079cc44
mov eax, dword [ebp - 0x28]
push eax
lea eax, [ebp - 0x18]
mov ecx, 1
mov edx, dword [0x404d18]
call fcn.0040d618
add esp, 4
mov eax, dword [ebp - 0x28]
dec eax
test eax, eax
jl 0x79dcb8
inc eax
xor ebx, ebx
mov edx, dword [ebp - 8]
movzx edx, byte [edx + ebx]
mov ecx, dword [ebp - 0x10]
xor dl, byte [ecx + ebx]
mov ecx, dword [ebp - 0x18]
mov byte [ecx + ebx], dl
inc ebx
dec eax
jne 0x79dca1
lea eax, [ebp - 0x14]
mov edx, dword [0x404d18]
call fcn.0040d73c
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x1c]
movzx eax, byte [eax + 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x18]
call fcn.0079cc44
mov eax, dword [ebp - 0x2c]
push eax
lea eax, [ebp - 0x1c]
mov ecx, 1
mov edx, dword [0x404d18]
call fcn.0040d618
add esp, 4
mov eax, dword [ebp - 0x2c]
dec eax
test eax, eax
jl 0x79dd21
inc eax
xor ebx, ebx
mov edx, dword [ebp - 0xc]
movzx edx, byte [edx + ebx]
mov ecx, dword [ebp - 0x14]
xor dl, byte [ecx + ebx]
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + ebx], dl
inc ebx
dec eax
jne 0x79dd0a
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x2c]
jge 0x79dd3b
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.0073f124
test eax, eax
je 0x79dd4e
mov cl, 0x62
mov dl, 1
mov eax, dword [0x73d640]
call fcn.0073e5d8
call fcn.0040a258
mov ebx, dword [ebp - 0x28]
cmp ebx, dword [ebp - 0x2c]
jge 0x79dd81
mov eax, dword [ebp - 0x1c]
cmp byte [eax + ebx], 1
je 0x79dd81
mov eax, dword [ebp - 0x1c]
cmp byte [eax + ebx], 0
je 0x79dd7b
mov cl, 0x62
mov dl, 1
mov eax, dword [0x73d640]
call fcn.0073e5d8
call fcn.0040a258
inc ebx
cmp ebx, dword [ebp - 0x2c]
jl 0x79dd56
cmp ebx, dword [ebp - 0x2c]
jne 0x79dd99
mov cl, 0x62
mov dl, 1
mov eax, dword [0x73d640]
call fcn.0073e5d8
call fcn.0040a258
inc ebx
mov eax, dword [ebp - 0x2c]
sub eax, ebx
push eax
mov eax, dword [ebp + 8]
mov ecx, 1
mov edx, dword [0x404d18]
call fcn.0040d618
add esp, 4
mov eax, dword [ebp + 8]
mov eax, dword [eax]
test eax, eax
je 0x79ddc4
sub eax, 4
mov eax, dword [eax]
mov edx, dword [ebp + 8]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x1c]
add ecx, ebx
xchg ecx, eax
call fcn.00407340
jmp 0x79ddfb
mov eax, dword [ebp + 8]
mov edx, esi
mov ecx, dword [0x404d18]
call fcn.0040d780
jmp 0x79ddfb
mov cl, 2
mov dl, 1
mov eax, dword [0x73d640]
call fcn.0073e5d8
call fcn.0040a258
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x79de23
lea eax, [ebp - 0x1c]
mov edx, dword [0x404d18]
mov ecx, 7
call fcn.0040c588
ret