Function at 0x4803a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, ecx
mov dword [esp - 0xc], edx
push ebx
push esi
push edi
mov esi, esi
cmp dword [eax + 0x838], 0
mov dword [ebp - 8], eax
jne 0x480638
nop
mov edx, edx
mov dword [esp - 4], 0x1ea8c2a7
sub dword [esp - 4], 0x635b802
add dword [esp - 4], 0x55d6ed0d
sub dword [esp - 4], 0x4530a26d
mov esp, esp
add dword [esp - 4], 0x4aa6ac92
xor dword [esp - 4], 0xc4095d0
sub dword [esp - 4], 0x7f8093f3
mov esp, esp
sub esp, 4
mov dword [ebp - 0x20], 0x6d90c171
sub dword [ebp - 0x20], 0x4a62862c
xor dword [ebp - 0x20], 0x29cd1488
mov dword [esp - 0x30], ebp
xor dword [ebp - 0x20], 0x44130523
xor dword [ebp - 0x20], 0x4fed7efc
mov dword [ebp - 0x1c], 0x71782036
sub dword [ebp - 0x1c], 0x6dfceeef
mov esi, esi
add dword [ebp - 0x1c], 0x1187313c
add dword [ebp - 0x1c], 0x60bded2c
xor dword [ebp - 0x1c], 0x62905f9b
mov word [ebp - 0x18], 0x5ea3
mov dword [esp - 0x3c], 0x175cd921
sub word [ebp - 0x18], 0x5595
sub word [ebp - 0x18], 0x385
add word [ebp - 0x18], 0x694a
xor word [ebp - 0x18], 0x26ff
xchg edx, edx
mov dword [ebp - 0x10], 0x32b3aa9a
add dword [ebp - 0x10], 0x6f4c691
add dword [ebp - 0x10], 0xa5d6638
sub dword [ebp - 0x10], 0x36ca3eb8
mov dword [esp - 0x20], edi
sub dword [ebp - 0x10], 0x9074025
xor dword [ebp - 0x10], 0x434588c
call fcn.0048b720
mov dword [esp - 0x3c], ebp
add esp, 4
mov dword [ebp - 0x14], eax
xor edx, edx
mov dword [esp - 0x28], 0x1eac0a7b
movsx cx, byte [ebp + edx - 0x20]
mov word [eax + edx*2], cx
inc edx
xchg ebp, ebp
mov edi, dword [ebp - 0x10]
cmp edx, edi
jb 0x4804be
mov ebp, ebp
cmp edi, 2
lea eax, [ebp - 0x14]
pushf
mov edx, 0x6e536c99
mov dword [esp - 0xc], 0x2993bd28
sub edx, 0x534f77fe
add edx, 0x16fef258
xor edx, 0x35709216
add edx, 0x57120a73
mov ecx, ecx
xor edx, 0x7e03d14
sub edx, 0x5964424a
popf
mov dword [esp - 0x38], esi
cmova eax, dword [ebp - 0x14]
xor ecx, ecx
mov dword [ebp - 4], eax
lea eax, [edi + 1]
xchg ebp, ebp
mul edx
seto cl
neg ecx
or ecx, eax
mov dword [esp - 0x14], esp
push ecx
call fcn.0048b720
add esp, 4
mov esi, eax
xchg edi, edi
xor ebx, ebx
mov dword [ebp - 0xc], esi
test edi, edi
xchg esp, esp
je 0x480599
sub dword [ebp - 4], esi
mov edx, esi
mov esi, dword [ebp - 4]
mov dword [esp - 0x38], edx
mov ecx, ebx
lea edx, [edx + 2]
and ecx, 3
xchg ecx, ecx
mov eax, 0x47433c5b
sub eax, 0x15b272e4
xor eax, 0x1ce281a4
mov ebp, ebp
sub eax, 0x17fbefde
add eax, 0x5e07cb4b
shl ecx, 3
mov dword [esp - 0x28], ebp
inc ebx
sar eax, cl
cbw
mov edi, edi
xor ax, word [esi + edx - 2]
mov word [edx - 2], ax
cmp ebx, edi
xchg ebp, ebp
jb 0x480554
mov esi, dword [ebp - 0xc]
xor eax, eax
mov dword [esp - 0x34], edi
push eax
push esi
mov word [esi + edi*2], ax
mov ebx, ebx
call fcn.00473790
mov ecx, dword [ebp - 8]
push esi
mov dword [esp - 0x1c], ebx
mov dword [ecx + 0x838], eax
call fcn.0048b6f0
add esp, 0xc
mov dword [esp - 0x3c], 0x3b73d9c8
cmp edi, 2
jbe 0x4805e2
push dword [ebp - 0x14]
call fcn.0048b6f0
mov dword [esp - 0x20], 0x3fb2dbc2
add esp, 4
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x838]
test ebx, ebx
mov dword [esp - 0x10], 0x6ca9953d
je 0x480655
xor edi, edi
lea esi, [eax + 0x6a0]
xchg ebp, ebp
lea esp, [esp]
mov eax, dword [esi + 4]
xor eax, 0x6fa836ea
push eax
mov dword [esp - 0x44], ecx
push ebx
call fcn.00471c00
add esp, 8
test eax, eax
xchg edi, edi
je 0x480655
xor eax, dword [0x4ba958]
inc edi
mov dword [esi], eax
mov dword [esp - 0x40], esi
add esi, 8
cmp edi, 4
jb 0x480605
xchg edi, edi
pop edi
pop esi
mov al, 0x59
sub al, 0x56
mov edx, edx
add al, 0x20
add al, 0x44
sub al, 0x13
add al, 0xc
mov dword [esp - 0x28], esi
sub al, 0x5f
pop ebx
mov esp, ebp
pop ebp
mov ecx, ecx
ret
pop edi
pop esi
xor al, al
mov esi, esi
pop ebx
mov esp, ebp
pop ebp
ret