Function at 0x140356f60
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x90
movdqa xmmword [rsp + 0x80], xmm6
test rcx, rcx
je 0x140357482
mov rdi, rdx
test rdx, rdx
je 0x140357482
mov r12, rcx
mov rdx, rdi
call fcn.140356060
mov eax, dword [rdi + 8]
test al, 8
jne 0x140357003
cmp byte [rdi + 0x1d], 3
je 0x1403574e2
test al, 0x10
jne 0x14035701b
test al, 0x20
jne 0x140357043
test al, 0x40
jne 0x14035705f
test eax, 0x100
jne 0x140357081
test eax, 0x400
jne 0x140357105
test eax, 0x4000
jne 0x140357152
test al, 0x80
jne 0x1403571eb
test eax, 0x200
jne 0x140357278
test eax, 0x2000
jne 0x1403572c6
jmp 0x140357306
mov rdx, qword [rdi + 0x10]
movzx r8d, word [rdi + 0x18]
mov rcx, r12
call fcn.140357500
mov eax, dword [rdi + 8]
test al, 0x10
je 0x140356faf
mov rdx, qword [rdi + 0x58]
lea r8, [rdi + 0x60]
movzx r9d, word [rdi + 0x1a]
movzx eax, byte [rdi + 0x1d]
mov dword [rsp + 0x20], eax
mov rcx, r12
call fcn.140357670
mov eax, dword [rdi + 8]
test al, 0x20
je 0x140356fb7
lea rdx, [rdi + 0x6a]
movzx r8d, byte [rdi + 0x1d]
mov rcx, r12
call fcn.1403577c0
mov eax, dword [rdi + 8]
test al, 0x40
je 0x140356fbf
mov rdx, qword [rdi + 0x90]
movzx r8d, word [rdi + 0x18]
mov rcx, r12
call fcn.1403578f0
mov eax, dword [rdi + 8]
test eax, 0x100
je 0x140356fca
mov ebx, dword [rdi + 0x74]
mov ecx, dword [rdi + 0x78]
mov sil, byte [rdi + 0x7c]
cmp sil, 2
jb 0x1403570a4
lea rdx, str.Unrecognized_unit_type_for_oFFs_chunk
mov ebp, ecx
mov rcx, r12
call fcn.14034c080
mov ecx, ebp
mov eax, ebx
shr eax, 0x18
mov byte [rsp + 0x40], al
mov eax, ebx
shr eax, 0x10
mov byte [rsp + 0x41], al
mov byte [rsp + 0x42], bh
mov byte [rsp + 0x43], bl
mov eax, ecx
shr eax, 0x18
mov byte [rsp + 0x44], al
mov eax, ecx
shr eax, 0x10
mov byte [rsp + 0x45], al
mov byte [rsp + 0x46], ch
mov byte [rsp + 0x47], cl
mov byte [rsp + 0x48], sil
lea rdx, str.oFFs
lea r8, [rsp + 0x40]
mov r9d, 9
mov rcx, r12
call fcn.140356e20
mov eax, dword [rdi + 8]
test eax, 0x400
je 0x140356fd5
mov rdx, qword [rdi + 0xb8]
mov r8d, dword [rdi + 0xc0]
mov r9d, dword [rdi + 0xc4]
movzx eax, byte [rdi + 0xd8]
movzx ecx, byte [rdi + 0xd9]
movups xmm0, xmmword [rdi + 0xc8]
movups xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], eax
mov rcx, r12
call fcn.140357aa0
mov eax, dword [rdi + 8]
test eax, 0x4000
je 0x140356fe0
mov al, byte [rdi + 0x114]
movq xmm3, qword [rdi + 0x118]
movq xmm6, qword [rdi + 0x120]
mov byte [rsp + 0x40], al
lea rbx, [rsp + 0x41]
lea r14, str._12.12e
mov edx, 0x3f
mov rcx, rbx
mov r8, r14
movq r9, xmm3
call fcn.14034ce10
mov rcx, rbx
call sub.msvcrt.dll_strlen
mov rbx, rax
lea r15, [rsp + rax]
add r15, 0x42
mov edx, 0x3e
sub rdx, rax
mov rcx, r15
mov r8, r14
movdqa xmm3, xmm6
movq r9, xmm6
call fcn.14034ce10
mov rcx, r15
call sub.msvcrt.dll_strlen
lea r9, [rax + rbx]
add r9, 2
lea rdx, str.sCAL
lea r8, [rsp + 0x40]
mov rcx, r12
call fcn.140356e20
mov eax, dword [rdi + 8]
test al, 0x80
je 0x140356fe8
mov ebx, dword [rdi + 0x80]
mov ecx, dword [rdi + 0x84]
mov sil, byte [rdi + 0x88]
cmp sil, 2
jb 0x140357217
lea rdx, str.Unrecognized_unit_type_for_pHYs_chunk
mov ebp, ecx
mov rcx, r12
call fcn.14034c080
mov ecx, ebp
mov eax, ebx
shr eax, 0x18
mov byte [rsp + 0x40], al
mov eax, ebx
shr eax, 0x10
mov byte [rsp + 0x41], al
mov byte [rsp + 0x42], bh
mov byte [rsp + 0x43], bl
mov eax, ecx
shr eax, 0x18
mov byte [rsp + 0x44], al
mov eax, ecx
shr eax, 0x10
mov byte [rsp + 0x45], al
mov byte [rsp + 0x46], ch
mov byte [rsp + 0x47], cl
mov byte [rsp + 0x48], sil
lea rdx, str.pHYs
lea r8, [rsp + 0x40]
mov r9d, 9
mov rcx, r12
call fcn.140356e20
mov eax, dword [rdi + 8]
test eax, 0x200
je 0x140356ff3
mov al, byte [rdi + 0x4a]
lea ecx, [rax - 0xd]
cmp cl, 0xf4
jb 0x1403572a4
mov cl, byte [rdi + 0x4b]
lea edx, [rcx - 0x20]
cmp dl, 0xe1
jb 0x1403572a4
mov dl, byte [rdi + 0x4c]
cmp dl, 0x17
ja 0x1403572a4
mov r8b, byte [rdi + 0x4e]
cmp r8b, 0x3d
jb 0x14035749c
lea rdx, str.Invalid_time_specified_for_tIME_chunk
mov rcx, r12
call fcn.14034c080
or byte [r12 + 0x131], 2
mov eax, dword [rdi + 8]
test eax, 0x2000
je 0x140357306
cmp dword [rdi + 0x110], 0
jle 0x140357306
xor esi, esi
xor ebx, ebx
nop word cs:[rax + rax]
nop dword [rax]
mov rdx, qword [rdi + 0x108]
add rdx, rsi
mov rcx, r12
call fcn.140358080
add rbx, 1
movsxd rax, dword [rdi + 0x110]
add rsi, 0x20
cmp rbx, rax
jl 0x1403572e0
cmp dword [rdi + 0x34], 0
jle 0x14035739d
mov rax, qword [rdi + 0x40]
xor ebx, ebx
lea r14, str.Unable_to_write_international_text
xor esi, esi
jmp 0x140357358
mov rcx, r12
mov rdx, r14
call fcn.14034c080
mov ecx, 0xfffffffd
mov rax, qword [rdi + 0x40]
mov dword [rax + rbx], ecx
add rsi, 1
movsxd rcx, dword [rdi + 0x34]
add rbx, 0x20
cmp rsi, rcx
jge 0x14035739d
mov ecx, dword [rax + rbx]
test ecx, ecx
jg 0x140357330
cmp ecx, 0xffffffff
je 0x140357389
test ecx, ecx
jne 0x140357347
mov rdx, qword [rax + rbx + 8]
mov r8, qword [rax + rbx + 0x10]
mov dword [rsp + 0x20], 0
mov rcx, r12
call fcn.140358420
mov ecx, 0xfffffffe
jmp 0x140357340
mov rdx, qword [rax + rbx + 8]
mov r8, qword [rax + rbx + 0x10]
mov rcx, r12
call fcn.1403586d0
jmp 0x14035733b
mov r9, qword [rdi + 0xe8]
test r9, r9
je 0x140357482
jle 0x140357482
mov r8, qword [rdi + 0xe0]
mov rbx, r8
jmp 0x1403573f8
mov r8, qword [rbx + 8]
mov r9, qword [rbx + 0x10]
mov rcx, r12
mov rdx, rbx
call fcn.140356e20
mov r8, qword [rdi + 0xe0]
mov r9, qword [rdi + 0xe8]
add rbx, 0x20
mov rax, r9
shl rax, 5
add rax, r8
cmp rbx, rax
jae 0x140357482
xor edx, edx
test rbx, rbx
je 0x140357440
movsxd rsi, dword [r12 + 0x2c0]
test rsi, rsi
jle 0x140357440
mov rcx, qword [r12 + 0x2c8]
lea rax, [rsi + rsi*4]
add rcx, rax
add rcx, 0xfffffffffffffffb
nop
mov eax, dword [rbx]
cmp eax, dword [rcx]
je 0x140357433
add esi, 0xffffffff
add rcx, 0xfffffffffffffffb
test esi, esi
jne 0x140357420
jmp 0x140357440
movzx edx, byte [rcx + 4]
cmp edx, 1
je 0x1403573e1
nop dword [rax]
movzx ecx, byte [rbx + 0x18]
test ecx, ecx
je 0x1403573e1
mov eax, ecx
and eax, 2
je 0x1403573e1
mov eax, ecx
and eax, 4
jne 0x1403573e1
and ecx, 8
jne 0x1403573e1
test byte [rbx + 3], 0x20
jne 0x1403573c0
cmp edx, 3
je 0x1403573c0
test byte [r12 + 0x136], 1
jne 0x1403573c0
jmp 0x1403573e1
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x90
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
movzx ebp, word [rdi + 0x48]
mov ebx, ebp
mov byte [rsp + 0x40], bh
mov byte [rsp + 0x41], bpl
mov byte [rsp + 0x42], al
mov byte [rsp + 0x43], cl
mov byte [rsp + 0x44], dl
mov al, byte [rdi + 0x4d]
mov byte [rsp + 0x45], al
mov byte [rsp + 0x46], r8b
lea rdx, str.tIME
lea r8, [rsp + 0x40]
mov r9d, 7
mov rcx, r12
call fcn.140356e20
jmp 0x1403572b3
lea rdx, str.Valid_palette_required_for_paletted_images
mov rcx, r12
call fcn.14034bc20
int3