Function at 0x14005e460
Capabilities:
Write file on windows

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov rbx, rcx
mov rsi, rdx
call method.sf::priv::ImageLoader.getInstance__
mov r9, rbx
lea r8, [rbx + 8]
mov rdx, rsi
mov rcx, rax
add rsp, 0x28
pop rbx
pop rsi
jmp 0x14005e460
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb0
mov rax, qword [r8 + 8]
mov rbx, rdx
mov rsi, r8
mov rdi, r9
cmp qword [r8], rax
je 0x14005e48e
mov edx, dword [r9]
test edx, edx
jne 0x14005e550
call method.sf.err__
mov r8d, 0x16
lea rdx, str.Failed_to_save_image__
mov rcx, rax
mov rsi, rax
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rdx, qword [rbx]
mov r8, qword [rbx + 8]
mov rcx, rsi
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov r8d, 1
lea rdx, [0x140163506]
mov rbx, rax
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rax, qword [rbx]
mov rax, qword [rax - 0x18]
mov rsi, qword [rbx + rax + 0xf0]
test rsi, rsi
je 0x14005ea25
cmp byte [rsi + 0x38], 0
je 0x14005e520
movsx edx, byte [rsi + 0x43]
mov rcx, rbx
call method.std::ostream.put_char_
mov rcx, rax
call method.std::ostream.flush__
xor eax, eax
add rsp, 0xb0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rcx, rsi
call method.std::ctype_char_._M_widen_init___const
mov rax, qword [rsi]
mov edx, 0xa
lea rcx, [method.std::ctype_char_.do_widen_char__const]
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x14005e4f4
mov rcx, rsi
call rax
movsx edx, al
jmp 0x14005e4f4
mov eax, dword [r9 + 4]
test eax, eax
je 0x14005e48e
mov r8, 0xffffffffffffffff
mov edx, 0x2e
mov rcx, rbx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.rfind_char__unsigned_long_long__const
cmp rax, 0xffffffffffffffff
je 0x14005e6c0
mov rbp, qword [rbx + 8]
add rax, 1
cmp rbp, rax
jb 0x14005ea2a
mov r12, qword [rbx]
lea r14, [rsp + 0x60]
sub rbp, rax
lea r13, [rsp + 0x50]
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x30], rbp
add r12, rax
cmp rbp, 0xf
ja 0x14005e6e0
cmp rbp, 1
jne 0x14005e690
movzx eax, byte [r12]
mov byte [rsp + 0x60], al
mov rax, r14
mov qword [rsp + 0x58], rbp
mov byte [rax + rbp], 0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
test rax, rax
je 0x14005e930
mov r12, qword [sym.imp.msvcrt.dll_tolower]
mov rbp, rcx
nop
movsx ecx, byte [rbp]
add rbp, 1
call r12
mov byte [rbp - 1], al
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
lea rdx, [rcx + rax]
cmp rdx, rbp
jne 0x14005e5f0
cmp rcx, r14
je 0x14005e708
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x40], rdx
mov ebp, dword [rdi]
mov r12d, dword [rdi + 4]
mov qword [rsp + 0x38], rax
cmp rax, 3
jne 0x14005e770
cmp word [rcx], 0x6d62
je 0x14005e850
cmp word [rcx], 0x6774
je 0x14005e8d0
cmp word [rcx], 0x6e70
je 0x14005e95b
cmp word [rcx], 0x706a
je 0x14005e9ff
lea rdx, [rsp + 0x40]
cmp rcx, rdx
je 0x14005e48e
mov rax, qword [rsp + 0x40]
lea rdx, [rax + 1]
call sym.operator_delete_void__unsigned_long_long_
jmp 0x14005e48e
test rbp, rbp
je 0x14005e5c5
mov rcx, r14
nop dword [rax]
mov r8, rbp
mov rdx, r12
call sym.memcpy
mov rbp, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
jmp 0x14005e5c8
lea rdx, [rsp + 0x40]
mov byte [rsp + 0x40], 0
mov qword [rsp + 0x30], rdx
mov rcx, rdx
mov qword [rsp + 0x38], 0
jmp 0x14005e66f
mov rcx, r13
lea rdx, [rsp + 0x30]
xor r8d, r8d
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_create_unsigned_long_long__unsigned_long_long_
mov qword [rsp + 0x50], rax
mov rcx, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x60], rax
jmp 0x14005e6a0
lea rdx, [rsp + 0x40]
lea r8, [rax + 1]
mov rcx, r14
mov qword [rsp + 0x30], rdx
mov r10, rdx
cmp r8d, 8
jae 0x14005e9d7
xor r9d, r9d
test r8b, 4
je 0x14005e73b
mov r9d, dword [rcx]
mov dword [r10], r9d
mov r9d, 4
test r8b, 2
je 0x14005e74f
movzx r11d, word [rcx + r9]
mov word [r10 + r9], r11w
add r9, 2
and r8d, 1
je 0x14005e75e
movzx ecx, byte [rcx + r9]
mov byte [r10 + r9], cl
mov rcx, rdx
jmp 0x14005e629
cmp rax, 4
jne 0x14005e66a
cmp dword [rcx], 0x6765706a
jne 0x14005e66a
mov ecx, 0xb
xor eax, eax
mov rdi, r13
mov r14, qword [rsi]
rep stosq qword [rdi], rax
mov rcx, qword [rbx]
lea rdx, [0x14016348f]
call sym.fopen
mov rsi, rax
lea rax, [sym.stbi__stdio_write_void__void__int_]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rsi
test rsi, rsi
je 0x14005e840
test r14, r14
je 0x14005e835
test ebp, ebp
je 0x14005e835
test r12d, r12d
je 0x14005e835
mov dword [rsp + 0x28], 0x5a
mov r8d, r12d
mov edx, ebp
mov rcx, r13
mov qword [rsp + 0x20], r14
mov r9d, 4
call sym.stbi_write_jpg_core_stbi__write_context__int__int__int__void_const__int___clone_part0_
mov rcx, rsi
mov edi, eax
call sym.fclose
mov rcx, qword [rsp + 0x30]
mov rax, rcx
test edi, edi
je 0x14005e66a
nop word [rax + rax]
lea rdx, [rsp + 0x40]
cmp rax, rdx
je 0x14005e82b
mov rdi, qword [rsp + 0x40]
mov rcx, rax
lea rdx, [rdi + 1]
call sym.operator_delete_void__unsigned_long_long_
mov eax, 1
jmp 0x14005e506
mov rcx, rsi
call sym.fclose
nop dword [rax]
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x40]
jmp 0x14005e66f
cmp byte [rcx + 2], 0x70
jne 0x14005e649
mov ecx, 0xb
xor eax, eax
mov rdi, r13
mov rsi, qword [rsi]
rep stosq qword [rdi], rax
mov rcx, qword [rbx]
lea rdx, [0x14016348f]
call sym.fopen
lea rdi, [sym.stbi__stdio_write_void__void__int_]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rdi
test rax, rax
je 0x14005e840
mov qword [rsp + 0x20], rsi
mov r9d, 4
mov r8d, r12d
mov edx, ebp
mov rcx, r13
call sym.stbi_write_bmp_core_stbi__write_context__int__int__int__void_const_
mov rcx, qword [rsp + 0x58]
mov esi, eax
call sym.fclose
mov rcx, qword [rsp + 0x30]
mov rax, rcx
test esi, esi
jne 0x14005e810
jmp 0x14005e66a
cmp byte [rcx + 2], 0x61
jne 0x14005e654
mov ecx, 0xb
xor eax, eax
mov rdi, r13
mov rsi, qword [rsi]
rep stosq qword [rdi], rax
mov rcx, qword [rbx]
lea rdx, [0x14016348f]
call sym.fopen
lea rdi, [sym.stbi__stdio_write_void__void__int_]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rdi
test rax, rax
je 0x14005e840
mov qword [rsp + 0x20], rsi
mov r9d, 4
mov r8d, r12d
mov edx, ebp
mov rcx, r13
call sym.stbi_write_tga_core_stbi__write_context__int__int__int__void_
jmp 0x14005e8a7
cmp rcx, r14
je 0x14005e708
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x30], rcx
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], rax
jmp 0x14005e66f
cmp byte [rcx + 2], 0x67
jne 0x14005e65f
mov r14, qword [rbx]
mov rcx, qword [rsi]
mov qword [rsp + 0x28], r13
mov r9d, r12d
mov dword [rsp + 0x20], 4
mov r8d, ebp
xor edx, edx
call sym.stbi_write_png_to_mem
mov rdi, rax
test rax, rax
je 0x14005e840
lea rdx, [0x14016348f]
mov rcx, r14
call sym.fopen
mov rsi, rax
test rax, rax
je 0x14005ea0e
movsxd r8, dword [rsp + 0x50]
mov r9, rax
mov edx, 1
mov rcx, rdi
call sym.fwrite
mov rcx, rsi
call sym.fclose
mov rcx, rdi
call sym.free
mov rax, qword [rsp + 0x30]
jmp 0x14005e810
mov r11d, r8d
xor ecx, ecx
and r11d, 0xfffffff8
mov r9d, ecx
add ecx, 8
mov r10, qword [r14 + r9]
mov qword [rdx + r9], r10
cmp ecx, r11d
jb 0x14005e9e0
lea r10, [rdx + rcx]
add rcx, r14
jmp 0x14005e726
cmp byte [rcx + 2], 0x67
jne 0x14005e66a
jmp 0x14005e786
mov rcx, rdi
call sym.free
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x40]
jmp 0x14005e66f
call method.std.__throw_bad_cast__
mov r9, rbp
mov r8, rax
lea rdx, [0x140163492]
lea rcx, [0x1401634a8]
call method.std.__throw_out_of_range_fmt_char_const__..._
mov rbx, rax
jmp sym._ZN2sf4priv11ImageLoader15saveImageToFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIhSaIhEERKNS_7Vecto