Function at 0x480640
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8ec
mov edi, dword [esp + 0x908]
lea esi, [esp + 0x1d8]
lea ebp, [esp + 0x8e0]
mov edx, edi
lea eax, [esp + 0x98]
call fcn.0047c930
lea edx, [edi + 0x20]
add edi, 0x40
lea eax, [esp + 0x138]
call fcn.0047c930
mov eax, esi
lea ecx, [esp + 0x98]
lea edx, [esp + 0x138]
call fcn.0047cd80
lea ebx, [esi + 0x50]
lea eax, [esi + 0x28]
add esi, 0x78
lea ecx, [esp + 0x98]
lea edx, [esp + 0x138]
call fcn.0047ce60
lea ecx, [esp + 0x138]
mov eax, ebx
lea edx, [esp + 0x98]
call fcn.0047d0c0
mov ecx, 0x56f840
mov edx, ebx
mov eax, ebx
call fcn.0047d0c0
cmp esi, ebp
jne 0x48065f
mov edi, dword [esp + 0x900]
mov edx, 0x28
test edi, 1
jne 0x480a37
test edi, 2
jne 0x480a26
mov ecx, edx
xor eax, eax
shr ecx, 2
test dl, 2
rep stosd dword es:[edi], eax
je 0x480712
xor eax, eax
add edi, 2
mov word [edi - 2], ax
and edx, 1
je 0x48071a
mov byte [edi], 0
mov eax, dword [esp + 0x900]
mov edx, 0x28
lea edi, [eax + 0x28]
test edi, 1
jne 0x480a11
test edi, 2
jne 0x480a00
mov ecx, edx
xor eax, eax
shr ecx, 2
test dl, 2
rep stosd dword es:[edi], eax
je 0x480758
xor ebp, ebp
add edi, 2
mov word [edi - 2], bp
and edx, 1
je 0x480760
mov byte [edi], 0
mov eax, dword [esp + 0x900]
mov edx, 0x28
lea edi, [eax + 0x50]
test edi, 1
mov dword [eax + 0x28], 1
jne 0x4809eb
test edi, 2
jne 0x4809da
mov ecx, edx
xor eax, eax
shr ecx, 2
test dl, 2
rep stosd dword es:[edi], eax
je 0x4807a5
xor ebx, ebx
add edi, 2
mov word [edi - 2], bx
and edx, 1
je 0x4807ad
mov byte [edi], 0
mov eax, dword [esp + 0x900]
mov edx, 0x28
lea edi, [eax + 0x78]
test edi, 1
mov dword [eax + 0x50], 1
jne 0x4809c5
test edi, 2
jne 0x4809b4
mov ecx, edx
xor eax, eax
shr ecx, 2
test dl, 2
rep stosd dword es:[edi], eax
je 0x4807f2
xor eax, eax
add edi, 2
mov word [edi - 2], ax
and edx, 1
je 0x4807fa
mov byte [edi], 0
mov dword [esp + 0x1c], 0x3f
lea esi, [esp + 0x20]
mov edi, dword [esp + 0x1c]
xor ebp, ebp
xor edx, edx
mov ebx, dword [esp + 0x904]
mov eax, edi
and edi, 7
shr eax, 3
add ebx, eax
movzx eax, byte [ebx + edx*8]
mov ecx, edi
sar eax, cl
mov ecx, edx
and eax, 1
add edx, 1
shl eax, cl
or ebp, eax
cmp edx, 4
jne 0x48081f
mov eax, ebp
mov edi, esi
mov byte [esp + 0x1b], al
mov ecx, 0xa
xor eax, eax
rep stosd dword es:[edi], eax
lea edi, [esp + 0x48]
mov dword [esp + 0x20], 1
lea ebx, [esp + 0x228]
mov dword [esp + 0x14], 1
mov cl, 0xa
rep stosd dword es:[edi], eax
lea edi, [esp + 0x70]
mov dword [esp + 0x48], 1
mov cl, 0xa
rep stosd dword es:[edi], eax
mov edi, 1
lea esi, [esi]
movzx ecx, byte [esp + 0x1b]
lea ebp, [ebx - 0x50]
xor edx, edx
xor cl, byte [esp + 0x14]
movzx ecx, cl
sub ecx, 1
sar ecx, 0x1f
jmp 0x4808a3
mov edi, dword [esi + edx*4]
mov eax, dword [ebp + edx*4]
xor eax, edi
and eax, ecx
xor eax, edi
mov dword [esi + edx*4], eax
add edx, 1
cmp edx, 0xa
jne 0x4808a0
xor eax, eax
lea ebp, [ebx - 0x28]
lea esi, [esi]
mov edi, dword [esi + eax*4 + 0x28]
mov edx, dword [ebp + eax*4]
xor edx, edi
and edx, ecx
xor edx, edi
mov dword [esi + eax*4 + 0x28], edx
add eax, 1
cmp eax, 0xa
jne 0x4808c0
xor al, al
lea esi, [esi]
mov edi, dword [esi + eax*4 + 0x50]
mov edx, dword [ebx + eax*4]
xor edx, edi
and edx, ecx
xor edx, edi
mov dword [esi + eax*4 + 0x50], edx
add eax, 1
cmp eax, 0xa
jne 0x4808e0
add dword [esp + 0x14], 1
add ebx, 0x78
cmp dword [esp + 0x14], 0x10
je 0x480911
mov edi, dword [esp + 0x20]
jmp 0x480880
mov eax, dword [esp + 0x900]
mov dword [esp + 4], eax
lea eax, [esp + 0x98]
mov dword [esp], eax
call fcn.00480360
lea eax, [esp + 0x98]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x900]
mov dword [esp + 4], eax
lea eax, [esp + 0x138]
mov dword [esp], eax
call fcn.00480460
lea eax, [esp + 0x138]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x900]
mov dword [esp], eax
call fcn.00480400
mov edx, dword [esp + 0x900]
mov ecx, esi
lea eax, [esp + 0x138]
call fcn.0047f1e0
lea eax, [esp + 0x138]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x900]
mov dword [esp], eax
call fcn.00480400
sub dword [esp + 0x1c], 1
cmp dword [esp + 0x1c], 0xffffffff
jne 0x480806
add esp, 0x8ec
pop ebx
pop esi
pop edi
pop ebp
ret
xor ecx, ecx
add edi, 2
mov word [edi - 2], cx
sub edx, 2
jmp 0x4807db
mov byte [eax + 0x78], 0
mov eax, dword [esp + 0x900]
mov dl, 0x27
lea edi, [eax + 0x79]
jmp 0x4807cf
xor esi, esi
add edi, 2
mov word [edi - 2], si
sub edx, 2
jmp 0x48078e
mov byte [eax + 0x50], 0
mov eax, dword [esp + 0x900]
mov dl, 0x27
lea edi, [eax + 0x51]
jmp 0x480782
xor eax, eax
add edi, 2
mov word [edi - 2], ax
sub edx, 2
jmp 0x480741
mov byte [eax + 0x28], 0
mov eax, dword [esp + 0x900]
mov dl, 0x27
lea edi, [eax + 0x29]
jmp 0x480735
xor eax, eax
add edi, 2
mov word [edi - 2], ax
sub edx, 2
jmp 0x4806fb
mov byte [edi], 0
mov eax, dword [esp + 0x900]
mov dl, 0x27
lea edi, [eax + 1]
jmp 0x4806ef