Function at 0x46a7a0
Capabilities:
Encode data using base64

Disassembly:
push 0xffffffffffffffff
push 0x4c4868
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
mov eax, dword [0x508e4c]
mov ecx, dword [0x50d42c]
xor eax, esp
push ebx
mov ebx, dword [esp + 0x44]
push esi
push edi
mov edi, dword [esp + 0x50]
xor esi, esi
test cl, 1
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
jne 0x46a7fa
or ecx, 1
or eax, 0xffffffff
mov dword [0x50d42c], ecx
mov dword [0x50d428], eax
jmp 0x46a7ff
mov eax, dword [0x50d428]
test cl, 2
jne 0x46ae4d
or ecx, 2
mov dword [0x50d42c], ecx
mov dword [0x50d028], eax
mov dword [0x50d02c], eax
mov dword [0x50d030], eax
mov dword [0x50d034], eax
mov dword [0x50d038], eax
mov dword [0x50d03c], eax
mov dword [0x50d040], eax
mov dword [0x50d044], eax
mov dword [0x50d048], eax
mov dword [0x50d04c], eax
mov dword [0x50d050], eax
mov dword [0x50d054], eax
mov dword [0x50d058], eax
mov dword [0x50d05c], eax
mov dword [0x50d060], eax
mov dword [0x50d064], eax
mov dword [0x50d068], eax
mov dword [0x50d06c], eax
mov dword [0x50d070], eax
mov dword [0x50d074], eax
mov dword [0x50d078], eax
mov dword [0x50d07c], eax
mov dword [0x50d080], eax
mov dword [0x50d084], eax
mov dword [0x50d088], eax
mov dword [0x50d08c], eax
mov dword [0x50d090], eax
mov dword [0x50d094], eax
mov dword [0x50d098], eax
mov dword [0x50d09c], eax
mov dword [0x50d0a0], eax
mov dword [0x50d0a4], eax
mov dword [0x50d0a8], eax
mov dword [0x50d0ac], eax
mov dword [0x50d0b0], eax
mov dword [0x50d0b4], eax
mov dword [0x50d0b8], eax
mov dword [0x50d0bc], eax
mov dword [0x50d0c0], eax
mov dword [0x50d0c4], eax
mov dword [0x50d0c8], eax
mov dword [0x50d0cc], eax
mov dword [0x50d0d0], eax
mov dword [0x50d0d4], 0x3e
mov dword [0x50d0d8], eax
mov dword [0x50d0dc], eax
mov dword [0x50d0e0], eax
mov dword [0x50d0e4], 0x3f
mov dword [0x50d0e8], 0x34
mov dword [0x50d0ec], 0x35
mov dword [0x50d0f0], 0x36
mov dword [0x50d0f4], 0x37
mov dword [0x50d0f8], 0x38
mov dword [0x50d0fc], 0x39
mov dword [0x50d100], 0x3a
mov dword [0x50d104], 0x3b
mov dword [0x50d108], 0x3c
mov dword [0x50d10c], 0x3d
mov dword [0x50d110], eax
mov dword [0x50d114], eax
mov dword [0x50d118], eax
mov dword [0x50d11c], eax
mov dword [0x50d120], eax
mov dword [0x50d124], eax
mov dword [0x50d128], eax
mov dword [0x50d12c], esi
mov dword [0x50d130], 1
mov dword [0x50d134], 2
mov dword [0x50d138], 3
mov dword [0x50d13c], 4
mov dword [0x50d140], 5
mov dword [0x50d144], 6
mov dword [0x50d148], 7
mov dword [0x50d14c], 8
mov dword [0x50d150], 9
mov dword [0x50d154], 0xa
mov dword [0x50d158], 0xb
mov dword [0x50d15c], 0xc
mov dword [0x50d160], 0xd
mov dword [0x50d164], 0xe
mov dword [0x50d168], 0xf
mov dword [0x50d16c], 0x10
mov dword [0x50d170], 0x11
mov dword [0x50d174], 0x12
mov dword [0x50d178], 0x13
mov dword [0x50d17c], 0x14
mov dword [0x50d180], 0x15
mov dword [0x50d184], 0x16
mov dword [0x50d188], 0x17
mov dword [0x50d18c], 0x18
mov dword [0x50d190], 0x19
mov dword [0x50d194], eax
mov dword [0x50d198], eax
mov dword [0x50d19c], eax
mov dword [0x50d1a0], eax
mov dword [0x50d1a4], eax
mov dword [0x50d1a8], eax
mov dword [0x50d1ac], 0x1a
mov dword [0x50d1b0], 0x1b
mov dword [0x50d1b4], 0x1c
mov dword [0x50d1b8], 0x1d
mov dword [0x50d1bc], 0x1e
mov dword [0x50d1c0], 0x1f
mov dword [0x50d1c4], 0x20
mov dword [0x50d1c8], 0x21
mov dword [0x50d1cc], 0x22
mov dword [0x50d1d0], 0x23
mov dword [0x50d1d4], 0x24
mov dword [0x50d1d8], 0x25
mov dword [0x50d1dc], 0x26
mov dword [0x50d1e0], 0x27
mov dword [0x50d1e4], 0x28
mov dword [0x50d1e8], 0x29
mov dword [0x50d1ec], 0x2a
mov dword [0x50d1f0], 0x2b
mov dword [0x50d1f4], 0x2c
mov dword [0x50d1f8], 0x2d
mov dword [0x50d1fc], 0x2e
mov dword [0x50d200], 0x2f
mov dword [0x50d204], 0x30
mov dword [0x50d208], 0x31
mov dword [0x50d20c], 0x32
mov dword [0x50d210], 0x33
mov dword [0x50d214], eax
mov dword [0x50d218], eax
mov dword [0x50d21c], eax
mov dword [0x50d220], eax
mov dword [0x50d224], eax
mov dword [0x50d228], eax
mov dword [0x50d22c], eax
mov dword [0x50d230], eax
mov dword [0x50d234], eax
mov dword [0x50d238], eax
mov dword [0x50d23c], eax
mov dword [0x50d240], eax
mov dword [0x50d244], eax
mov dword [0x50d248], eax
mov dword [0x50d24c], eax
mov dword [0x50d250], eax
mov dword [0x50d254], eax
mov dword [0x50d258], eax
mov dword [0x50d25c], eax
mov dword [0x50d260], eax
mov dword [0x50d264], eax
mov dword [0x50d268], eax
mov dword [0x50d26c], eax
mov dword [0x50d270], eax
mov dword [0x50d274], eax
mov dword [0x50d278], eax
mov dword [0x50d27c], eax
mov dword [0x50d280], eax
mov dword [0x50d284], eax
mov dword [0x50d288], eax
mov dword [0x50d28c], eax
mov dword [0x50d290], eax
mov dword [0x50d294], eax
mov dword [0x50d298], eax
mov dword [0x50d29c], eax
mov dword [0x50d2a0], eax
mov dword [0x50d2a4], eax
mov dword [0x50d2a8], eax
mov dword [0x50d2ac], eax
mov dword [0x50d2b0], eax
mov dword [0x50d2b4], eax
mov dword [0x50d2b8], eax
mov dword [0x50d2bc], eax
mov dword [0x50d2c0], eax
mov dword [0x50d2c4], eax
mov dword [0x50d2c8], eax
mov dword [0x50d2cc], eax
mov dword [0x50d2d0], eax
mov dword [0x50d2d4], eax
mov dword [0x50d2d8], eax
mov dword [0x50d2dc], eax
mov dword [0x50d2e0], eax
mov dword [0x50d2e4], eax
mov dword [0x50d2e8], eax
mov dword [0x50d2ec], eax
mov dword [0x50d2f0], eax
mov dword [0x50d2f4], eax
mov dword [0x50d2f8], eax
mov dword [0x50d2fc], eax
mov dword [0x50d300], eax
mov dword [0x50d304], eax
mov dword [0x50d308], eax
mov dword [0x50d30c], eax
mov dword [0x50d310], eax
mov dword [0x50d314], eax
mov dword [0x50d318], eax
mov dword [0x50d31c], eax
mov dword [0x50d320], eax
mov dword [0x50d324], eax
mov dword [0x50d328], eax
mov dword [0x50d32c], eax
mov dword [0x50d330], eax
mov dword [0x50d334], eax
mov dword [0x50d338], eax
mov dword [0x50d33c], eax
mov dword [0x50d340], eax
mov dword [0x50d344], eax
mov dword [0x50d348], eax
mov dword [0x50d34c], eax
mov dword [0x50d350], eax
mov dword [0x50d354], eax
mov dword [0x50d358], eax
mov dword [0x50d35c], eax
mov dword [0x50d360], eax
mov dword [0x50d364], eax
mov dword [0x50d368], eax
mov dword [0x50d36c], eax
mov dword [0x50d370], eax
mov dword [0x50d374], eax
mov dword [0x50d378], eax
mov dword [0x50d37c], eax
mov dword [0x50d380], eax
mov dword [0x50d384], eax
mov dword [0x50d388], eax
mov dword [0x50d38c], eax
mov dword [0x50d390], eax
mov dword [0x50d394], eax
mov dword [0x50d398], eax
mov dword [0x50d39c], eax
mov dword [0x50d3a0], eax
mov dword [0x50d3a4], eax
mov dword [0x50d3a8], eax
mov dword [0x50d3ac], eax
mov dword [0x50d3b0], eax
mov dword [0x50d3b4], eax
mov dword [0x50d3b8], eax
mov dword [0x50d3bc], eax
mov dword [0x50d3c0], eax
mov dword [0x50d3c4], eax
mov dword [0x50d3c8], eax
mov dword [0x50d3cc], eax
mov dword [0x50d3d0], eax
mov dword [0x50d3d4], eax
mov dword [0x50d3d8], eax
mov dword [0x50d3dc], eax
mov dword [0x50d3e0], eax
mov dword [0x50d3e4], eax
mov dword [0x50d3e8], eax
mov dword [0x50d3ec], eax
mov dword [0x50d3f0], eax
mov dword [0x50d3f4], eax
mov dword [0x50d3f8], eax
mov dword [0x50d3fc], eax
mov dword [0x50d400], eax
mov dword [0x50d404], eax
mov dword [0x50d408], eax
mov dword [0x50d40c], eax
mov dword [0x50d410], eax
mov dword [0x50d414], eax
mov dword [0x50d418], eax
mov dword [0x50d41c], eax
mov dword [0x50d420], eax
mov dword [0x50d424], eax
push ebp
mov ebp, dword [edi + 0x14]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], esi
mov byte [esp + 0x24], 0
cmp ebp, 0xf
mov dword [esp + 0x48], esi
je 0x46ae91
push 1
push ebp
lea ecx, [esp + 0x28]
call fcn.004013b0
test al, al
je 0x46ae91
cmp dword [esp + 0x38], 0x10
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], esi
jae 0x46ae8e
lea eax, [esp + 0x24]
mov byte [eax], 0
cmp ebp, esi
jbe 0x46af97
jmp 0x46aea0
mov edi, dword [esp + 0x14]
nop
mov ecx, dword [edi + 0x18]
add edi, 4
cmp ecx, 0x10
jb 0x46aeaf
mov eax, dword [edi]
jmp 0x46aeb1
mov eax, edi
movzx eax, byte [eax + esi]
mov al, byte [eax*4 + 0x50d028]
inc esi
cmp ecx, 0x10
jb 0x46aec6
mov ecx, dword [edi]
jmp 0x46aec8
mov ecx, edi
movzx ecx, byte [ecx + esi]
mov bl, byte [ecx*4 + 0x50d028]
mov byte [esp + 0x13], bl
shr bl, 4
shl al, 2
and bl, 3
or bl, al
mov byte [esp + 0x18], bl
mov edx, dword [esp + 0x18]
push edx
push 1
lea ecx, [esp + 0x28]
call fcn.004015e0
inc esi
cmp esi, ebp
jae 0x46af48
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x18]
cmp ecx, 0x10
jb 0x46af0b
mov eax, dword [edi]
jmp 0x46af0d
mov eax, edi
cmp byte [eax + esi], 0x3d
je 0x46af91
cmp ecx, 0x10
jb 0x46af1c
mov eax, dword [edi]
jmp 0x46af1e
mov eax, edi
movzx ecx, byte [eax + esi]
mov bl, byte [ecx*4 + 0x50d028]
mov al, byte [esp + 0x13]
xor edx, edx
mov dl, bl
shr dl, 2
and dl, 0xf
shl al, 4
or dl, al
lea ecx, [esp + 0x20]
push edx
push 1
call fcn.004015e0
inc esi
cmp esi, ebp
jae 0x46af88
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x18]
cmp ecx, 0x10
jb 0x46af5d
mov eax, dword [edi]
jmp 0x46af5f
mov eax, edi
cmp byte [eax + esi], 0x3d
je 0x46af91
cmp ecx, 0x10
jb 0x46af6c
mov edi, dword [edi]
movzx ecx, byte [edi + esi]
mov dl, byte [ecx*4 + 0x50d028]
shl bl, 6
or bl, dl
lea ecx, [esp + 0x20]
push ebx
push 1
call fcn.004015e0
inc esi
cmp esi, ebp
jb 0x46ae9b
mov ebx, dword [esp + 0x1c]
xor esi, esi
push 0xffffffffffffffff
push esi
lea edx, [esp + 0x28]
mov dword [ebx + 0x18], 0xf
mov dword [ebx + 0x14], esi
push edx
mov ecx, ebx
mov byte [ebx + 4], 0
call fcn.00401280
cmp dword [esp + 0x38], 0x10
pop ebp
jb 0x46afc9
mov eax, dword [esp + 0x20]
push eax
call fcn.004a7e92
add esp, 4
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x30]
mov eax, ebx
pop ebx
xor ecx, esp
call fcn.004a8b15
add esp, 0x3c
ret