Function at 0x10004590
Capabilities:
Decode data using base64 via dword translation table

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x10039060]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, edx
mov dword [ebp - 0x2c], ebx
push esi
mov esi, ecx
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x30], esi
push edi
test eax, eax
jne 0x100045e4
xorps xmm0, xmm0
push eax
movups xmmword [esi], xmm0
push 0x1003446c
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
call fcn.1000aa70
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.10013e4b
mov esp, ebp
pop ebp
ret
mov edx, eax
lea ecx, [eax + ebx]
xor edi, edi
and edx, 3
jne 0x100045ff
cmp byte [ecx - 1], 0x3d
je 0x100045ff
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x34], ebx
jmp 0x10004618
mov ebx, 1
mov dword [ebp - 0x34], ebx
cmp edx, 2
ja 0x10004616
cmp byte [ecx - 2], 0x3d
jne 0x10004616
xor ecx, ecx
jmp 0x10004618
mov ecx, ebx
sub eax, ebx
mov dword [ebp - 0x30], ecx
and eax, 0xfffffffc
xorps xmm0, xmm0
mov dword [ebp - 0x38], eax
shr eax, 2
movups xmmword [ebp - 0x20], xmm0
lea ebx, [ecx + eax*2]
add ebx, eax
add ebx, dword [ebp - 0x34]
mov dword [ebp - 0x28], ebx
cmp ebx, 0x7fffffff
ja 0x1000481b
cmp ebx, 0x10
jae 0x1000466f
push ebx
lea eax, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
push 0
push eax
mov dword [ebp - 0xc], 0xf
call fcn.10017170
mov byte [ebp + ebx - 0x20], 0
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x20]
jmp 0x100046fd
or ebx, 0xf
cmp ebx, 0x7fffffff
jbe 0x10004681
mov ebx, 0x7fffffff
jmp 0x1000468b
mov eax, 0x16
cmp ebx, eax
cmovb ebx, eax
xor ecx, ecx
mov eax, ebx
add eax, 1
setb cl
neg ecx
or ecx, eax
cmp ecx, 0x1000
jb 0x100046c8
lea eax, [ecx + 0x23]
cmp eax, ecx
jbe 0x10004820
push eax
call fcn.10013e5e
add esp, 4
test eax, eax
je 0x10004825
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x100046db
test ecx, ecx
je 0x100046d9
push ecx
call fcn.10013e5e
add esp, 4
mov ecx, eax
jmp 0x100046db
xor ecx, ecx
mov eax, dword [ebp - 0x28]
push eax
push 0
push ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ebx
call fcn.10017170
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov byte [ecx + eax], 0
add esp, 0xc
lea edx, [ebp - 0x20]
cmp ebx, 0x10
mov ebx, dword [ebp - 0x38]
cmovae edx, ecx
mov dword [ebp - 0x28], edx
test ebx, ebx
je 0x1000478e
mov edx, dword [ebp - 0x2c]
lea eax, [ebx - 1]
mov ebx, dword [ebp - 0x28]
add edx, 2
shr eax, 2
inc eax
mov dword [ebp - 0x24], eax
mov esi, eax
nop dword [eax + eax]
movzx eax, byte [edx - 2]
lea edx, [edx + 4]
mov ecx, dword [eax*4 + 0x10034980]
movzx eax, byte [edx - 5]
shl ecx, 6
or ecx, dword [eax*4 + 0x10034980]
movzx eax, byte [edx - 4]
shl ecx, 6
or ecx, dword [eax*4 + 0x10034980]
movzx eax, byte [edx - 3]
shl ecx, 6
or ecx, dword [eax*4 + 0x10034980]
mov eax, ecx
sar eax, 0x10
mov byte [ebx + edi], al
mov eax, ecx
sar eax, 8
mov byte [ebx + edi + 1], al
mov byte [ebx + edi + 2], cl
add edi, 3
sub esi, 1
jne 0x10004730
mov esi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x28]
cmp dword [ebp - 0x34], 0
je 0x100047e3
mov eax, dword [ebp - 0x2c]
movzx eax, byte [ebx + eax]
mov ecx, dword [eax*4 + 0x10034980]
mov eax, dword [ebp - 0x2c]
shl ecx, 6
movzx eax, byte [ebx + eax + 1]
or ecx, dword [eax*4 + 0x10034980]
shl ecx, 0xc
mov eax, ecx
sar eax, 0x10
cmp dword [ebp - 0x30], 0
mov byte [edx + edi], al
je 0x100047e3
mov eax, dword [ebp - 0x2c]
sar ecx, 8
movzx eax, byte [ebx + eax + 2]
mov eax, dword [eax*4 + 0x10034980]
shl eax, 6
sar eax, 8
or al, cl
mov byte [edx + edi + 1], al
mov ecx, dword [ebp - 8]
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov eax, esi
movups xmm0, xmmword [ebp - 0x20]
mov dword [esi + 0x14], 0
xor ecx, ebp
pop edi
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x10]
movq qword [esi + 0x10], xmm0
pop esi
pop ebx
call fcn.10013e4b
mov esp, ebp
pop ebp
ret
call fcn.100011f0
call fcn.10001150
call fcn.1001a314
int3