Function at 0x100178c0
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x4c
mov ebp, dword [esp + 0x64]
cmp byte [esp + 0x68], 0
je 0x1001793e
movsd xmm0, qword [0x10100990]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [0x10100988]
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [0x10100980]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [0x10100978]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [0x10100970]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [0x10100968]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [0x10100960]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
jmp 0x100179a8
movsd xmm0, qword [0x101009d0]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [0x101009c8]
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [0x101009c0]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [0x101009b8]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [0x101009b0]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [0x101009a8]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [0x101009a0]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [0x10100998]
mov eax, ebp
movsd qword [esp + 8], xmm0
mov byte [esp + 0x48], 0
add eax, 2
jb 0x10017cfd
mov esi, 0xaaaaaaab
mov ecx, 4
mul esi
mov eax, edx
shr eax, 1
mul ecx
jo 0x10017cfd
mov edi, dword [esp + 0x6c]
push eax
push dword [edi + 8]
push edi
call fcn.1000f580
add esp, 0xc
mov eax, ebp
mul esi
shr edx, 1
lea esi, [edx + edx*2]
mov edx, edi
test esi, esi
je 0x10017b33
mov edi, 2
mov dword [esp + 4], esi
lea eax, [edi - 2]
cmp eax, ebp
jb 0x10017a35
jmp 0x10017cc4
mov ecx, dword [edx]
mov esi, dword [esp + 4]
mov byte [ecx + eax], bl
inc dword [edx + 8]
lea eax, [edi + 3]
inc edi
cmp edi, esi
mov edi, eax
jae 0x10017b33
lea eax, [edi - 2]
cmp eax, ebp
jae 0x10017cc4
mov eax, dword [esp + 0x60]
movzx esi, byte [eax + edi - 2]
mov eax, esi
shr eax, 2
movzx ebx, byte [esp + eax + 8]
mov eax, dword [edx + 8]
cmp eax, dword [edx + 4]
jne 0x10017a63
push 1
push eax
push edx
call fcn.1000f580
mov edx, dword [esp + 0x78]
add esp, 0xc
mov eax, dword [edx + 8]
mov ecx, dword [edx]
mov byte [ecx + eax], bl
lea ecx, [edi - 1]
mov eax, dword [edx + 8]
inc eax
cmp ecx, ebp
mov dword [edx + 8], eax
jae 0x10017cd5
mov ecx, dword [esp + 0x60]
shl esi, 4
and esi, 0x30
movzx ebp, byte [ecx + edi - 1]
mov ecx, ebp
shr ecx, 4
or ecx, esi
cmp eax, dword [edx + 4]
movzx ecx, byte [esp + ecx + 8]
mov byte [esp], cl
jne 0x10017ab0
push 1
push eax
push edx
call fcn.1000f580
mov edx, dword [esp + 0x78]
add esp, 0xc
mov eax, dword [edx + 8]
mov ecx, dword [edx]
movzx ebx, byte [esp]
mov byte [ecx + eax], bl
mov eax, dword [edx + 8]
inc eax
cmp edi, dword [esp + 0x64]
mov dword [edx + 8], eax
jae 0x10017ce9
mov ecx, dword [esp + 0x60]
and ebp, 0xf
movzx esi, byte [ecx + edi]
mov ecx, esi
shr ecx, 6
cmp eax, dword [edx + 4]
lea ecx, [ecx + ebp*4]
movzx ebx, byte [esp + ecx + 8]
jne 0x10017afa
push 1
push eax
push edx
call fcn.1000f580
mov edx, dword [esp + 0x78]
add esp, 0xc
mov eax, dword [edx + 8]
mov ecx, dword [edx]
and esi, 0x3f
mov ebp, dword [esp + 0x64]
mov byte [ecx + eax], bl
mov eax, dword [edx + 8]
inc eax
mov dword [edx + 8], eax
movzx ebx, byte [esp + esi + 8]
cmp eax, dword [edx + 4]
jne 0x10017a10
push 1
push eax
push edx
call fcn.1000f580
mov edx, dword [esp + 0x78]
add esp, 0xc
mov eax, dword [edx + 8]
jmp 0x10017a10
mov edi, ebp
sub edi, esi
cmp edi, 1
je 0x10017be1
cmp edi, 2
jne 0x10017c64
cmp esi, ebp
jae 0x10017d13
mov eax, dword [esp + 0x60]
movzx eax, byte [eax + esi]
mov dword [esp], eax
shr eax, 2
mov bl, byte [esp + eax + 8]
mov eax, dword [edx + 8]
cmp eax, dword [edx + 4]
jne 0x10017b7e
push 1
push eax
push edx
call fcn.1000f580
mov edx, dword [esp + 0x78]
add esp, 0xc
mov eax, dword [edx + 8]
mov ecx, dword [edx]
inc esi
mov byte [ecx + eax], bl
mov eax, dword [edx + 8]
inc eax
cmp esi, ebp
mov dword [edx + 8], eax
jae 0x10017d24
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp]
movzx esi, byte [ecx + esi]
shl ebx, 4
and ebx, 0x30
mov ecx, esi
shr ecx, 4
or ecx, ebx
cmp eax, dword [edx + 4]
mov bl, byte [esp + ecx + 8]
jne 0x10017bc7
push 1
push eax
push edx
call fcn.1000f580
mov edx, dword [esp + 0x78]
add esp, 0xc
mov eax, dword [edx + 8]
mov ecx, dword [edx]
and esi, 0xf
mov byte [ecx + eax], bl
mov eax, dword [edx + 8]
inc eax
mov dword [edx + 8], eax
mov bl, byte [esp + esi*4 + 8]
cmp eax, dword [edx + 4]
je 0x10017c30
jmp 0x10017c43
cmp esi, ebp
jae 0x10017d35
mov eax, dword [esp + 0x60]
movzx esi, byte [eax + esi]
mov eax, esi
shr eax, 2
mov bl, byte [esp + eax + 8]
mov eax, dword [edx + 8]
cmp eax, dword [edx + 4]
jne 0x10017c15
push 1
push eax
push edx
call fcn.1000f580
mov edx, dword [esp + 0x78]
add esp, 0xc
mov eax, dword [edx + 8]
mov ecx, dword [edx]
shl esi, 4
and esi, 0x30
mov byte [ecx + eax], bl
mov eax, dword [edx + 8]
inc eax
mov dword [edx + 8], eax
mov bl, byte [esp + esi + 8]
cmp eax, dword [edx + 4]
jne 0x10017c43
push 1
push eax
push edx
call fcn.1000f580
mov edx, dword [esp + 0x78]
add esp, 0xc
mov eax, dword [edx + 8]
mov ecx, dword [edx]
xor edi, 3
mov byte [ecx + eax], bl
mov ecx, 0xaaaaaaab
mov eax, edi
inc dword [edx + 8]
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
mov edx, dword [esp + 0x6c]
sub edi, eax
jmp 0x10017c7d
xor edi, 3
mov ecx, 0xaaaaaaab
mov eax, edi
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
mov edx, dword [esp + 0x6c]
sub edi, eax
je 0x10017cbc
mov eax, dword [edx + 8]
xor esi, esi
inc esi
cmp eax, dword [edx + 4]
je 0x10017ca7
nop dword [eax + eax]
mov ecx, dword [edx]
mov byte [ecx + eax], 0x3d
mov eax, dword [edx + 8]
inc eax
cmp esi, edi
mov dword [edx + 8], eax
jae 0x10017cbc
inc esi
cmp eax, dword [edx + 4]
jne 0x10017c90
push 1
push eax
push edx
call fcn.1000f580
mov edx, dword [esp + 0x78]
add esp, 0xc
mov eax, dword [edx + 8]
jmp 0x10017c90
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret
push ebp
push eax
push 0x101009d8
call fcn.100df2b0
add esp, 0xc
ud2
push dword [esp + 0x64]
push ecx
push 0x101009e8
call fcn.100df2b0
add esp, 0xc
ud2
push dword [esp + 0x64]
push edi
push 0x101009f8
call fcn.100df2b0
add esp, 0xc
ud2
push 0x10100a38
push 0x2d
push 0x10100919
call fcn.10018400
add esp, 0xc
ud2
push ebp
push esi
push 0x10100a08
call fcn.100df2b0
add esp, 0xc
ud2
push ebp
push esi
push 0x10100a18
call fcn.100df2b0
add esp, 0xc
ud2
push ebp
push esi
push 0x10100a28
call fcn.100df2b0
add esp, 0xc
ud2