Function at 0x480660
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov edx, edx
mov eax, ecx
push ebx
push esi
push edi
xchg esp, esp
cmp dword [eax + 0x820], 0
mov dword [ebp - 8], eax
jne 0x480926
nop
mov dword [esp - 0x38], esp
mov dword [esp - 4], 0x11a71501
xor dword [esp - 4], 0x7e8374b1
xor dword [esp - 4], 0x30da2c24
sub dword [esp - 4], 0x55d618cc
mov edi, edi
add dword [esp - 4], 0x514b5f23
xor dword [esp - 4], 0x72591cc8
sub dword [esp - 4], 0x292a8f0d
sub esp, 4
mov ecx, ecx
mov dword [ebp - 0x20], 0x6d984cc4
xor dword [ebp - 0x20], 0x665985ce
sub dword [ebp - 0x20], 0x74538d9
xor dword [ebp - 0x20], 0x554ed5cb
mov dword [esp - 0x20], 0x41fb0bc9
add dword [ebp - 0x20], 0xe7f6d65
sub dword [ebp - 0x20], 0x44a16648
mov dword [ebp - 0x1c], 0x6ff5304a
mov dword [esp - 0x20], edi
xor dword [ebp - 0x1c], 0x3e009af3
add dword [ebp - 0x1c], 0x1921b438
sub dword [ebp - 0x1c], 0x20fac056
add dword [ebp - 0x1c], 0x12f1b199
mov dword [esp - 0x40], ebx
mov word [ebp - 0x18], 0x1df4
add word [ebp - 0x18], 0x5519
xor word [ebp - 0x18], 0x43e1
sub word [ebp - 0x18], 0x21a1
mov esp, esp
add word [ebp - 0x18], 0x1eb7
add word [ebp - 0x18], 0x1a22
mov byte [ebp - 0x16], 0x6b
add byte [ebp - 0x16], 0x12
mov edx, edx
sub byte [ebp - 0x16], 0x79
add byte [ebp - 0x16], 0x67
add byte [ebp - 0x16], 0x10
xor byte [ebp - 0x16], 0x69
xchg esi, esi
mov dword [ebp - 0x10], 0x72c3d75e
xor dword [ebp - 0x10], 0x48238b47
add dword [ebp - 0x10], 0x3528c130
sub dword [ebp - 0x10], 0x454262a4
mov dword [esp - 0x44], ebx
add dword [ebp - 0x10], 0x250c4e5c
add dword [ebp - 0x10], 0xc59db5f
xor dword [ebp - 0x10], 0x5c2ce46b
xchg esp, esp
call fcn.0048b720
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [esp - 0x38], edi
xor edx, edx
lea esp, [esp]
movsx cx, byte [ebp + edx - 0x20]
mov word [eax + edx*2], cx
mov esp, esp
inc edx
mov edi, dword [ebp - 0x10]
cmp edx, edi
jb 0x4807b1
mov dword [esp - 0x40], ebx
cmp edi, 2
lea eax, [ebp - 0x14]
pushf
mov edx, 0x24ff84fd
mov ebx, ebx
add edx, 0x14b0473b
add edx, 0x14878efa
add edx, 0x26a7fcb6
xchg edx, edx
xor edx, 0x6c6283bc
sub edx, 0x18bdd452
popf
cmova eax, dword [ebp - 0x14]
xchg edx, edx
xor ecx, ecx
mov dword [ebp - 4], eax
lea eax, [edi + 1]
mov dword [esp - 0x40], esi
mul edx
seto cl
neg ecx
mov dword [esp - 0x2c], esp
or ecx, eax
push ecx
call fcn.0048b720
add esp, 4
xchg esi, esi
mov esi, eax
xor ebx, ebx
mov dword [ebp - 0xc], esi
test edi, edi
xchg ebp, ebp
je 0x480888
sub dword [ebp - 4], esi
mov edx, esi
mov ecx, ecx
mov esi, dword [ebp - 4]
mov edi, edi
mov ecx, ebx
mov dword [esp - 0x38], edi
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x49ba9762
xor eax, 0x4424e3b
mov ebp, ebp
add eax, 0x28b9a374
xor eax, 0x610b313f
add eax, 0x5bc4d64e
shl ecx, 3
mov ecx, ecx
inc ebx
sar eax, cl
cbw
mov dword [esp - 0x44], 0x515ba92d
xor ax, word [esi + edx - 2]
mov word [edx - 2], ax
cmp ebx, edi
mov edi, edi
jb 0x48083d
mov esi, dword [ebp - 0xc]
xor eax, eax
push eax
mov dword [esp - 0x1c], ecx
push esi
mov word [esi + edi*2], ax
call fcn.00473790
xchg ebx, ebx
mov ecx, dword [ebp - 8]
push esi
mov dword [ecx + 0x820], eax
mov dword [esp - 0x1c], edx
call fcn.0048b6f0
add esp, 0xc
cmp edi, 2
jbe 0x4808cb
mov esi, esi
push dword [ebp - 0x14]
call fcn.0048b6f0
add esp, 4
mov dword [esp - 0x20], 0x28c455d9
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x820]
test ebx, ebx
je 0x48094f
mov dword [esp - 0x1c], ebp
xor edi, edi
lea esi, [eax + 0x5b8]
lea esp, [esp]
mov eax, dword [esi + 4]
mov esi, esi
xor eax, 0x6fa836ea
push eax
push ebx
call fcn.00471c00
mov dword [esp - 0x18], 0x30507c49
add esp, 8
test eax, eax
je 0x48094f
xor eax, dword [0x4ba958]
mov dword [esp - 0x24], 0x448ce739
inc edi
mov dword [esi], eax
add esi, 8
mov edx, edx
cmp edi, 0xc
jb 0x4808eb
pop edi
mov dword [esp - 0x18], 0x6b9f6763
pop esi
mov al, 0x16
xor al, 0x58
mov dword [esp - 0xc], 0x224d32dd
sub al, 0x1e
xor al, 0x3b
xor al, 0x24
xchg esp, esp
add al, 0x4a
xor al, 0x78
pop ebx
mov esp, ebp
xchg edi, edi
pop ebp
ret
pop edi
pop esi
xor al, al
xchg edi, edi
pop ebx
mov esp, ebp
pop ebp
mov dword [esp - 0x14], ecx
ret