Function at 0x506d1a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, 9
push 0
push 0
dec ecx
jne 0x506ab8
push ebx
push esi
push edi
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x506d8b
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x506d44
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x42], 0
jne 0x506b00
lea eax, [ebp - 0x38]
call fcn.004452b4
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
add eax, 0x42
call fcn.004051f8
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x42], 0
je 0x506d3a
mov byte [ebp - 1], 1
lea eax, [ebp - 0x18]
mov edx, 0x506da4
call fcn.0040523c
cmp dword [0x5497d0], 0
jne 0x506b4a
mov dl, 1
mov eax, dword [0x419d20]
call fcn.00404238
mov dword [0x5497d0], eax
mov edx, 0x5497d0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x42]
mov cl, 1
call fcn.00444130
mov eax, dword [0x5497d0]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x506d3a
inc eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], 0
xor eax, eax
push ebp
push 0x506d24
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x3c]
mov edx, dword [ebp - 0x2c]
mov eax, dword [0x5497d0]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x3c]
lea eax, [ebp - 0x24]
mov ecx, 0x506db0
call fcn.004054d8
mov eax, dword [ebp - 0x24]
call fcn.00438560
test al, al
je 0x506d1a
xor eax, eax
push ebp
push 0x506d13
push dword fs:[eax]
mov dword fs:[eax], esp
mov ecx, dword [ebp - 0x24]
mov dl, 1
mov eax, dword [0x4f98dc]
call fcn.004f9994
mov dword [ebp - 0x20], eax
xor eax, eax
push ebp
push 0x506bed
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x506dcc
mov eax, dword [ebp - 0x20]
call fcn.004f9e50
mov ebx, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x506c08
test bl, bl
je 0x506cfd
lea eax, [ebp - 0x28]
mov edx, 0x506ddc
call fcn.0040523c
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
call fcn.004f9e14
mov dword [ebp - 0x30], eax
xor eax, eax
push ebp
push 0x506cf6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x30]
call fcn.004fa7d8
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x506ce0
inc ebx
xor esi, esi
mov edx, esi
mov eax, dword [ebp - 0x30]
call fcn.004fae00
push ebp
mov edx, 0x506e14
mov eax, dword [ebp - 0x30]
call fcn.004fa7e8
mov edx, eax
lea ecx, [ebp - 0x40]
mov eax, dword [ebp - 0x30]
call fcn.004fad88
mov eax, dword [ebp - 0x40]
push eax
mov edx, 0x506e28
mov eax, dword [ebp - 0x30]
call fcn.004fa7e8
mov edx, eax
lea ecx, [ebp - 0x44]
mov eax, dword [ebp - 0x30]
call fcn.004fad88
mov eax, dword [ebp - 0x44]
push eax
mov edx, 0x506e3c
mov eax, dword [ebp - 0x30]
call fcn.004fa7e8
mov edx, eax
lea ecx, [ebp - 0x48]
mov eax, dword [ebp - 0x30]
call fcn.004fad88
mov eax, dword [ebp - 0x48]
push eax
mov edx, 0x506e48
mov eax, dword [ebp - 0x30]
call fcn.004fa7e8
mov edx, eax
mov eax, dword [ebp - 0x30]
call fcn.004fab60
mov edx, eax
xor dl, 1
pop eax
pop ecx
call fcn.005065a0
pop ecx
inc esi
dec ebx
jne 0x506c4f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x506cfd
mov eax, dword [ebp - 0x30]
call fcn.00404268
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x506d1a
mov eax, dword [ebp - 0x20]
call fcn.00404268
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x506d2e
inc dword [ebp - 0x2c]
dec dword [ebp - 0x34]
jne 0x506b68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x506d4e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x506d92
lea eax, [ebp - 0x48]
mov edx, 5
call fcn.004051c8
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.004051c8
lea eax, [ebp - 0x18]
call fcn.004051a4
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.004051c8
ret