Function at 0x6d34a240
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov r13, rcx
mov r12, rdx
mov rdi, r8
mov esi, r9d
cmp r9d, 4
je 0x6d34a28d
ja 0x6d34a271
cmp r9d, 3
je 0x6d34a295
test r9d, r9d
je 0x6d34a277
jmp 0x6d34a28d
cmp r9d, 5
je 0x6d34a295
mov r8d, 0x179
lea rdx, str.src_Cairo.cpp
lea rcx, str.cairoformat___CAIRO_FORMAT_INVALID
jmp 0x6d34a2f6
mov r14d, 1
jmp 0x6d34a298
xor r14d, r14d
mov rcx, rdi
call fcn.6d369820
mov rcx, rdi
mov eax, dword [rax]
mov dword [rsp + 0x38], eax
call fcn.6d369830
mov edx, dword [rsp + 0x38]
mov ecx, r14d
mov eax, dword [rax]
mov dword [rsp + 0x3c], eax
call fcn.6d3d55e0
mov ecx, dword [rsp + 0x3c]
imul ecx, dword [rsp + 0x38]
mov r15d, eax
imul ecx, eax
shl ecx, 2
movsxd rcx, ecx
call sub.msvcrt.dll_malloc
mov rbp, rax
test rax, rax
jne 0x6d34a30b
mov r8d, 0x180
lea rdx, str.src_Cairo.cpp
lea rcx, str.newdata___nullptr
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.6d347800
mov dword [rsp + 0x20], r15d
mov r8d, dword [rsp + 0x38]
mov edx, r14d
mov rcx, rax
mov r9d, dword [rsp + 0x3c]
call fcn.6d3d61d0
mov r8d, 0x183
lea rdx, str.src_Cairo.cpp
lea rcx, str.newsurface___nullptr
mov r14, rax
test rax, rax
je 0x6d34a2f6
mov rcx, rdi
call fcn.6d369820
mov rcx, r14
mov r15d, dword [rax]
call fcn.6d3d6400
mov r8d, 0x184
lea rdx, str.src_Cairo.cpp
lea rcx, str.static_cast_int__s.getWidth_____cairo_image_surface_get_width_newsurface_
cmp r15d, eax
jne 0x6d34a2f6
mov rcx, rdi
call fcn.6d369830
mov rcx, r14
mov r15d, dword [rax]
call fcn.6d3d6380
mov r8d, 0x185
lea rdx, str.src_Cairo.cpp
lea rcx, str.static_cast_int__s.getHeight_____cairo_image_surface_get_height_newsurface_
cmp r15d, eax
jne 0x6d34a2f6
mov rcx, qword [r13 + 0x20]
call fcn.6d3db890
mov rdx, qword [r13 + 0x30]
test rdx, rdx
je 0x6d34a3be
dec dword [rdx]
jne 0x6d34a3be
mov rcx, qword [r13 + 0x28]
call sub.msvcrt.dll_free
jmp 0x6d34a3cc
mov ecx, 4
call sub.msvcrt.dll_malloc
mov qword [r13 + 0x30], rax
mov rax, qword [r13 + 0x30]
mov qword [r13 + 0x20], r14
mov qword [r13 + 0x28], rbp
mov dword [rax], 1
lea eax, [rsi - 1]
cmp eax, 4
ja case.default.0x6d34a3f8
lea rdx, [0x6d4e5030]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
xor ecx, ecx
xor r8d, r8d
cmp r8d, dword [rsp + 0x3c]
jge case.default.0x6d34a3f8
lea eax, [rcx*4]
movsxd r11, ecx
xor edx, edx
cdqe
add r11, r12
add rax, rbp
cmp dword [rsp + 0x38], edx
jle 0x6d34a441
mov r9b, byte [r11 + rdx]
mov byte [rax + 3], 0
inc rdx
add rax, 4
mov byte [rax - 4], r9b
mov byte [rax - 3], r9b
mov byte [rax - 2], r9b
jmp 0x6d34a41e
inc r8d
add ecx, dword [rsp + 0x38]
jmp 0x6d34a3ff
xor r8d, r8d
xor r9d, r9d
cmp r9d, dword [rsp + 0x3c]
jge case.default.0x6d34a3f8
lea edx, [r8 + r8*2]
lea eax, [r8*4]
xor ecx, ecx
movsxd rdx, edx
cdqe
add rdx, r12
add rax, rbp
cmp ecx, dword [rsp + 0x38]
jge 0x6d34a4a1
mov r11b, byte [rdx]
mov byte [rax + 3], 0
inc ecx
add rdx, 3
add rax, 4
mov byte [rax - 4], r11b
mov r11b, byte [rdx - 2]
mov byte [rax - 3], r11b
mov r11b, byte [rdx - 1]
mov byte [rax - 2], r11b
jmp 0x6d34a474
inc r9d
add r8d, dword [rsp + 0x38]
jmp 0x6d34a450
xor edx, edx
xor ecx, ecx
cmp ecx, dword [rsp + 0x3c]
jge case.default.0x6d34a3f8
lea eax, [rdx*4]
xor r8d, r8d
cdqe
cmp r8d, dword [rsp + 0x38]
jge 0x6d34a512
movzx r11d, byte [r12 + rax + 3]
movzx r9d, byte [r12 + rax]
inc r8d
imul r9d, r11d
mov byte [rbp + rax + 3], r11b
mov ebx, r9d
movzx r9d, byte [r12 + rax + 1]
mov byte [rbp + rax], bh
imul r9d, r11d
mov ebx, r9d
movzx r9d, byte [r12 + rax + 2]
mov byte [rbp + rax + 1], bh
imul r9d, r11d
mov ebx, r9d
mov byte [rbp + rax + 2], bh
add rax, 4
jmp 0x6d34a4c5
inc ecx
add edx, dword [rsp + 0x38]
jmp 0x6d34a4af
xor r8d, r8d
xor r9d, r9d
cmp r9d, dword [rsp + 0x3c]
jge case.default.0x6d34a3f8
lea edx, [r8 + r8*2]
lea eax, [r8*4]
xor ecx, ecx
movsxd rdx, edx
cdqe
add rdx, r12
add rax, rbp
cmp ecx, dword [rsp + 0x38]
jge 0x6d34a572
mov r11b, byte [rdx + 2]
mov byte [rax + 3], 0
inc ecx
add rdx, 3
add rax, 4
mov byte [rax - 4], r11b
mov r11b, byte [rdx - 2]
mov byte [rax - 3], r11b
mov r11b, byte [rdx - 3]
mov byte [rax - 2], r11b
jmp 0x6d34a544
inc r9d
add r8d, dword [rsp + 0x38]
jmp 0x6d34a520
xor edx, edx
xor ecx, ecx
cmp ecx, dword [rsp + 0x3c]
jge case.default.0x6d34a3f8
lea eax, [rdx*4]
xor r8d, r8d
cdqe
cmp r8d, dword [rsp + 0x38]
jge 0x6d34a5df
movzx r11d, byte [r12 + rax + 3]
movzx r9d, byte [r12 + rax + 2]
inc r8d
imul r9d, r11d
mov byte [rbp + rax + 3], r11b
mov ebx, r9d
movzx r9d, byte [r12 + rax + 1]
mov byte [rbp + rax], bh
imul r9d, r11d
mov ebx, r9d
movzx r9d, byte [r12 + rax]
mov byte [rbp + rax + 1], bh
imul r9d, r11d
mov ebx, r9d
mov byte [rbp + rax + 2], bh
add rax, 4
jmp 0x6d34a592
inc ecx
add edx, dword [rsp + 0x38]
jmp 0x6d34a580
mov r9d, esi
mov r8, rdi
mov rdx, r12
mov rcx, r13
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.6d35db70