Function at 0x46ecd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b89f3
mov eax, dword fs:[0]
push eax
sub esp, 0x104
mov eax, dword [0x68cc00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
test ebx, ebx
je 0x46efca
xor esi, esi
lea edi, [ebp - 0x11]
test eax, eax
cmovne esi, dword [ebp + 0xc]
cmovne edi, eax
mov eax, dword [ebp + 0x10]
cmp eax, 1
je 0x46efbf
cmp eax, 5
jne 0x46ed52
lea ecx, [ebp - 0x70]
call fcn.004af340
push ebx
push esi
push edi
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 0
call fcn.004afb80
lea ecx, [ebp - 0x70]
call fcn.004af380
jmp 0x46efca
cmp eax, 7
jne 0x46ed64
push ebx
push esi
push edi
call fcn.004ead70
jmp 0x46efc7
cmp eax, 2
jne 0x46ed76
push ebx
push esi
push edi
call fcn.004eb4a0
jmp 0x46efc7
cmp eax, 3
jne 0x46ed88
push ebx
push esi
push edi
call fcn.004ebbd0
jmp 0x46efc7
cmp eax, 0x14
jne 0x46ed9a
push ebx
push esi
push edi
call fcn.004f7a90
jmp 0x46efc7
cmp eax, 0x15
jne 0x46edac
push ebx
push esi
push edi
call fcn.004f7ba0
jmp 0x46efc7
cmp eax, 0x16
jne 0x46edbe
push ebx
push esi
push edi
call fcn.004f7cb0
jmp 0x46efc7
cmp eax, 0x13
jne 0x46edd0
push ebx
push esi
push edi
call fcn.004f7980
jmp 0x46efc7
cmp eax, 0xf
je 0x46efbf
cmp eax, 0x1d
jne 0x46ee01
xor al, al
xor edx, edx
test esi, esi
je 0x46edfa
movzx ecx, byte [edx + edi]
inc edx
movzx eax, al
xor ecx, eax
mov al, byte [ecx + 0x689988]
cmp edx, esi
jb 0x46ede6
mov byte [ebx], al
jmp 0x46efca
cmp eax, 0x1c
jne 0x46ee6b
push 0
push esi
push edi
call fcn.004885d0
add esp, 0xc
mov edx, eax
cmp byte [0x67f8b1], 0
mov ecx, eax
je 0x46ee44
shr edx, 0x18
mov dword [ebp - 0x110], eax
shr ecx, 8
shr eax, 0x10
mov byte [ebx], dl
mov byte [ebx + 1], al
mov eax, dword [ebp - 0x110]
mov byte [ebx + 2], cl
mov byte [ebx + 3], al
jmp 0x46efca
shr ecx, 0x18
mov dword [ebp - 0x110], ecx
mov ecx, eax
shr ecx, 0x10
shr eax, 8
mov byte [ebx], dl
mov byte [ebx + 1], al
mov eax, dword [ebp - 0x110]
mov byte [ebx + 2], cl
mov byte [ebx + 3], al
jmp 0x46efca
cmp eax, 4
jne 0x46ee97
lea ecx, [ebp - 0x6c]
call fcn.004e38f0
push ebx
push esi
push edi
lea ecx, [ebp - 0x6c]
mov dword [ebp - 4], 1
call fcn.004e3d20
lea ecx, [ebp - 0x6c]
call fcn.004e3900
jmp 0x46efca
cmp eax, 8
jne 0x46eed3
lea ecx, [ebp - 0x70]
call fcn.004e9210
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 2
call fcn.004aff90
push esi
push edi
lea ecx, [ebp - 0x70]
call fcn.004e9a60
push ebx
lea ecx, [ebp - 0x70]
call fcn.004e93d0
lea ecx, [ebp - 0x70]
call fcn.004e9250
jmp 0x46efca
cmp eax, 0x1e
jne 0x46eee5
push ebx
push esi
push edi
call fcn.004ea740
jmp 0x46efc7
cmp eax, 9
jne 0x46ef11
lea ecx, [ebp - 0x7c]
call fcn.004e3e60
push ebx
push esi
push edi
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], 3
call fcn.004e4ec0
lea ecx, [ebp - 0x7c]
call fcn.004e3e80
jmp 0x46efca
cmp eax, 0xa
jne 0x46ef3d
lea ecx, [ebp - 0x7c]
call fcn.004e4f20
push ebx
push esi
push edi
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], 4
call fcn.004e66b0
lea ecx, [ebp - 0x7c]
call fcn.004e4f40
jmp 0x46efca
cmp eax, 0xb
jne 0x46ef6f
lea ecx, [ebp - 0x8c]
call fcn.004e6710
push ebx
push esi
push edi
lea ecx, [ebp - 0x8c]
mov dword [ebp - 4], 5
call fcn.004e7890
lea ecx, [ebp - 0x8c]
call fcn.004e6730
jmp 0x46efca
cmp eax, 0xc
jne 0x46efa1
lea ecx, [ebp - 0x10c]
call fcn.004e7900
push ebx
push esi
push edi
lea ecx, [ebp - 0x10c]
mov dword [ebp - 4], 6
call fcn.004e91e0
lea ecx, [ebp - 0x10c]
call fcn.004e7920
jmp 0x46efca
cmp eax, 0x11
jne 0x46efb0
push ebx
push esi
push edi
call fcn.004ebdf0
jmp 0x46efc7
cmp eax, 0x12
jne 0x46efbf
push ebx
push esi
push edi
call fcn.004ebef0
jmp 0x46efc7
push ebx
push esi
push edi
call fcn.004e3600
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005af618
mov esp, ebp
pop ebp
ret