Function at 0x48d1b0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov edi, dword [esi + 4]
test edi, edi
je 0x48d2da
cmp word [ebx], 0
mov edi, ecx
jne 0x48d2b0
lea eax, [ebp - 0x3c]
mov ecx, eax
mov dword [ebp - 0x4c], eax
call fcn.00472730
lea ecx, [ebp - 0x30]
call fcn.00472730
mov dword [esp + 4], 0x3d
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00470140
test eax, eax
mov ebx, eax
jns 0x48d430
mov ecx, dword [esi + 4]
mov edx, dword [esi]
test ecx, ecx
je 0x48d53e
movzx eax, word [edx]
xor ebx, ebx
sub eax, 0x30
cmp ax, 9
ja 0x48d23d
jmp 0x48d548
movzx eax, word [edx + ebx*2]
sub eax, 0x30
cmp ax, 9
jbe 0x48d244
add ebx, 1
cmp ebx, ecx
jne 0x48d230
mov eax, dword [ebp - 0x4c]
mov ecx, eax
mov dword [esp + 4], ebx
mov dword [esp], edx
call fcn.00472b20
mov eax, dword [esi]
sub esp, 8
lea ecx, [ebp - 0x30]
lea eax, [eax + ebx*2]
mov dword [esp], eax
call fcn.004729e0
lea eax, [ebp - 0x30]
sub esp, 4
mov ecx, edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp], eax
call fcn.0048c8d0
mov ebx, eax
mov eax, dword [ebp - 0x30]
sub esp, 8
test eax, eax
je 0x48d293
mov dword [esp], eax
call fcn.006eb310
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x48d2df
mov dword [esp], eax
call fcn.006eb310
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 8
xor eax, eax
mov dword [ebp - 0x4c], eax
mov eax, dword [eax*8 + 0x7329e4]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00470500
test al, al
jne 0x48d2f0
add dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x4c]
cmp eax, 0x15
jne 0x48d2b5
mov ebx, 0x80070057
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], 0
cmp eax, 0x12
mov esi, eax
mov dword [ebp - 0x30], eax
ja 0x48d321
mov edx, 1
mov ecx, esi
mov eax, edx
shl eax, cl
test eax, 0x40016
jne 0x48d363
movzx edx, word [esi*8 + 0x7329e0]
movzx eax, word [ebx]
cmp dx, ax
je 0x48d460
cmp dx, 0xb
je 0x48d4eb
test ax, ax
je 0x48d460
lea esi, [ebp - 0x28]
mov ebx, 0x80070057
mov ecx, esi
call fcn.004bab10
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 8
movzx eax, word [ebx]
cmp ax, 0x13
je 0x48d400
cmp ax, 8
jne 0x48d348
lea eax, [ebp - 0x3c]
lea esi, [ebp - 0x28]
mov ecx, eax
mov dword [ebp - 0x4c], eax
call fcn.00472730
mov eax, dword [ebx + 8]
mov ebx, dword [ebp - 0x4c]
mov dword [esp], eax
mov ecx, ebx
call fcn.004729e0
sub esp, 4
mov eax, ebx
mov edx, esi
call fcn.0048bfa0
mov ebx, eax
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x48d3b3
mov dword [esp], eax
call fcn.006eb310
test ebx, ebx
jne 0x48d350
mov dword [esp], 0x18
call fcn.006eb380
mov ebx, eax
mov eax, dword [ebp - 0x30]
lea ecx, [ebx + 8]
mov dword [ebx], eax
movzx eax, byte [ebp - 0x2c]
mov byte [ebx + 4], al
mov dword [esp], esi
call fcn.004b9fc0
sub esp, 4
mov eax, dword [edi + 4]
cmp eax, dword [edi + 8]
je 0x48d475
mov edx, dword [edi]
mov dword [edx + eax*4], ebx
add eax, 1
xor ebx, ebx
mov dword [edi + 4], eax
jmp 0x48d350
mov ecx, dword [ebx + 8]
cmp ecx, 0x3f
ja 0x48d348
cmp ecx, 0x1f
lea esi, [ebp - 0x28]
ja 0x48d4c4
shl edx, cl
mov ecx, esi
mov dword [esp], edx
call fcn.004ba860
sub esp, 4
jmp 0x48d3b7
mov dword [esp + 4], eax
mov eax, dword [esi]
mov ecx, dword [ebp - 0x4c]
mov dword [esp], eax
call fcn.00472b20
mov eax, dword [esi]
sub esp, 8
lea ecx, [ebp - 0x30]
lea eax, [eax + ebx*2 + 2]
mov dword [esp], eax
call fcn.004729e0
jmp 0x48d268
lea esi, [ebp - 0x28]
mov dword [esp], ebx
mov ecx, esi
call fcn.004ba140
sub esp, 4
jmp 0x48d3b7
mov edx, eax
shr edx, 2
lea eax, [eax + edx + 1]
cmp eax, 0x1fffffff
mov dword [ebp - 0x4c], eax
ja 0x48d5f8
shl eax, 2
mov dword [esp], eax
call fcn.006eb360
mov edx, eax
mov eax, dword [edi + 4]
mov ecx, dword [edi]
test eax, eax
jne 0x48d51a
test ecx, ecx
je 0x48d4b7
mov dword [esp], ecx
mov dword [ebp - 0x50], edx
call fcn.006eb310
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
mov dword [edi], edx
mov dword [edi + 8], ecx
jmp 0x48d3ed
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
mov ecx, esi
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004ba8f0
sub esp, 8
jmp 0x48d3b7
cmp ax, 8
je 0x48d55c
cmp ax, 0xb
je 0x48d550
test ax, ax
jne 0x48d348
mov eax, 1
lea esi, [ebp - 0x28]
mov dword [esp], eax
mov ecx, esi
call fcn.004ba5d0
sub esp, 4
jmp 0x48d3b7
shl eax, 2
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
jmp 0x48d4a6
xor ebx, ebx
mov ecx, dword [ebp - 0x4c]
jmp 0x48d249
mov ecx, dword [ebp - 0x4c]
jmp 0x48d249
xor eax, eax
cmp word [ebx + 8], 0
setne al
jmp 0x48d505
mov ebx, dword [ebx + 8]
movzx eax, word [ebx]
test ax, ax
je 0x48d500
cmp ax, 0x2b
jne 0x48d574
cmp word [ebx + 2], 0
je 0x48d500
mov dword [esp + 4], 0x732980
mov dword [esp], ebx
call fcn.00470500
test al, al
jne 0x48d500
cmp word [ebx], 0x2d
jne 0x48d5a0
cmp word [ebx + 2], 0
jne 0x48d5a0
xor eax, eax
jmp 0x48d505
mov dword [esp + 4], 0x732983
mov dword [esp], ebx
call fcn.00470500
test al, al
je 0x48d348
xor eax, eax
jmp 0x48d505
mov ecx, esi
call fcn.004bab10
mov dword [esp], ebx
call fcn.005d7530
mov ebx, eax
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x48d5f3
mov dword [esp], eax
call fcn.006eb310
lea esi, [ebp - 0x28]
jmp 0x48d5d3
call fcn.006ebc70
mov ebx, eax
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x48d60e
mov dword [esp], eax
call fcn.006eb310
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x48d5da
mov dword [esp], eax
call fcn.006eb310
jmp 0x48d5da