Function at 0x46b4c3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov byte [esp + 3], dl
xor edx, edx
push ebx
push esi
mov esi, dword [ebp + 0x10]
mov ebx, 0x3e8
mov dword [esp + 0x1c], ecx
mov eax, esi
mov ecx, 0x2710
div ecx
push edi
mov ecx, eax
mov eax, edx
xor edx, edx
movzx ecx, cl
div ebx
xor edx, edx
mov dword [esp + 0x18], ecx
movzx eax, al
inc ecx
mov dword [esp + 0x28], eax
add eax, ecx
push 0xa
pop ecx
div ecx
mov eax, esi
movzx edi, dl
xor edx, edx
div ebx
push 0x64
mov eax, edx
xor edx, edx
pop ebx
div ebx
xor edx, edx
movzx eax, al
mov dword [esp + 0x2c], eax
inc eax
add eax, edi
div ecx
mov eax, esi
movzx ecx, dl
xor edx, edx
div ebx
push 0xa
mov eax, edx
xor edx, edx
pop ebx
div ebx
xor edx, edx
movzx eax, al
mov dword [esp + 0x24], eax
inc eax
add eax, ecx
div ebx
mov eax, esi
movzx ebx, dl
xor edx, edx
push 0xa
pop esi
div esi
movzx eax, dl
mov dword [esp + 0x14], eax
mov al, byte [ebp + 8]
and al, 0xf
or al, 0xc0
movzx eax, al
cdq
mov esi, edx
shld esi, eax, 0xc
shl eax, 0xc
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
and eax, 0xfff
cdq
or dword [esp + 0x10], eax
or esi, edx
mov eax, dword [esp + 0x10]
shld esi, eax, 4
shl eax, 4
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
push 0xa
movzx eax, byte [eax + 0x4a8b34]
cdq
or dword [esp + 0x14], eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, eax, 4
shl eax, 4
mov dword [esp + 0x14], eax
movzx eax, byte [edi + 0x4a8b34]
cdq
or dword [esp + 0x14], eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, eax, 4
shl eax, 4
mov dword [esp + 0x14], eax
movzx eax, byte [ecx + 0x4a8b34]
mov ecx, dword [esp + 0x14]
cdq
or ecx, eax
or esi, edx
movzx eax, byte [ebx + 0x4a8b34]
shld esi, ecx, 4
cdq
shl ecx, 4
or esi, edx
or ecx, eax
xor edx, edx
mov eax, dword [esp + 0x18]
inc eax
add eax, ebx
pop ebx
div ebx
shld esi, ecx, 4
movzx eax, dl
shl ecx, 4
movzx eax, byte [eax + 0x4a8b34]
cdq
or ecx, eax
or esi, edx
mov dword [esp + 0x10], ecx
mov eax, esi
bswap ecx
bswap eax
shrd eax, ecx, 0x18
shr ecx, 0x18
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x34], ecx
mov edx, eax
mov dword [esp + 0x1c], eax
mov ecx, eax
movzx eax, byte [esp + edx + 0x30]
shl eax, 8
xor eax, ecx
push 8
movzx ecx, ax
pop eax
test ecx, 0x8000
je 0x46b65d
add ecx, ecx
xor ecx, 0x1021
jmp 0x46b65f
add ecx, ecx
sub eax, 1
jne 0x46b64b
inc edx
cmp edx, 5
jb 0x46b63b
movzx ebx, cx
mov ecx, dword [esp + 0x10]
mov dl, bl
mov eax, ecx
shr dl, 4
shld esi, eax, 0x10
and cl, 0xf
mov byte [esp + 0xe], 1
shl eax, 0x10
mov dword [esp + 0x30], eax
mov al, bl
shl al, 4
or al, cl
mov dword [esp + 0x10], 0x38
mov byte [esp + 0x30], al
mov eax, esi
mov ecx, dword [esp + 0x30]
shrd ecx, eax, 0x14
mov eax, esi
xor cl, bl
and cl, 0xf
xor cl, bl
mov byte [esp + 0x31], cl
mov ecx, dword [esp + 0x30]
shrd ecx, eax, 0x18
mov eax, ebx
xor dl, cl
shr eax, 4
and dl, 0xf
xor dl, al
mov eax, esi
mov byte [esp + 0x32], dl
mov edx, ebx
mov ecx, dword [esp + 0x30]
shr edx, 8
shrd ecx, eax, 0x1c
shr ebx, 8
xor dl, cl
and dl, 0xf
xor dl, bl
xor ebx, ebx
mov byte [esp + 0x33], dl
mov edi, dword [esp + 0x30]
mov eax, edi
mov edx, esi
mov ecx, ebx
call fcn.00497070
mov cl, byte [esp + 0xe]
and al, 1
xor cl, al
inc ebx
sub dword [esp + 0x10], 1
mov byte [esp + 0xe], cl
jne 0x46b6f0
or esi, 0xff000000
movzx eax, cl
mov ecx, dword [esp + 0x20]
shld esi, edi, 1
cdq
add edi, edi
or esi, edx
or edi, eax
mov dword [ecx + 4], esi
cmp byte [esp + 0xf], 0
mov dword [ecx + 8], edi
je 0x46b7b8
mov ebx, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x28]
xor esi, esi
shl ebx, 4
xor edi, edi
or ebx, dword [esp + 0x14]
or esi, 0x12000000
shld ecx, ebx, 9
shl eax, 4
or eax, dword [esp + 0x2c]
shl ebx, 9
or ebx, eax
mov eax, dword [esp + 0x18]
shld ecx, ebx, 9
cdq
shl ebx, 9
or ebx, eax
mov dword [esp + 0x18], 0x3f
shl ebx, 5
or ebx, 7
inc edi
mov eax, esi
mov edx, ebx
mov ecx, edi
call fcn.00497070
mov ecx, dword [esp + 0x1c]
and al, 1
xor cl, al
inc edi
sub dword [esp + 0x18], 1
mov dword [esp + 0x1c], ecx
jne 0x46b780
movzx eax, cl
mov ecx, dword [esp + 0x20]
cdq
or eax, esi
or edx, ebx
mov dword [ecx + 0x10], eax
mov eax, 0x907f0082
mov dword [ecx + 0xc], edx
jmp 0x46b7bd
mov eax, 0x907f0042
pop edi
pop esi
mov dword [ecx], eax
pop ebx
mov esp, ebp
pop ebp
ret