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

Disassembly:
sub esp, 0x14
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
push esi
xor ebp, ebp
cmp ebx, ebp
push edi
mov edi, dword [esp + 0x2c]
mov esi, eax
je 0x20405467
cmp dword [esp + 0x30], ebp
jne 0x20405401
cmp esi, ebp
jne 0x20405467
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x20405467
cmp edi, 0xffffffff
mov dword [eax], ebp
jne 0x20405426
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x20405415
sub eax, edx
mov edi, eax
mov dword [esp + 0x2c], edi
lea eax, [edi + 3]
shr eax, 2
lea ecx, [eax + eax*2]
cmp esi, ecx
jae 0x20405471
cmp edi, ebp
mov eax, edi
jbe 0x2040544c
lea esp, [esp]
cmp byte [ebx + eax - 1], 0x3d
jne 0x2040544c
sub eax, 1
jne 0x20405440
mov edx, eax
and edx, 3
jbe 0x2040545d
shr eax, 2
lea ecx, [edx + eax*2]
lea ecx, [eax + ecx - 1]
cmp esi, ecx
jae 0x20405471
mov edx, dword [esp + 0x34]
mov dword [edx], ecx
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x14
ret
cmp edi, ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebp
jbe 0x20405855
lea esp, [esp]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
xor ecx, ecx
xor ebp, ebp
xor ebx, ebx
xor edi, edi
cmp eax, esi
mov dword [esp + 0x20], ecx
jae 0x20405797
mov edx, dword [esp + 0x28]
movzx edi, byte [eax + edx]
add eax, 1
cmp edi, 0x41
jl 0x204054c1
cmp edi, 0x5a
jle 0x20405511
cmp edi, 0x61
jl 0x204054cb
cmp edi, 0x7a
jle 0x20405511
cmp edi, 0x30
jl 0x204054d5
cmp edi, 0x39
jle 0x20405511
cmp edi, 0x2b
je 0x20405511
cmp edi, 0x2f
je 0x20405511
cmp edi, 0x3d
je 0x20405509
cmp edi, 0xd
je 0x20405500
cmp edi, 0xa
je 0x20405500
cmp edi, 0x20
je 0x20405500
cmp edi, 9
je 0x20405500
mov dword [esp + 0x1c], 1
cmp eax, esi
jb 0x204054b0
jmp 0x20405660
mov dword [esp + 0x18], 1
cmp eax, esi
mov dword [esp + 0x10], eax
jae 0x20405664
lea ecx, [ecx]
movzx ebx, byte [eax + edx]
mov esi, 1
add eax, esi
cmp ebx, 0x41
jl 0x20405535
cmp ebx, 0x5a
jle 0x2040557f
cmp ebx, 0x61
jl 0x2040553f
cmp ebx, 0x7a
jle 0x2040557f
cmp ebx, 0x30
jl 0x20405549
cmp ebx, 0x39
jle 0x2040557f
cmp ebx, 0x2b
je 0x2040557f
cmp ebx, 0x2f
je 0x2040557f
cmp ebx, 0x3d
je 0x2040557b
cmp ebx, 0xd
je 0x20405570
cmp ebx, 0xa
je 0x20405570
cmp ebx, 0x20
je 0x20405570
cmp ebx, 9
je 0x20405570
mov dword [esp + 0x1c], esi
cmp eax, dword [esp + 0x2c]
jb 0x20405520
jmp 0x20405660
mov dword [esp + 0x18], esi
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
jae 0x20405664
lea ecx, [ecx]
movzx ebp, byte [eax + edx]
mov esi, 1
add eax, esi
cmp ebp, 0x41
jl 0x204055a5
cmp ebp, 0x5a
jle 0x204055ec
cmp ebp, 0x61
jl 0x204055af
cmp ebp, 0x7a
jle 0x204055ec
cmp ebp, 0x30
jl 0x204055b9
cmp ebp, 0x39
jle 0x204055ec
cmp ebp, 0x2b
je 0x204055ec
cmp ebp, 0x2f
je 0x204055ec
cmp ebp, 0x3d
je 0x204055e8
cmp ebp, 0xd
je 0x204055e0
cmp ebp, 0xa
je 0x204055e0
cmp ebp, 0x20
je 0x204055e0
cmp ebp, 9
je 0x204055e0
mov dword [esp + 0x1c], esi
cmp eax, dword [esp + 0x2c]
jb 0x20405590
jmp 0x20405660
mov dword [esp + 0x18], esi
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
jae 0x20405664
jmp 0x20405600
movzx ecx, byte [eax + edx]
mov esi, 1
add eax, esi
cmp ecx, 0x41
mov dword [esp + 0x20], ecx
jl 0x20405619
cmp ecx, 0x5a
jle 0x20405660
cmp ecx, 0x61
jl 0x20405623
cmp ecx, 0x7a
jle 0x20405660
cmp ecx, 0x30
jl 0x2040562d
cmp ecx, 0x39
jle 0x20405660
cmp ecx, 0x2b
je 0x20405660
cmp ecx, 0x2f
je 0x20405660
cmp ecx, 0x3d
je 0x2040565c
cmp ecx, 0xd
je 0x20405654
cmp ecx, 0xa
je 0x20405654
cmp ecx, 0x20
je 0x20405654
cmp ecx, 9
je 0x20405654
mov dword [esp + 0x1c], esi
cmp eax, dword [esp + 0x2c]
jb 0x20405600
jmp 0x20405660
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], eax
cmp edi, 0x41
jl 0x2040566e
cmp edi, 0x5a
jle 0x20405690
cmp edi, 0x61
jl 0x20405678
cmp edi, 0x7a
jle 0x20405690
cmp edi, 0x30
jl 0x20405682
cmp edi, 0x39
jle 0x20405690
cmp edi, 0x2b
je 0x20405690
cmp edi, 0x2f
jne 0x20405797
cmp ebx, 0x41
jl 0x2040569a
cmp ebx, 0x5a
jle 0x204056bc
cmp ebx, 0x61
jl 0x204056a4
cmp ebx, 0x7a
jle 0x204056bc
cmp ebx, 0x30
jl 0x204056ae
cmp ebx, 0x39
jle 0x204056bc
cmp ebx, 0x2b
je 0x204056bc
cmp ebx, 0x2f
jne 0x20405797
cmp ebp, 0x41
jl 0x204056c6
cmp ebp, 0x5a
jle 0x204056e8
cmp ebp, 0x61
jl 0x204056d0
cmp ebp, 0x7a
jle 0x204056e8
cmp ebp, 0x30
jl 0x204056da
cmp ebp, 0x39
jle 0x204056e8
cmp ebp, 0x2b
je 0x204056e8
cmp ebp, 0x2f
jne 0x20405797
cmp ecx, 0x41
jl 0x204056f2
cmp ecx, 0x5a
jle 0x20405714
cmp ecx, 0x61
jl 0x204056fc
cmp ecx, 0x7a
jle 0x20405714
cmp ecx, 0x30
jl 0x20405706
cmp ecx, 0x39
jle 0x20405714
cmp ecx, 0x2b
je 0x20405714
cmp ecx, 0x2f
jne 0x20405797
movzx esi, byte [ebp + 0x204856f0]
movzx eax, byte [ebx + 0x204856f0]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 0x204856f0]
mov bl, byte [edi + 0x204856f0]
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x30]
mov edx, esi
and edx, 3
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov edx, eax
sar edx, 4
and dl, 3
add bl, bl
add bl, bl
or dl, bl
mov byte [edi + ebp], dl
mov edx, esi
sar edx, 2
add edi, 1
and dl, 0xf
shl al, 4
or dl, al
mov byte [edi + ebp], dl
add edi, 1
mov byte [edi + ebp], cl
add edi, 1
cmp dword [esp + 0x18], 0
mov dword [esp + 0x14], edi
jne 0x20405855
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x10], eax
jb 0x20405490
jmp 0x20405855
mov eax, edi
call fcn.204051f0
mov esi, eax
test esi, esi
je 0x20405855
mov eax, ebx
call fcn.204051f0
test eax, eax
je 0x20405811
mov eax, ebp
call fcn.204051f0
test eax, eax
je 0x20405811
cmp dword [esp + 0x20], 0x3d
jne 0x20405811
movzx ecx, byte [ebx + 0x204856f0]
movzx eax, byte [ebp + 0x204856f0]
mov esi, dword [esp + 0x30]
mov edx, ecx
and edx, 0xf
shl edx, 4
shr eax, 2
and eax, 0xf
or eax, edx
mov edx, ecx
mov cl, byte [edi + 0x204856f0]
add cl, cl
sar edx, 4
add cl, cl
and dl, 3
or dl, cl
mov ecx, dword [esp + 0x14]
mov byte [ecx + esi], dl
add ecx, 1
mov byte [ecx + esi], al
add ecx, 1
mov dword [esp + 0x14], ecx
jmp 0x20405855
test esi, esi
je 0x20405855
mov eax, ebx
call fcn.204051f0
test eax, eax
je 0x20405855
cmp ebp, 0x3d
jne 0x20405855
cmp dword [esp + 0x20], ebp
jne 0x20405855
mov al, byte [edi + 0x204856f0]
mov dl, byte [ebx + 0x204856f0]
mov ecx, dword [esp + 0x30]
shr dl, 4
add al, al
add al, al
and dl, 3
or dl, al
mov eax, dword [esp + 0x14]
mov byte [eax + ecx], dl
add eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
pop edi
mov dword [eax], edx
xor eax, eax
cmp dword [esp + 0x18], eax
pop esi
pop ebp
sete al
pop ebx
add esp, 0x14
ret