Function at 0x4871a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
lea eax, [ebp - 0x20c]
mov dword [esp - 0x40], 0x67f50557
nop
mov dword [esp - 4], 0xf8968aa
xor dword [esp - 4], 0x7b0b2118
mov ebx, ebx
sub dword [esp - 4], 0x4fcc354d
add dword [esp - 4], 0x5168a1a
sub dword [esp - 4], 0x29cc9c77
sub esp, 4
mov edx, edx
nop
mov dword [esp - 4], 0x48dd989b
sub dword [esp - 4], 0x1ccae9c
sub dword [esp - 4], 0x3b045548
mov edi, edi
add dword [esp - 4], 0x5845198f
xor dword [esp - 4], 0xfddd451
add dword [esp - 4], 0x12fed090
sub dword [esp - 4], 0x7e8b4aa7
mov dword [esp - 0x10], 0x40dfc89f
sub esp, 4
push eax
call fcn.00491110
lea eax, [ebp - 4]
mov dword [esp - 0x18], 0x6c6019a5
push eax
nop
sub esp, 4
xchg ebx, ebx
mov dword [esp], 0x23e4194d
sub dword [esp], 0x18766aa1
xor dword [esp], 0x492479cb
mov dword [esp - 0x24], ebx
add dword [esp], 0xfce39cd
sub dword [esp], 0x51e29eea
add dword [esp], 0x681dbfce
mov dword [esp - 0x10], esp
sub dword [esp], 0x68533218
call fcn.00476180
add esp, 0x14
test eax, eax
mov dword [esp - 0x18], esp
je 0x487373
mov eax, dword [ebp - 4]
sub esp, 4
mov edi, edi
mov dword [esp], 0x6316d47c
xor dword [esp], 0x3c4a6373
sub dword [esp], 0x5bba7758
add dword [esp], 0xe899421
mov dword [esp - 0x14], edi
xor dword [esp], 0x708430ee
sub dword [esp], 0x36761e76
sub dword [esp], 0x2c39c3bd
push dword [eax + 0x28]
mov dword [esp - 0xc], 0x1ffbb89c
lea eax, [ebp - 0x20c]
sub esp, 4
mov dword [esp], 0x69918fd5
mov dword [esp - 0xc], edx
sub dword [esp], 0x304e2f61
sub dword [esp], 0x352e95d8
xor dword [esp], 0x47ec6104
sub dword [esp], 0x43f8aa94
mov dword [esp - 0xc], ebp
push eax
call fcn.004916c0
lea eax, [ebp - 0x20c]
nop
mov ebx, ebx
sub esp, 4
mov dword [esp], 0x3ab4a98a
sub dword [esp], 0x3471523f
xor dword [esp], 0x5e341e0c
mov dword [esp - 0x44], 0x10d62544
xor dword [esp], 0x29ea3db6
sub dword [esp], 0x1effdb3a
sub dword [esp], 0x31a9d276
xchg esi, esi
sub dword [esp], 0x20f3c6e5
push eax
call fcn.00491790
add esp, 0x18
mov ebp, ebp
test eax, eax
je 0x487373
xor ecx, ecx
mov dword [esp - 0x30], ecx
mov word [eax], cx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [esp - 0x1c], 0x624c449b
lea ecx, [ebp - 0x20c]
lea edx, [ecx + 2]
mov dword [edi], 0x4d81e19e
mov esp, esp
sub dword [edi], 0x26770493
xor dword [edi], 0x4e184341
add dword [edi], 0x15af03f8
mov dword [esp - 0x18], 0x12cb9d1a
sub dword [edi], 0x7ec1a242
jmp 0x4873b9
mov ax, word [ecx]
add ecx, 2
mov dword [esp - 0x34], 0x5e8a1cea
test ax, ax
jne 0x4873b9
sub ecx, edx
xchg esp, esp
mov eax, edi
sar ecx, 1
mov dword [edi + 4], ecx
cmp ecx, 2
mov dword [esp - 0x10], ecx
jbe 0x48745e
mov eax, ecx
mov ecx, 0x210ac2d8
sub ecx, 0x14be8a1c
mov dword [esp - 0x14], edx
xor ecx, 0x4538fd25
sub ecx, 0x9b4b6fc
sub ecx, 0xe6ddcb8
sub ecx, 0x315231e3
mov dword [esp - 0x1c], 0x1b1a12bc
mul ecx
pushf
mov ecx, 0x99e0a5d
add ecx, 0x3d4f929d
mov ecx, ecx
sub ecx, 0x177b2858
sub ecx, 0x7e6bb88
xor ecx, 0x7d5e7042
xor ecx, 0xefb0532
xchg edi, edi
xor ecx, 0xabd13395
popf
cmovb eax, ecx
mov dword [esp - 0x40], 0x15e6d994
push eax
call fcn.00490c90
add esp, 4
mov dword [esp - 0x44], esi
mov dword [edi], eax
xor esi, esi
cmp dword [edi + 4], esi
mov dword [esp - 0x10], 0x4a4ae428
jbe 0x4874dc
push ebx
lea ebx, [ebp - 0x20c]
mov dword [esp - 0x1c], ebx
sub ebx, eax
mov ecx, esi
lea eax, [eax + 2]
and ecx, 3
mov dword [esp - 0x1c], 0x2280d134
mov edx, 0x743fa89a
xor edx, 0xecb5deb
xor edx, 0x489bbfd
mov dword [esp - 0x1c], 0x3aa7a7db
sub edx, 0x7659323d
add edx, 0x8d75b87
add edx, 0x6aaecd1b
shl ecx, 3
mov dword [esp - 0x28], 0x2a69bebe
inc esi
sar edx, cl
movsx cx, dl
xor cx, word [eax + ebx - 2]
mov dword [esp - 0xc], esp
mov word [eax - 2], cx
cmp esi, dword [edi + 4]
jb 0x48747a
pop ebx
xchg esi, esi
mov eax, edi
pop edi
pop esi
mov esi, esi
mov esp, ebp
pop ebp
ret