Function at 0x46f5fc
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffffc4
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x44]
mov dword [esp + 8], eax
mov edx, dword [esp]
mov edx, dword [edx + 0x48]
mov dword [esp + 0x10], edx
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x4c]
mov dword [esp + 0x18], ecx
mov ebx, dword [esp]
mov ebx, dword [ebx + 0x50]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp]
mov ebx, dword [ebx + 0x54]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp]
mov dword [esp + 0xc], eax
mov eax, dword [esp]
mov dword [esp + 0x14], edx
mov eax, dword [esp]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp]
mov eax, dword [eax + 0x50]
mov dword [esp + 0x24], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x54]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0x10
mov dword [esp + 0x34], 0x4e0374
mov edx, 0x4e0414
mov eax, 0x4e03c4
mov esi, 0x4e0464
mov ecx, dword [esp + 0x34]
movzx ecx, byte [ecx]
mov ebx, dword [esp + 4]
mov ebx, dword [ebx + ecx*4]
mov ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x18]
xor ecx, dword [esp + 0x20]
add ecx, dword [esp + 8]
add ebx, ecx
add ebx, dword [0x4e034c]
xor ecx, ecx
mov cl, byte [edx]
push ecx
mov ecx, 0x20
pop edi
sub ecx, edi
mov edi, ebx
shr edi, cl
mov cl, byte [edx]
shl ebx, cl
or edi, ebx
add edi, dword [esp + 0x28]
mov ebx, edi
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
shl ecx, 0xa
mov edi, dword [esp + 0x18]
shr edi, 0x16
or ecx, edi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], ebx
xor ecx, ecx
mov cl, byte [eax]
mov ebx, dword [esp + 4]
mov ebx, dword [ebx + ecx*4]
mov ecx, dword [esp + 0x24]
not ecx
or ecx, dword [esp + 0x1c]
xor ecx, dword [esp + 0x14]
add ecx, dword [esp + 0xc]
add ebx, ecx
add ebx, dword [0x4e0360]
xor ecx, ecx
mov cl, byte [esi]
push ecx
mov ecx, 0x20
pop edi
sub ecx, edi
mov edi, ebx
shr edi, cl
mov cl, byte [esi]
shl ebx, cl
or edi, ebx
add edi, dword [esp + 0x2c]
mov ebx, edi
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
shl ecx, 0xa
mov edi, dword [esp + 0x1c]
shr edi, 0x16
or ecx, edi
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebx
inc esi
inc eax
inc edx
inc dword [esp + 0x34]
dec dword [esp + 0x30]
jne 0x46f683
mov dword [esp + 0x30], 0x10
mov edx, 0x4e0384
mov dword [esp + 0x38], 0x4e0424
mov esi, 0x4e03d4
mov eax, 0x4e0474
mov ebx, dword [esp + 0x10]
and ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
not ecx
and ecx, dword [esp + 0x20]
or ebx, ecx
add ebx, dword [esp + 8]
xor ecx, ecx
mov cl, byte [edx]
mov edi, dword [esp + 4]
add ebx, dword [edi + ecx*4]
add ebx, dword [0x4e0350]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx]
push ecx
mov ecx, 0x20
pop edi
sub ecx, edi
mov edi, ebx
shr edi, cl
mov ecx, dword [esp + 0x38]
mov cl, byte [ecx]
shl ebx, cl
or edi, ebx
add edi, dword [esp + 0x28]
mov ebx, edi
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
shl ecx, 0xa
mov edi, dword [esp + 0x18]
shr edi, 0x16
or ecx, edi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x14]
and ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
not ecx
and ecx, dword [esp + 0x1c]
or ebx, ecx
add ebx, dword [esp + 0xc]
xor ecx, ecx
mov cl, byte [esi]
mov edi, dword [esp + 4]
add ebx, dword [edi + ecx*4]
add ebx, dword [0x4e0364]
xor ecx, ecx
mov cl, byte [eax]
push ecx
mov ecx, 0x20
pop edi
sub ecx, edi
mov edi, ebx
shr edi, cl
mov cl, byte [eax]
shl ebx, cl
or edi, ebx
add edi, dword [esp + 0x2c]
mov ebx, edi
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
shl ecx, 0xa
mov edi, dword [esp + 0x1c]
shr edi, 0x16
or ecx, edi
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebx
inc eax
inc esi
inc dword [esp + 0x38]
inc edx
dec dword [esp + 0x30]
jne 0x46f798
mov dword [esp + 0x30], 0x10
mov eax, 0x4e0394
mov esi, 0x4e0434
mov dword [esp + 0x38], 0x4e03e4
mov edx, 0x4e0484
xor ecx, ecx
mov cl, byte [eax]
mov ebx, dword [esp + 4]
mov ebx, dword [ebx + ecx*4]
mov ecx, dword [esp + 0x18]
not ecx
or ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x20]
add ecx, dword [esp + 8]
add ebx, ecx
add ebx, dword [0x4e0354]
xor ecx, ecx
mov cl, byte [esi]
push ecx
mov ecx, 0x20
pop edi
sub ecx, edi
mov edi, ebx
shr edi, cl
mov cl, byte [esi]
shl ebx, cl
or edi, ebx
add edi, dword [esp + 0x28]
mov ebx, edi
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
shl ecx, 0xa
mov edi, dword [esp + 0x18]
shr edi, 0x16
or ecx, edi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx]
mov ebx, dword [esp + 4]
mov ebx, dword [ebx + ecx*4]
mov ecx, dword [esp + 0x1c]
not ecx
or ecx, dword [esp + 0x14]
xor ecx, dword [esp + 0x24]
add ecx, dword [esp + 0xc]
add ebx, ecx
add ebx, dword [0x4e0368]
xor ecx, ecx
mov cl, byte [edx]
push ecx
mov ecx, 0x20
pop edi
sub ecx, edi
mov edi, ebx
shr edi, cl
mov cl, byte [edx]
shl ebx, cl
or edi, ebx
add edi, dword [esp + 0x2c]
mov ebx, edi
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
shl ecx, 0xa
mov edi, dword [esp + 0x1c]
shr edi, 0x16
or ecx, edi
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebx
inc edx
inc dword [esp + 0x38]
inc esi
inc eax
dec dword [esp + 0x30]
jne 0x46f8bb
mov dword [esp + 0x30], 0x10
mov edx, 0x4e03a4
mov dword [esp + 0x38], 0x4e0444
mov esi, 0x4e03f4
mov eax, 0x4e0494
mov ebx, dword [esp + 0x10]
and ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
not ecx
and ecx, dword [esp + 0x18]
or ebx, ecx
add ebx, dword [esp + 8]
xor ecx, ecx
mov cl, byte [edx]
mov edi, dword [esp + 4]
add ebx, dword [edi + ecx*4]
add ebx, dword [0x4e0358]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx]
push ecx
mov ecx, 0x20
pop edi
sub ecx, edi
mov edi, ebx
shr edi, cl
mov ecx, dword [esp + 0x38]
mov cl, byte [ecx]
shl ebx, cl
or edi, ebx
add edi, dword [esp + 0x28]
mov ebx, edi
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
shl ecx, 0xa
mov edi, dword [esp + 0x18]
shr edi, 0x16
or ecx, edi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x14]
and ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
not ecx
and ecx, dword [esp + 0x24]
or ebx, ecx
add ebx, dword [esp + 0xc]
xor ecx, ecx
mov cl, byte [esi]
mov edi, dword [esp + 4]
add ebx, dword [edi + ecx*4]
add ebx, dword [0x4e036c]
xor ecx, ecx
mov cl, byte [eax]
push ecx
mov ecx, 0x20
pop edi
sub ecx, edi
mov edi, ebx
shr edi, cl
mov cl, byte [eax]
shl ebx, cl
or edi, ebx
add edi, dword [esp + 0x2c]
mov ebx, edi
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
shl ecx, 0xa
mov edi, dword [esp + 0x1c]
shr edi, 0x16
or ecx, edi
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebx
inc eax
inc esi
inc dword [esp + 0x38]
inc edx
dec dword [esp + 0x30]
jne 0x46f9d2
mov dword [esp + 0x30], 0x10
mov eax, 0x4e03b4
mov esi, 0x4e0454
mov dword [esp + 0x38], 0x4e0404
mov edx, 0x4e04a4
xor ecx, ecx
mov cl, byte [eax]
mov ebx, dword [esp + 4]
mov ebx, dword [ebx + ecx*4]
mov ecx, dword [esp + 0x20]
not ecx
or ecx, dword [esp + 0x18]
xor ecx, dword [esp + 0x10]
add ecx, dword [esp + 8]
add ebx, ecx
add ebx, dword [0x4e035c]
xor ecx, ecx
mov cl, byte [esi]
push ecx
mov ecx, 0x20
pop edi
sub ecx, edi
mov edi, ebx
shr edi, cl
mov cl, byte [esi]
shl ebx, cl
or edi, ebx
add edi, dword [esp + 0x28]
mov ebx, edi
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
shl ecx, 0xa
mov edi, dword [esp + 0x18]
shr edi, 0x16
or ecx, edi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx]
mov ebx, dword [esp + 4]
mov ebx, dword [ebx + ecx*4]
mov ecx, dword [esp + 0x14]
xor ecx, dword [esp + 0x1c]
xor ecx, dword [esp + 0x24]
add ecx, dword [esp + 0xc]
add ebx, ecx
add ebx, dword [0x4e0370]
xor ecx, ecx
mov cl, byte [edx]
push ecx
mov ecx, 0x20
pop edi
sub ecx, edi
mov edi, ebx
shr edi, cl
mov cl, byte [edx]
shl ebx, cl
or edi, ebx
add edi, dword [esp + 0x2c]
mov ebx, edi
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
shl ecx, 0xa
mov edi, dword [esp + 0x1c]
shr edi, 0x16
or ecx, edi
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebx
inc edx
inc dword [esp + 0x38]
inc esi
inc eax
dec dword [esp + 0x30]
jne 0x46faf5
mov ebx, dword [esp]
mov ebx, dword [ebx + 0x48]
add ebx, dword [esp + 0x18]
add ebx, dword [esp + 0x24]
mov eax, dword [esp]
mov eax, dword [eax + 0x4c]
add eax, dword [esp + 0x20]
add eax, dword [esp + 0x2c]
mov edx, dword [esp]
mov dword [edx + 0x48], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x50]
add eax, dword [esp + 0x28]
add eax, dword [esp + 0xc]
mov edx, dword [esp]
mov dword [edx + 0x4c], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x54]
add eax, dword [esp + 8]
add eax, dword [esp + 0x14]
mov edx, dword [esp]
mov dword [edx + 0x50], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x44]
add eax, dword [esp + 0x10]
add eax, dword [esp + 0x1c]
mov edx, dword [esp]
mov dword [edx + 0x54], eax
mov eax, dword [esp]
mov dword [eax + 0x44], ebx
add esp, 0x3c
pop edi
pop esi
pop ebx
ret