Function at 0x484600
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov dword [esp - 0x30], 0x21173685
sub esp, 0x24
mov eax, ecx
push ebx
mov edx, edx
push esi
push edi
cmp dword [eax + 0x828], 0
mov dword [esp - 0x34], esi
mov dword [ebp - 8], eax
jne 0x484954
mov dword [ebp - 0x18], 0x51166569
sub dword [ebp - 0x18], 0x38596dcb
mov dword [esp - 0x1c], 0x6ee3d148
xor dword [ebp - 0x18], 0x70787f20
xor dword [ebp - 0x18], 0x692ff40
xor dword [ebp - 0x18], 0x4dc0f982
add dword [ebp - 0x18], 0x3e5664c4
mov dword [esp - 0x2c], 0x25393996
sub dword [ebp - 0x18], 0x4e28c59a
mov cl, 0x6e
sub cl, 0x6b
add cl, 0x17
mov ecx, ecx
add cl, 6
add cl, 0x12
xor cl, 0xf4
mov dword [esp - 0xc], 0xfcc3329
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], 0x6348ff21
xchg ecx, ecx
sub dword [ebp - 0x14], 0x26c31e1c
add dword [ebp - 0x14], 0x94dc11
xor dword [ebp - 0x14], 0x6136492d
sub dword [ebp - 0x14], 0x2b5c3116
mov esi, esi
sub dword [ebp - 0x14], 0x1ec4b177
add dword [ebp - 0x14], 0x43ce1ed7
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov dword [esp - 0x18], edx
mov word [ebp - 0x10], 0xe16
add word [ebp - 0x10], 0x5c6e
add word [ebp - 0x10], 0x113f
sub word [ebp - 0x10], 0x496a
mov dword [esp - 0x20], 0x70c23eaf
sub word [ebp - 0x10], 0x210f
add word [ebp - 0x10], 0x108e
xor word [ebp - 0x10], 0x94d
mov dword [esp - 0x14], edx
mov ax, word [ebp - 0x10]
nop
sub esp, 4
xchg ecx, ecx
mov dword [esp], 0x24625e40
add dword [esp], 0x20835b2b
sub dword [esp], 0x425ed27c
add dword [esp], 0x38673a0b
mov edx, edx
sub dword [esp], 0x895be61
xor dword [esp], 0x3258628f
mov word [ebp - 0x1c], ax
mov byte [ebp - 0x1a], cl
mov dword [esp - 0x28], 0x327c9d66
mov dword [ebp - 0x14], 0x71ecdf9c
xor dword [ebp - 0x14], 0xb11d3e6
sub dword [ebp - 0x14], 0x4e09f6d0
mov ecx, ecx
add dword [ebp - 0x14], 0x45246fb0
sub dword [ebp - 0x14], 0x48ba15bb
sub dword [ebp - 0x14], 0x295d6f94
mov dword [esp - 0x30], 0xddedce5
call fcn.00490c90
add esp, 4
mov dword [ebp - 0x18], eax
mov esi, esi
xor edx, edx
mov edi, edi
movsx cx, byte [ebp + edx - 0x24]
xchg esp, esp
mov word [eax + edx*2], cx
inc edx
mov edi, dword [ebp - 0x14]
mov dword [esp - 0x38], 0x16c33b17
cmp edx, edi
jb 0x48478a
cmp edi, 2
lea eax, [ebp - 0x18]
mov dword [esp - 0x34], 0x72bee218
pushf
mov ecx, 0x1b423cb2
xor ecx, 0x1db657f9
add ecx, 0x3b9f1c69
xchg esp, esp
xor ecx, 0x2bab3b58
sub ecx, 0x5d450247
add ecx, 0xbe4e765
sub ecx, 0x17d8a208
mov dword [esp - 0x38], ebp
popf
cmova eax, dword [ebp - 0x18]
mov dword [ebp - 4], eax
mov dword [esp - 0x18], 0x6ffb1c6c
lea eax, [edi + 1]
mul ecx
pushf
mov ecx, 0xbc098e5
mov dword [esp - 0x1c], 0x76cff6cc
add ecx, 0x18535ae8
add ecx, 0xd1140b2
sub ecx, 0x11c73a32
mov dword [esp - 0x30], esp
xor ecx, 0x2c8154aa
xor ecx, 0xcc235118
popf
cmovb eax, ecx
mov dword [esp - 0x34], 0x35562378
push eax
call fcn.00490c90
add esp, 4
xchg esp, esp
mov esi, eax
xor ebx, ebx
mov dword [ebp - 0xc], esi
test edi, edi
mov dword [esp - 0x20], esp
je 0x4848ba
sub dword [ebp - 4], esi
mov edx, esi
mov esi, dword [ebp - 4]
mov dword [esp - 0x44], ebx
lea ecx, [ecx]
mov ecx, ebx
lea edx, [edx + 2]
and ecx, 3
mov dword [esp - 0x34], esp
mov eax, 0x73ee4b5c
sub eax, 0x643b317d
add eax, 0x7630c08
add eax, 0x5b078b33
mov dword [esp - 0x2c], 0x7d5a62fb
xor eax, 0xf1f6feb
sub eax, 0x1589a00
shl ecx, 3
mov dword [esp - 0x20], ecx
inc ebx
sar eax, cl
cbw
xor ax, word [edx + esi - 2]
mov dword [esp - 0x38], 0x2d84579f
mov word [edx - 2], ax
cmp ebx, edi
jb 0x484862
mov esp, esp
mov esi, dword [ebp - 0xc]
xor eax, eax
push eax
mov edi, edi
push esi
mov word [esi + edi*2], ax
call fcn.00477270
mov ecx, dword [ebp - 8]
xchg ebx, ebx
push esi
mov dword [ecx + 0x828], eax
call fcn.00490c60
add esp, 0xc
mov esi, esi
cmp edi, 2
jbe 0x4848f7
push dword [ebp - 0x18]
call fcn.00490c60
mov dword [esp - 0x40], 0x28477875
add esp, 4
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x828]
test ebx, ebx
xchg ebx, ebx
je 0x48496b
xor edi, edi
lea esi, [eax + 0x5c0]
mov dword [esp - 0x1c], 0x43dc72b2
lea esp, [esp]
mov eax, dword [esi + 4]
xor eax, 0x1d6a61f8
mov dword [esp - 0x3c], esp
push eax
push ebx
call fcn.00475760
mov edx, edx
add esp, 8
test eax, eax
je 0x48496b
xor eax, dword [0x4c0968]
xchg esp, esp
inc edi
mov dword [esi], eax
add esi, 8
cmp edi, 0xc
mov dword [esp - 0x2c], 0x8a4980e
jb 0x48491d
pop edi
pop esi
mov al, 1
xchg esi, esi
xor al, 1
xor al, 0x54
sub al, 0xa
xchg esi, esi
sub al, 0x49
pop ebx
mov esp, ebp
pop ebp
xchg ebx, ebx
ret
pop edi
pop esi
mov esi, esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
mov ecx, ecx
ret