Function at 0x4998e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
xchg edx, edx
push esi
push edi
mov edi, ecx
mov ecx, ecx
nop
mov dword [esp - 4], 0x600d3d92
sub dword [esp - 4], 0x98769c6
xchg ecx, ecx
sub dword [esp - 4], 0x16e78049
xor dword [esp - 4], 0x115e54d1
xor dword [esp - 4], 0x2ec00752
mov ecx, ecx
sub esp, 4
sub esp, 4
mov dword [esp], 0x4afe6034
mov dword [esp - 0x40], 0x2f950343
sub dword [esp], 0x3c699b7f
xor dword [esp], 0x371d990
xor dword [esp], 0x35d28826
xchg ebx, ebx
xor dword [esp], 0xbcf7cb43
mov dword [ebp - 0xc], edi
call fcn.00472780
mov ebx, eax
mov dword [esp - 0x3c], esi
add esp, 8
mov dword [edi + 0x5c], ebx
test ebx, ebx
je 0x499cdf
mov ebp, ebp
xor esi, esi
lea esp, [esp]
mov eax, dword [edi + esi*8 + 4]
mov esi, esi
xor eax, 0x6fa836ea
push eax
push ebx
mov dword [esp - 0x34], 0x6a35d4f1
call fcn.00471c00
add esp, 8
test eax, eax
xchg esi, esi
je 0x499cdf
xor eax, dword [0x4ba958]
mov dword [edi + esi*8], eax
inc esi
mov ebx, ebx
cmp esi, 6
jb 0x499973
call fcn.00472670
mov eax, dword [eax + 0x18]
mov dword [esp - 0x14], 0x2f923573
mov dword [edi + 0x58], eax
test eax, eax
je 0x499cdf
nop
xchg edx, edx
sub esp, 4
mov dword [esp], 0x2c7637b3
sub dword [esp], 0x1981741e
add dword [esp], 0x605f81c1
mov dword [esp - 0x34], ebx
xor dword [esp], 0x496f9c0d
xor dword [esp], 0x3a3bd95b
sub esp, 4
mov esi, esi
mov dword [esp], 0x31bfca86
sub dword [esp], 0x2a88060c
add dword [esp], 0x73ddcb61
xor dword [esp], 0x1e763291
xchg esp, esp
sub dword [esp], 0x26a0d6b6
xor dword [esp], 0x54247996
call fcn.00472780
mov ecx, eax
mov ecx, ecx
add esp, 8
mov dword [ebp - 4], ecx
mov dword [edi + 0x60], ecx
test ecx, ecx
mov dword [esp - 0x40], ebp
je 0x499cdf
xor ebx, ebx
lea esi, [edi + 0x30]
mov eax, dword [esi + 4]
xchg ecx, ecx
xor eax, 0x6fa836ea
push eax
push ecx
call fcn.00471c00
xchg ebx, ebx
add esp, 8
test eax, eax
je 0x499cdf
xor eax, dword [0x4ba958]
mov dword [esp - 0xc], edx
inc ebx
mov ecx, dword [ebp - 4]
mov dword [esi], eax
xchg edx, edx
add esi, 8
cmp ebx, 5
jb 0x499a47
nop
xchg ecx, ecx
sub esp, 4
mov dword [esp], 0x1994d3bc
add dword [esp], 0x2954733c
xor dword [esp], 0xe15297c
mov dword [esp - 0x24], ecx
sub dword [esp], 0x3bfef43f
add dword [esp], 0xa430419
sub dword [esp], 0x1b407f4a
xchg edx, edx
mov dword [ebp - 0x20], 0x527806ce
xor dword [ebp - 0x20], 0x7ffa95f1
xor dword [ebp - 0x20], 0x53efc9cc
xor dword [ebp - 0x20], 0x39b46374
mov dword [esp - 0xc], 0x1d9ee678
xor dword [ebp - 0x20], 0x270b2897
xor dword [ebp - 0x20], 0x4f740341
sub dword [ebp - 0x20], 0x1f9dbb24
xchg esp, esp
mov dword [ebp - 0x1c], 0x2f8d08f0
add dword [ebp - 0x1c], 0x4d101e01
xor dword [ebp - 0x1c], 0x4c404397
mov ebx, ebx
add dword [ebp - 0x1c], 0x156d08a8
sub dword [ebp - 0x1c], 0x3ce50747
add dword [ebp - 0x1c], 0xdeae96b
mov dword [esp - 0xc], ecx
mov word [ebp - 0x18], 0x6ed5
sub word [ebp - 0x18], 0x37ed
sub word [ebp - 0x18], 0x3257
add word [ebp - 0x18], 0x4017
mov dword [esp - 0x3c], 0x3bd26f31
xor word [ebp - 0x18], 0x4191
add word [ebp - 0x18], 0x5fbb
sub word [ebp - 0x18], 0x1cc8
mov dword [ebp - 0x10], 0x7af90103
mov dword [esp - 0x38], ebp
xor dword [ebp - 0x10], 0x4e2a6269
xor dword [ebp - 0x10], 0x44dde780
xor dword [ebp - 0x10], 0x32772ed5
mov ecx, ecx
sub dword [ebp - 0x10], 0x4279aa35
call fcn.0048b720
add esp, 4
mov dword [esp - 0x10], esi
mov dword [ebp - 0x14], eax
xor edx, edx
lea esp, [esp]
xchg ecx, ecx
movsx cx, byte [ebp + edx - 0x20]
mov word [eax + edx*2], cx
inc edx
xchg ebp, ebp
mov ebx, dword [ebp - 0x10]
cmp edx, ebx
jb 0x499b95
mov dword [esp - 0x1c], ebx
cmp ebx, 2
lea eax, [ebp - 0x14]
pushf
xchg edi, edi
mov edx, 0x7b51030b
sub edx, 0xb73c99c
add edx, 0x3616159
mov esi, esi
sub edx, 0x48aadeb
xor edx, 0x6193fd6d
add edx, 0x76c5b6
sub edx, 0xf96d764
xchg esp, esp
popf
cmova eax, dword [ebp - 0x14]
xor ecx, ecx
mov edi, edi
mov dword [ebp - 4], eax
lea eax, [ebx + 1]
mul edx
mov dword [esp - 0x38], 0x54592f13
seto cl
neg ecx
or ecx, eax
push ecx
xchg esp, esp
call fcn.0048b720
add esp, 4
mov esi, eax
xchg esi, esi
mov dword [ebp - 8], esi
test ebx, ebx
je 0x499c89
mov dword [esp - 0x14], 0x61ec8556
sub dword [ebp - 4], esi
mov edx, esi
mov esi, dword [ebp - 4]
xor edi, edi
mov dword [esp - 0x1c], ebp
mov edi, edi
mov ecx, edi
lea edx, [edx + 2]
and ecx, 3
xchg esi, esi
mov eax, 0x74d5aa9b
sub eax, 0x3ef14639
xor eax, 0x7c15982e
xchg ebx, ebx
xor eax, 0x44b6060b
add eax, 0x12120e85
add eax, 0x4cf7ae87
xchg ebp, ebp
xor eax, 0x1f2f9313
shl ecx, 3
inc edi
sar eax, cl
mov dword [esp - 0x14], edi
cbw
xor ax, word [esi + edx - 2]
mov word [edx - 2], ax
cmp edi, ebx
mov edi, edi
jb 0x499c33
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
mov dword [esp - 0xc], edi
xor eax, eax
mov word [esi + ebx*2], ax
mov eax, dword [edi + 0x48]
mov ebx, ebx
xor eax, dword [0x4ba958]
push esi
call eax
push esi
mov dword [esp - 0x2c], 0x2dba6b0b
mov dword [edi + 0x64], eax
call fcn.0048b6f0
add esp, 4
cmp ebx, 2
xchg edi, edi
jbe 0x499ccb
push dword [ebp - 0x14]
call fcn.0048b6f0
mov dword [esp - 0x20], 0x530d29cb
add esp, 4
cmp dword [edi + 0x64], 0
pop edi
pop esi
mov edi, edi
setne al
pop ebx
mov esp, ebp
mov dword [esp - 0x28], ebp
pop ebp
ret
pop edi
pop esi
xchg esp, esp
xor al, al
pop ebx
mov esp, ebp
pop ebp
xchg ebp, ebp
ret