Function at 0x45b222
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
push ebx
push esi
mov esi, dword [ebp + 8]
test esi, esi
push edi
jne 0x45b23a
or eax, 0xffffffff
jmp 0x45b7eb
and dword [ebp + 8], 0
and dword [ebp - 4], 0
mov edi, dword [ebp + 0xc]
sub esi, 8
add esi, 8
movzx eax, word [esi]
cmp eax, 0x64
jg 0x45b484
je 0x45b47f
cmp eax, 0x2c
jg 0x45b32a
je 0x45b325
cmp eax, 0xc
jg 0x45b2be
je 0x45b2b6
cmp eax, 7
ja 0x45b7e9
jmp dword [eax*4 + 0x15682]
mov dword [ebp - 4], eax
jmp 0x45b248
lea esi, [esi + eax*8]
jmp 0x45b248
mov eax, dword [ebp - 4]
add dword [ebp + 8], eax
jmp 0x45b248
sub eax, 0x14
je 0x45b320
dec eax
je 0x45b315
dec eax
je 0x45b7f7
sub eax, 6
je 0x45b30a
dec eax
je 0x45b2ff
sub eax, 7
je 0x45b2f3
dec eax
jne 0x45b7e9
mov eax, dword [ebp + 8]
cmp eax, dword [esi + 4]
jg 0x45b582
movzx eax, byte [esi + 3]
jmp 0x45b2a7
mov eax, dword [esi + 4]
imul eax, dword [ebp + 8]
jmp 0x45b42e
mov eax, dword [ebp - 4]
cmp dword [ebp + 8], eax
jmp 0x45b57c
mov eax, dword [ebp - 4]
sub dword [ebp + 8], eax
jmp 0x45b248
mov eax, dword [ebp + 8]
cmp eax, dword [esi + 4]
jmp 0x45b57c
mov eax, dword [esi + 4]
jmp 0x45b30d
mov eax, dword [ebp - 4]
jmp 0x45b2f6
cmp eax, 0x4c
jg 0x45b3f9
je 0x45b3ee
cmp eax, 0x3d
jg 0x45b3ad
je 0x45b39c
sub eax, 0x2d
je 0x45b38b
sub eax, 7
je 0x45b37e
dec eax
je 0x45b36d
sub eax, 7
jne 0x45b7e9
cmp dword [ebp - 4], 0
je 0x45b7e9
mov eax, dword [ebp + 8]
xor edx, edx
div dword [ebp - 4]
jmp 0x45b42e
mov eax, dword [ebp + 8]
cmp eax, dword [esi + 4]
jl 0x45b2ed
jmp 0x45b582
mov eax, dword [ebp + 8]
xor edx, edx
div dword [esi + 4]
jmp 0x45b42e
mov eax, dword [ebp - 4]
cmp dword [ebp + 8], eax
jbe 0x45b2ed
jmp 0x45b582
mov eax, dword [ebp - 4]
cmp dword [ebp + 8], eax
jb 0x45b2ed
jmp 0x45b582
sub eax, 0x3f
je 0x45b3d4
sub eax, 5
je 0x45b3cf
dec eax
jne 0x45b7e9
mov eax, dword [ebp + 8]
test dword [esi + 4], eax
je 0x45b2ed
jmp 0x45b582
mov eax, dword [esi + 4]
jmp 0x45b3f1
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
push dword [esi + 4]
imul ecx, ecx, 0x4c
lea eax, [ecx + eax + 0xc]
push eax
call fcn.0045b1e4
jmp 0x45b248
mov eax, dword [ebp - 4]
or dword [ebp + 8], eax
jmp 0x45b248
sub eax, 0x4d
je 0x45b474
dec eax
dec eax
je 0x45b464
sub eax, 5
je 0x45b45f
sub eax, 8
je 0x45b454
sub eax, 3
je 0x45b436
dec eax
je 0x45b427
dec eax
jne 0x45b7e9
mov eax, dword [esi + 4]
mov eax, dword [ebp + eax*4 - 0x48]
jmp 0x45b28e
mov eax, dword [esi + 4]
mov eax, dword [ebp + eax*4 - 0x48]
mov dword [ebp + 8], eax
jmp 0x45b248
mov eax, dword [esi + 4]
test eax, eax
jl 0x45b7e9
cmp eax, 4
jge 0x45b7e9
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
jmp 0x45b248
mov eax, dword [ebp - 4]
and dword [ebp + 8], eax
jmp 0x45b248
mov eax, dword [esi + 4]
jmp 0x45b457
push dword [esi + 4]
push dword [ebp + 0x10]
call fcn.0045adde
jmp 0x45b7e1
mov eax, dword [ebp + 8]
test dword [ebp - 4], eax
jmp 0x45b3c4
mov ecx, dword [esi + 4]
jmp 0x45b4fa
mov ecx, 0xc9
cmp eax, ecx
jg 0x45b683
je 0x45b665
add ecx, 0xffffffd6
cmp eax, ecx
jg 0x45b58b
je 0x45b55f
cmp eax, 0x7f
jg 0x45b52c
je 0x45b502
cmp eax, 0x6c
je 0x45b4f7
cmp eax, 0x6f
je 0x45b4d7
cmp eax, 0x74
je 0x45b4d2
cmp eax, 0x7c
jne 0x45b7e9
mov ecx, dword [ebp - 4]
shr dword [ebp + 8], cl
jmp 0x45b248
mov ecx, dword [esi + 4]
jmp 0x45b4ca
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
push 1
imul ecx, ecx, 0x4c
push dword [ebp + 8]
lea eax, [ecx + eax + 0xc]
push dword [esi + 4]
push edi
push eax
call fcn.0045b0fa
jmp 0x45b7e1
mov ecx, dword [ebp - 4]
shl dword [ebp + 8], cl
jmp 0x45b248
lea eax, [ebp + 0xc]
push eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
push dword [esi + 4]
imul ecx, ecx, 0x4c
push edi
lea eax, [ecx + eax + 0xc]
push eax
call fcn.0045b006
test eax, eax
je 0x45b7e9
mov eax, dword [ebp + 0xc]
jmp 0x45b42e
sub eax, 0x84
je 0x45b557
sub eax, 3
je 0x45b54f
sub eax, 8
jne 0x45b7e9
push edi
push dword [esi + 4]
call fcn.0045ad98
jmp 0x45b7e1
mov eax, dword [ebp - 4]
jmp 0x45b42e
neg dword [ebp + 8]
jmp 0x45b248
push dword [ebp + 0x14]
push dword [esi + 4]
push dword [ebp + 0x10]
push edi
call fcn.0045af34
test eax, eax
mov dword [ebp + 0xc], eax
je 0x45b7e9
cmp eax, 2
jne 0x45b2ed
movzx eax, byte [esi + 2]
jmp 0x45b2a7
sub eax, 0xaf
je 0x45b652
sub eax, 0x10
je 0x45b642
dec eax
je 0x45b627
dec eax
je 0x45b60c
dec eax
je 0x45b5f1
dec eax
je 0x45b5d6
sub eax, 5
jne 0x45b7e9
mov eax, dword [esi + 4]
add eax, dword [edi]
mov dword [ebp - 8], eax
push eax
push ebx
mov ebx, dword [ebp - 8]
xor eax, eax
mov ax, word [ebx]
bswap eax
mov dword [ebp + 8], eax
pop ebx
pop eax
jmp 0x45b248
mov eax, dword [esi + 4]
add eax, dword [edi]
mov dword [ebp - 8], eax
push eax
push ebx
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 4]
bswap eax
mov dword [ebx], eax
pop ebx
pop eax
jmp 0x45b248
mov eax, dword [esi + 4]
add eax, dword [edi]
mov dword [ebp - 8], eax
push eax
push ebx
mov ebx, dword [ebp - 8]
mov eax, dword [ebp + 8]
bswap eax
mov dword [ebx], eax
pop ebx
pop eax
jmp 0x45b248
mov eax, dword [esi + 4]
add eax, dword [edi]
mov dword [ebp - 8], eax
push eax
push ebx
mov ebx, dword [ebp - 8]
mov eax, dword [ebx]
bswap eax
mov dword [ebp - 4], eax
pop ebx
pop eax
jmp 0x45b248
mov eax, dword [esi + 4]
add eax, dword [edi]
mov dword [ebp - 8], eax
push eax
push ebx
mov ebx, dword [ebp - 8]
mov eax, dword [ebx]
bswap eax
mov dword [ebp + 8], eax
pop ebx
pop eax
jmp 0x45b248
push dword [esi + 4]
push dword [ebp + 0x10]
call fcn.0045ae04
jmp 0x45b7e1
push dword [esi + 4]
push 0
push dword [ebp + 0x10]
push edi
call fcn.0045af64
jmp 0x45b7e1
mov eax, dword [esi + 4]
add eax, dword [edi]
mov dword [ebp - 8], eax
push eax
push ebx
mov ebx, dword [ebp - 8]
xor eax, eax
mov ax, word [ebx]
bswap eax
mov dword [ebp - 4], eax
pop ebx
pop eax
jmp 0x45b248
sub eax, 0xca
cmp eax, 0x28
ja 0x45b7e9
movzx eax, byte [eax + 0x156e2]
jmp dword [eax*4 + 0x156a2]
test eax, eax
jne 0x45b248
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0x10
mov eax, dword [ebp + 8]
jmp 0x45b7eb