Function at 0x10045620
Capabilities:
Encode data using base64

Disassembly:
push 0xffffffffffffffff
push 0x10045ec1
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x100695e8]
xor eax, esp
mov dword [esp + 0x5c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x100695e8]
xor eax, esp
push eax
lea eax, [esp + 0x74]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x24], 0
mov ecx, 0x10
mov esi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
lea edi, [esp + 0x2c]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x14], 0xf
mov dword [ebx + 0x10], 0
mov dword [esp + 0x28], ebx
mov byte [ebx], 0
mov ebp, dword [esp + 0x8c]
xor edi, edi
mov dword [esp + 0x7c], 0
mov dword [esp + 0x24], 1
test ebp, ebp
je 0x10045947
mov ecx, dword [esp + 0x88]
nop
mov al, byte [ecx]
mov byte [esp + edi + 0x18], al
mov ah, byte [esp + 0x1a]
mov dl, byte [esp + 0x19]
mov dh, byte [esp + 0x18]
inc edi
inc ecx
dec ebp
mov dword [esp + 0x88], ecx
mov byte [esp + 0x17], ah
mov byte [esp + 0x23], dl
mov byte [esp + 0x21], dh
cmp edi, 3
jne 0x100457bc
mov al, dh
shr al, 2
mov byte [esp + 0x1c], al
mov cl, dh
and cl, 3
shl cl, 4
mov al, dl
shr al, 4
add cl, al
mov byte [esp + 0x1d], cl
mov cl, dl
and cl, 0xf
mov al, ah
shr al, 6
shl cl, 2
add cl, al
mov al, ah
and al, 0x3f
mov byte [esp + 0x1e], cl
mov byte [esp + 0x1f], al
xor edi, edi
lea ebx, [ebx]
movzx eax, byte [esp + edi + 0x1c]
mov ecx, dword [ebx + 0x10]
mov dl, byte [esp + eax + 0x2c]
or eax, 0xffffffff
sub eax, ecx
mov byte [esp + 0x22], dl
cmp eax, 1
jbe 0x100457f1
lea esi, [ecx + 1]
cmp esi, 0xfffffffe
ja 0x100457f1
mov eax, dword [ebx + 0x14]
cmp eax, esi
jae 0x1004576f
push ecx
push esi
mov ecx, ebx
call fcn.1000e530
mov dl, byte [esp + 0x22]
test esi, esi
je 0x100457a1
cmp dword [ebx + 0x14], 0x10
mov ecx, dword [ebx + 0x10]
jb 0x10045789
mov eax, dword [ebx]
jmp 0x1004578b
test esi, esi
jne 0x10045762
mov dword [ebx + 0x10], esi
cmp eax, 0x10
jb 0x10045782
mov eax, dword [ebx]
mov byte [eax], 0
jmp 0x100457a1
mov eax, ebx
mov byte [eax], 0
jmp 0x100457a1
mov eax, ebx
mov byte [eax + ecx], dl
cmp dword [ebx + 0x14], 0x10
mov dword [ebx + 0x10], esi
jb 0x1004579b
mov eax, dword [ebx]
jmp 0x1004579d
mov eax, ebx
mov byte [eax + esi], 0
inc edi
cmp edi, 4
jl 0x10045720
mov ecx, dword [esp + 0x88]
mov dl, byte [esp + 0x23]
mov dh, byte [esp + 0x21]
xor edi, edi
test ebp, ebp
jne 0x100456b0
test edi, edi
je 0x10045947
mov eax, edi
cmp edi, 3
jge 0x10045800
cmp eax, 3
jae 0x100457fb
mov byte [esp + eax + 0x18], 0
inc eax
cmp eax, 3
jl 0x100457d6
mov cl, byte [esp + 0x1a]
mov dl, byte [esp + 0x19]
mov dh, byte [esp + 0x18]
jmp 0x10045804
push str.string_too_long
call fcn.100244a7
call fcn.10027838
mov cl, byte [esp + 0x17]
mov al, dh
shr al, 2
mov byte [esp + 0x1c], al
mov al, dl
and dh, 3
shr al, 4
shl dh, 4
add dh, al
and dl, 0xf
mov al, cl
shr al, 6
shl dl, 2
add dl, al
and cl, 0x3f
lea eax, [edi + 1]
xor ebp, ebp
mov byte [esp + 0x1d], dh
mov byte [esp + 0x1e], dl
mov byte [esp + 0x1f], cl
test eax, eax
jle 0x100458c8
movzx eax, byte [esp + ebp + 0x1c]
mov ecx, dword [ebx + 0x10]
mov dl, byte [esp + eax + 0x2c]
or eax, 0xffffffff
sub eax, ecx
mov byte [esp + 0x17], dl
cmp eax, 1
jbe 0x100457f1
lea esi, [ecx + 1]
cmp esi, 0xfffffffe
ja 0x100457f1
mov eax, dword [ebx + 0x14]
cmp eax, esi
jae 0x1004588a
push ecx
push esi
mov ecx, ebx
call fcn.1000e530
mov dl, byte [esp + 0x17]
test esi, esi
je 0x100458bc
cmp dword [ebx + 0x14], 0x10
mov ecx, dword [ebx + 0x10]
jb 0x100458a4
mov eax, dword [ebx]
jmp 0x100458a6
test esi, esi
jne 0x1004587d
mov dword [ebx + 0x10], esi
cmp eax, 0x10
jb 0x1004589d
mov eax, dword [ebx]
mov byte [eax], 0
jmp 0x100458bc
mov eax, ebx
mov byte [eax], 0
jmp 0x100458bc
mov eax, ebx
mov byte [eax + ecx], dl
cmp dword [ebx + 0x14], 0x10
mov dword [ebx + 0x10], esi
jb 0x100458b6
mov eax, dword [ebx]
jmp 0x100458b8
mov eax, ebx
mov byte [eax + esi], 0
inc ebp
lea eax, [edi + 1]
cmp ebp, eax
jl 0x10045843
cmp edi, 3
jge 0x10045947
lea ecx, [ecx]
mov ecx, dword [ebx + 0x10]
or eax, 0xffffffff
sub eax, ecx
inc edi
cmp eax, 1
jbe 0x100457f1
lea esi, [ecx + 1]
cmp esi, 0xfffffffe
ja 0x100457f1
mov eax, dword [ebx + 0x14]
cmp eax, esi
jae 0x1004590f
push ecx
push esi
mov ecx, ebx
call fcn.1000e530
test esi, esi
je 0x10045942
cmp dword [ebx + 0x14], 0x10
mov ecx, dword [ebx + 0x10]
jb 0x10045929
mov eax, dword [ebx]
jmp 0x1004592b
test esi, esi
jne 0x10045902
mov dword [ebx + 0x10], esi
cmp eax, 0x10
jb 0x10045922
mov eax, dword [ebx]
mov byte [eax], 0
jmp 0x10045942
mov eax, ebx
mov byte [eax], 0
jmp 0x10045942
mov eax, ebx
mov byte [ecx + eax], 0x3d
cmp dword [ebx + 0x14], 0x10
mov dword [ebx + 0x10], esi
jb 0x1004593c
mov eax, dword [ebx]
jmp 0x1004593e
mov eax, ebx
mov byte [esi + eax], 0
cmp edi, 3
jl 0x100458d0
mov eax, ebx
mov ecx, dword [esp + 0x74]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x5c]
xor ecx, esp
call fcn.10026aaf
add esp, 0x6c
ret