Function at 0x53b7b0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2c
call fcn.00628570
mov eax, dword [0x70d514]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
xor eax, eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov dword [ebp - 0x10], eax
push edi
mov esi, dword [ebx + 0x24]
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x1c], eax
test esi, esi
je 0x53bbe8
test eax, eax
je 0x53bbe8
and dword [ebx + 0x18], 0xfffffff0
cmp dword [esi + 0x10], 1
je 0x53b83a
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x10], 1
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [eax + 4], 0x30
mov dword [eax], 0
mov dword [eax + 0x58], 0
mov dword [eax + 0x5c], 0
mov eax, dword [esi + 4]
cmp eax, 0x5de
jge 0x53bd27
mov edi, dword [esi]
cmp edi, 0x5de
jg 0x53bd13
cmp edi, eax
jl 0x53bcff
sub edi, eax
test edi, edi
jle 0x53b8b3
lea ecx, [ebp - 8]
push ecx
mov ecx, dword [ebp - 0x1c]
lea edx, [esi + 0x20]
push edi
add edx, eax
call fcn.0046ae80
mov edx, eax
add esp, 8
test edx, edx
cmovg edx, dword [ebp - 8]
test edx, edx
jle 0x53b9b2
cmp edx, edi
jg 0x53bc23
add dword [esi + 4], edx
mov eax, dword [esi + 4]
cmp eax, 0x5de
jg 0x53bc0f
cmp dword [esi], eax
jl 0x53bbfb
sub edi, edx
test edi, edi
jg 0x53b864
mov ecx, dword [ebp - 0x14]
mov dword [esi + 4], 0
mov dword [esi], 0
test ecx, ecx
je 0x53bbe8
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x18], edx
test edx, edx
jle 0x53bbe8
mov eax, 0x400
mov ebx, edx
cmp edx, eax
cmova ebx, eax
mov eax, dword [ebp - 0x20]
test dword [eax + 0x18], 0x100
je 0x53baad
mov ecx, dword [esi + 8]
test ecx, ecx
jle 0x53ba6c
cmp ecx, 3
jg 0x53bc73
mov eax, 3
mov edi, edx
sub eax, ecx
cmp eax, edx
cmovle edi, eax
lea eax, [ecx + 0x5fe]
push edi
push dword [ebp - 0x14]
add eax, esi
mov dword [ebp - 0x2c], edi
push eax
call fcn.0062b120
mov edx, dword [ebp - 0x10]
add esp, 0xc
add dword [esi + 8], edi
add edx, edi
mov ecx, dword [esi + 8]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], edx
cmp ecx, 3
jl 0x53b9c4
lea eax, [esi + 0x5fe]
xor edi, edi
lea ebx, [esi + 0x20]
mov dword [ebp - 0x24], eax
mov esi, eax
movzx edx, byte [esi]
cmp ecx, 3
jb 0x53b9d7
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl edx, 8
or ecx, edx
shl ecx, 8
or ecx, eax
mov eax, ecx
shr eax, 0x12
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx], al
mov eax, ecx
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx + 1], al
mov eax, ecx
shr eax, 6
add ebx, 2
and eax, 0x3f
and ecx, 0x3f
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx], al
mov dl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov ecx, dword [ebp - 8]
jmp 0x53ba24
mov ecx, dword [ebx + 0x28]
mov eax, dword [ecx + 0x18]
and eax, 0xf
or dword [ebx + 0x18], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebx + 0x1c], eax
pop edi
pop esi
mov eax, edx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0062844a
mov esp, ebp
pop ebp
ret
shl edx, 0x10
cmp ecx, 2
jne 0x53b9e8
movzx eax, byte [esi + 1]
shl eax, 8
or edx, eax
mov eax, edx
shr eax, 0x12
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx], al
mov eax, edx
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx + 1], al
add ebx, 2
cmp ecx, 1
jne 0x53ba14
mov al, 0x3d
jmp 0x53ba20
shr edx, 6
and edx, 0x3f
mov al, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebx], al
mov dl, 0x3d
lea eax, [ebx + 1]
sub ecx, 3
mov byte [eax], dl
lea ebx, [eax + 1]
add edi, 4
mov dword [ebp - 8], ecx
add esi, 3
test ecx, ecx
jg 0x53b956
mov esi, dword [ebp - 0x28]
mov byte [ebx], 0
mov dword [esi], edi
cmp edi, 0x5de
jg 0x53bc5f
cmp edi, dword [esi + 4]
jl 0x53bc4b
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
mov dword [esi + 8], 0
jmp 0x53bae5
cmp ebx, 3
jb 0x53bb70
mov eax, 0xaaaaaaab
xor ecx, ecx
mul ebx
shr edx, 1
lea ebx, [edx + edx*2]
push ebx
push dword [ebp - 0x14]
lea edx, [esi + 0x20]
call fcn.0046dec0
mov edi, eax
add esp, 8
mov dword [esi], edi
cmp edi, 0x5de
jg 0x53bc87
cmp edi, dword [esi + 4]
jl 0x53bc37
jmp 0x53badd
push ebx
push ecx
mov ecx, dword [esi + 0x1c]
lea edx, [esi + 0x20]
push esi
call fcn.0046dd60
add esp, 0xc
test eax, eax
je 0x53bbcc
mov edi, dword [esi]
cmp edi, 0x5de
jg 0x53bceb
cmp edi, dword [esi + 4]
jl 0x53bcd7
mov edx, dword [ebp - 0x10]
add edx, ebx
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
sub eax, ebx
add ecx, ebx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
mov dword [esi + 4], 0
test edi, edi
jle 0x53bb53
xor eax, eax
lea ecx, [ebp - 0xc]
push ecx
mov ecx, dword [ebp - 0x1c]
lea edx, [eax + 0x20]
push edi
add edx, esi
call fcn.0046ae80
mov edx, eax
add esp, 8
test edx, edx
cmovg edx, dword [ebp - 0xc]
test edx, edx
jle 0x53bb9e
cmp edx, edi
jg 0x53bcc3
add dword [esi + 4], edx
sub edi, edx
mov eax, dword [esi + 4]
cmp eax, 0x5de
jg 0x53bcaf
cmp dword [esi], eax
jl 0x53bc9b
test edi, edi
jg 0x53bb02
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov dword [esi], 0
mov dword [esi + 4], 0
test eax, eax
jle 0x53b9c4
mov edx, dword [ebp - 0x18]
jmp 0x53b8d6
push ebx
push dword [ebp - 0x14]
lea eax, [esi + 0x5fe]
push eax
call fcn.0062b120
mov edx, dword [ebp - 0x10]
add esp, 0xc
mov dword [esi + 8], ebx
add edx, ebx
mov eax, edx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0062844a
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x20]
pop edi
pop esi
mov ecx, dword [ebx + 0x28]
mov eax, dword [ecx + 0x18]
and eax, 0xf
or dword [ebx + 0x18], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x10]
test eax, eax
pop ebx
cmove eax, edx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0062844a
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
or ecx, 0xffffffff
pop edi
test eax, eax
pop esi
cmove eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0062844a
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0062844a
mov esp, ebp
pop ebp
ret
push 0x16c
mov edx, 0x6f56a0
mov ecx, 0x6f56f4
call fcn.0048a7e0
push 0x16b
mov edx, 0x6f56a0
mov ecx, 0x6f57ec
call fcn.0048a7e0
push 0x169
mov edx, 0x6f56a0
mov ecx, 0x6f57d0
call fcn.0048a7e0
push 0x19d
mov edx, 0x6f56a0
mov ecx, 0x6f56f4
call fcn.0048a7e0
push 0x18b
mov edx, 0x6f56a0
mov ecx, 0x6f56f4
call fcn.0048a7e0
push 0x18a
mov edx, 0x6f56a0
mov ecx, 0x6f5798
call fcn.0048a7e0
push 0x17b
mov edx, 0x6f56a0
mov ecx, 0x6f5824
call fcn.0048a7e0
push 0x19c
mov edx, 0x6f56a0
mov ecx, 0x6f5798
call fcn.0048a7e0
push 0x1b8
mov edx, 0x6f56a0
mov ecx, 0x6f56f4
call fcn.0048a7e0
push 0x1b7
mov edx, 0x6f56a0
mov ecx, 0x6f57ec
call fcn.0048a7e0
push 0x1b4
mov edx, 0x6f56a0
mov ecx, 0x6f57d0
call fcn.0048a7e0
push 0x1a6
mov edx, 0x6f56a0
mov ecx, 0x6f56f4
call fcn.0048a7e0
push 0x1a5
mov edx, 0x6f56a0
mov ecx, 0x6f5798
call fcn.0048a7e0
push 0x161
mov edx, 0x6f56a0
mov ecx, 0x6f56f4
call fcn.0048a7e0
push 0x160
mov edx, 0x6f56a0
mov ecx, 0x6f5798
call fcn.0048a7e0
push 0x15f
mov edx, 0x6f56a0
mov ecx, 0x6f5760
call fcn.0048a7e0
int3