// File: /workspace/github_c_makefile_star2_O0/TurkeyMcMac[P]ts3d/src/loader.c
// Function: loader_free
void loader_free(struct loader *ldr)
{
	const char *key;
	void **val;
	d3d_free_texture(ldr->empty_txtr);
	TABLE_FOR_EACH(&ldr->txtrs, key, val) {
		free((char *)key);
		d3d_free_texture(*val);
	}
	table_free(&ldr->txtrs);
	free(ldr->txtrs_dir);
	TABLE_FOR_EACH(&ldr->ents, key, val) {
		free((char *)key);
		ent_type_free(*val);
	}
	table_free(&ldr->ents);
	free(ldr->ents_dir);
	TABLE_FOR_EACH(&ldr->maps, key, val) {
		free((char *)key);
		map_free(*val);
	}
	table_free(&ldr->maps);
	free(ldr->maps_dir);
	color_map_destroy(&ldr->colors);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0x3d00
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rcx
movq -0x8(%rbp), %rdx
xorl %eax, %eax
cmpq 0x8(%rdx), %rcx
movb %al, -0x31(%rbp)
jae 0x9e5d
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
addq $0x8, %rax
movq %rax, -0x18(%rbp)
movb $0x1, %al
movb %al, -0x31(%rbp)
movb -0x31(%rbp), %al
testb $0x1, %al
jne 0x9e66
jmp 0x9e89
movq -0x10(%rbp), %rdi
callq 0x2580
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0x3d00
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x9e10
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0xfce0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x2580
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rdx
xorl %eax, %eax
cmpq 0x28(%rdx), %rcx
movb %al, -0x32(%rbp)
jae 0x9ef8
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x28(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x28(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
addq $0x8, %rax
movq %rax, -0x18(%rbp)
movb $0x1, %al
movb %al, -0x32(%rbp)
movb -0x32(%rbp), %al
testb $0x1, %al
jne 0x9f01
jmp 0x9f24
movq -0x10(%rbp), %rdi
callq 0x2580
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0x5f90
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x9eab
movq -0x8(%rbp), %rdi
addq $0x28, %rdi
callq 0xfce0
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0x2580
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rcx
movq -0x8(%rbp), %rdx
xorl %eax, %eax
cmpq 0x48(%rdx), %rcx
movb %al, -0x33(%rbp)
jae 0x9f93
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x30(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x30(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
addq $0x8, %rax
movq %rax, -0x18(%rbp)
movb $0x1, %al
movb %al, -0x33(%rbp)
movb -0x33(%rbp), %al
testb $0x1, %al
jne 0x9f9c
jmp 0x9fbf
movq -0x10(%rbp), %rdi
callq 0x2580
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xc730
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x9f46
movq -0x8(%rbp), %rdi
addq $0x48, %rdi
callq 0xfce0
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rdi
callq 0x2580
movq -0x8(%rbp), %rdi
addq $0x68, %rdi
callq 0x100c0
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)