Function at 0x490620
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov eax, dword [ebx + 4]
test eax, eax
je 0x4907c0
cmp word [edi], 0
mov esi, ecx
jne 0x490714
lea eax, [ebp - 0x3c]
mov ecx, eax
mov dword [ebp - 0x4c], eax
call fcn.00473f00
lea ecx, [ebp - 0x30]
call fcn.00473f00
mov dword [esp + 4], 0x3d
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.004718f0
test eax, eax
mov edi, eax
jns 0x4907d1
mov edi, dword [ebx + 4]
mov ecx, dword [ebx]
test edi, edi
je 0x4906ac
movzx edx, word [ecx]
lea eax, [edx - 0x30]
cmp ax, 9
jbe 0x4909ec
xor eax, eax
jmp 0x4906a5
movzx edx, word [ecx + eax*2]
sub edx, 0x30
cmp dx, 9
jbe 0x490852
add eax, 1
cmp eax, edi
jne 0x490694
mov dword [esp], ecx
mov ecx, dword [ebp - 0x4c]
mov dword [esp + 4], edi
call fcn.00474300
mov eax, dword [ebx]
sub esp, 8
lea ecx, [ebp - 0x30]
lea eax, [eax + edi*2]
mov dword [esp], eax
call fcn.004741d0
lea eax, [ebp - 0x30]
sub esp, 4
mov ecx, esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp], eax
call fcn.0048fcf0
mov edi, eax
mov eax, dword [ebp - 0x30]
sub esp, 8
test eax, eax
je 0x4906f9
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x490708
mov dword [esp], eax
call fcn.006febd0
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret 8
xor eax, eax
mov dword [ebp - 0x4c], eax
jmp 0x490730
add dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x4c]
cmp eax, 0x15
je 0x4907c0
mov eax, dword [eax*8 + 0x7463c4]
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.00471cf0
test al, al
je 0x490720
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], 0
mov edx, eax
mov dword [ebp - 0x30], eax
movzx eax, word [edi]
cmp edx, 0x12
ja 0x490786
movzx ecx, byte [ebp - 0x4c]
mov edx, 1
mov ebx, edx
shl ebx, cl
mov ecx, ebx
and ecx, 0x40016
jne 0x490860
mov ebx, dword [ebp - 0x4c]
movzx edx, word [ebx*8 + 0x7463c0]
cmp dx, ax
je 0x490800
cmp dx, 0xb
je 0x490900
test ax, ax
je 0x490800
lea ebx, [ebp - 0x28]
mov edi, 0x80070057
mov ecx, ebx
call fcn.004c0970
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret 8
lea esp, [ebp - 0xc]
mov edi, 0x80070057
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x4c]
mov dword [esp], eax
call fcn.00474300
mov eax, dword [ebx]
sub esp, 8
lea ecx, [ebp - 0x30]
lea eax, [eax + edi*2 + 2]
mov dword [esp], eax
call fcn.004741d0
jmp 0x4906ce
lea ebx, [ebp - 0x28]
mov dword [esp], edi
mov ecx, ebx
call fcn.004bffc0
sub esp, 4
mov dword [esp], 0x18
call fcn.006fec40
mov edi, eax
mov eax, dword [ebp - 0x30]
lea ecx, [edi + 8]
mov dword [edi], eax
movzx eax, byte [ebp - 0x2c]
mov byte [edi + 4], al
mov dword [esp], ebx
call fcn.004bfe40
mov eax, dword [esi + 4]
sub esp, 4
cmp eax, dword [esi + 8]
lea ecx, [eax + 1]
je 0x4908c0
mov edx, dword [esi]
mov dword [edx + eax*4], edi
mov dword [esi + 4], ecx
xor edi, edi
jmp 0x4907ad
mov edi, eax
jmp 0x4906ac
cmp ax, 0x13
je 0x4909c4
cmp ax, 8
jne 0x4907a5
lea eax, [ebp - 0x3c]
lea ebx, [ebp - 0x28]
mov ecx, eax
mov dword [ebp - 0x4c], eax
call fcn.00473f00
mov eax, dword [edi + 8]
mov edi, dword [ebp - 0x4c]
mov dword [esp], eax
mov ecx, edi
call fcn.004741d0
sub esp, 4
mov eax, edi
mov edx, ebx
call fcn.0048f390
mov edi, eax
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x4908b1
mov dword [esp], eax
call fcn.006febd0
test edi, edi
jne 0x4907ad
jmp 0x490810
shr eax, 2
add eax, ecx
cmp eax, 0x1fffffff
mov dword [ebp - 0x4c], eax
ja 0x490a29
shl eax, 2
mov dword [esp], eax
call fcn.006fec20
mov edx, eax
mov eax, dword [esi + 4]
mov ecx, dword [esi]
test eax, eax
jne 0x490933
test ecx, ecx
jne 0x490952
mov ecx, dword [ebp - 0x4c]
mov dword [esi], edx
mov dword [esi + 8], ecx
lea ecx, [eax + 1]
jmp 0x490845
cmp ax, 8
je 0x490965
cmp ax, 0xb
je 0x490a1a
test ax, ax
jne 0x4907a5
mov eax, 1
lea ebx, [ebp - 0x28]
mov dword [esp], eax
mov ecx, ebx
call fcn.004c0450
sub esp, 4
jmp 0x490810
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 edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
mov dword [esp], ecx
mov dword [ebp - 0x50], edx
call fcn.006febd0
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x50]
jmp 0x4908ed
mov ebx, dword [edi + 8]
movzx eax, word [ebx]
test ax, ax
je 0x490919
cmp ax, 0x2b
jne 0x49097d
cmp word [ebx + 2], 0
je 0x490919
mov dword [esp + 4], 0x746360
mov dword [esp], ebx
call fcn.00471cf0
test al, al
jne 0x490919
cmp word [ebx], 0x2d
jne 0x4909a5
cmp word [ebx + 2], 0
jne 0x4909a5
xor eax, eax
jmp 0x49091e
mov dword [esp + 4], 0x746363
mov dword [esp], ebx
call fcn.00471cf0
test al, al
je 0x4907a5
xor eax, eax
jmp 0x49091e
mov ecx, dword [edi + 8]
cmp ecx, 0x3f
ja 0x4907a5
cmp ecx, 0x1f
lea ebx, [ebp - 0x28]
ja 0x4909f3
shl edx, cl
mov ecx, ebx
mov dword [esp], edx
call fcn.004c06e0
sub esp, 4
jmp 0x490810
xor edi, edi
jmp 0x4906ac
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
mov ecx, ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004c0770
sub esp, 8
jmp 0x490810
xor eax, eax
cmp word [edi + 8], 0
setne al
jmp 0x49091e
call fcn.006ff430
mov esi, eax
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x490a3f
mov dword [esp], eax
call fcn.006febd0
lea ebx, [ebp - 0x28]
mov ecx, ebx
call fcn.004c0970
mov dword [esp], esi
call fcn.005e6130
mov dword [esp + 4], 0x18
mov dword [esp], edi
mov esi, eax
call fcn.006fec10
jmp 0x490a42