Function at 0x140002550
Capabilities:
Create thread

Disassembly:
push rbp
push r14
push r15
lea rbp, [rsp - 0x47]
sub rsp, 0xa0
mov rax, qword [0x1400411c8]
xor rax, rsp
mov qword [rbp + 0x37], rax
xor r15d, r15d
mov qword [rbp + 0xf], 0xf
lea rdx, str.kitchen
mov qword [rbp + 7], r15
lea rcx, [rbp - 9]
mov byte [rbp - 9], r15b
lea r8d, [r15 + 7]
call fcn.140002c40
xor ecx, ecx
mov r14b, 1
call fcn.140007380
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xc8], rsi
mov qword [rsp + 0xd0], rdi
nop dword [rax]
or r9, 0xffffffffffffffff
mov qword [rbp - 0x11], 0xf
xor r8d, r8d
mov qword [rbp - 0x19], r15
lea rdx, [rbp - 9]
mov byte [rbp - 0x29], r15b
lea rcx, [rbp - 0x29]
call fcn.140002d70
lea rcx, [rbp - 0x29]
call fcn.140002390
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
call fcn.140016a80
lea rcx, [rbp + 0x17]
call fcn.1400022b0
test r14b, r14b
jne 0x140002670
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rax, qword [rbp + 0x2f]
cmp rax, 0x10
jb 0x1400025c0
mov rcx, qword [rbp + 0x17]
inc rax
cmp rax, 0xffffffffffffffff
ja 0x140002aae
cmp rax, 0x1000
jb 0x140002666
test cl, 0x1f
jne 0x140002aa8
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140002aa2
sub rcx, rax
cmp rcx, 8
jb 0x140002a9c
cmp rcx, 0x27
ja 0x140002a96
mov rcx, rax
call fcn.140012b14
jmp 0x1400025c0
call fcn.140016a54
mov r8d, eax
mov eax, 0x55555555
imul r8d
sub edx, r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [r8 + rdx]
lea eax, [rcx + rdx*2]
test eax, eax
jne 0x1400026d5
lea rdx, str.Goodbye_
lea rcx, [0x140082500]
call fcn.140003730
mov rcx, rax
call fcn.140003bd0
xor r9d, r9d
mov qword [rsp + 0x28], r15
lea r8, [fcn.140007380]
mov dword [rsp + 0x20], r15d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
jmp 0x140002942
cmp eax, 1
jne 0x140002811
mov rbx, qword [rbp + 7]
lea rcx, [rbp - 9]
mov rsi, qword [rbp + 0xf]
mov r8d, 7
mov rdi, qword [rbp - 9]
cmp rsi, 0x10
cmovae rcx, rdi
cmp rbx, r8
cmovb r8, rbx
test r8, r8
jne 0x14000270d
mov eax, r15d
jmp 0x140002719
lea rdx, str.kitchen
call fcn.140015ad0
cdqe
test rax, rax
jne 0x14000272c
cmp rbx, 7
jb 0x14000273c
mov eax, r15d
setne al
test eax, eax
jne 0x14000273c
lea rdx, str.bedroom
jmp 0x1400027f6
cmp rsi, 0x10
lea rcx, [rbp - 9]
mov r8d, 7
cmovae rcx, rdi
cmp rbx, r8
cmovb r8, rbx
test r8, r8
jne 0x14000275f
mov eax, r15d
jmp 0x14000276b
lea rdx, str.bedroom
call fcn.140015ad0
cdqe
test rax, rax
jne 0x14000277e
cmp rbx, 7
jb 0x1400027a9
mov eax, r15d
setne al
test eax, eax
jne 0x1400027a9
lea rdx, str.There_is_no_exit_to_the_north.
lea rcx, [0x140082500]
call fcn.140003730
mov rcx, rax
call fcn.140003bd0
lea r8, [fcn.140007380]
jmp 0x140002949
cmp rsi, 0x10
lea rcx, [rbp - 9]
mov r8d, 8
cmovae rcx, rdi
cmp rbx, r8
cmovb r8, rbx
test r8, r8
jne 0x1400027cc
mov eax, r15d
jmp 0x1400027d8
lea rdx, str.bathroom
call fcn.140015ad0
cdqe
test rax, rax
jne 0x1400027eb
cmp rbx, 8
jb 0x140002805
mov eax, r15d
setne al
test eax, eax
jne 0x140002805
lea rdx, str.kitchen
mov r8d, 7
lea rcx, [rbp - 9]
call fcn.140002c40
lea r8, [fcn.140007380]
jmp 0x140002949
cmp eax, 2
jne 0x140002986
mov rbx, qword [rbp + 7]
lea rcx, [rbp - 9]
mov rsi, qword [rbp + 0xf]
mov r8d, 7
mov rdi, qword [rbp - 9]
cmp rsi, 0x10
cmovae rcx, rdi
cmp rbx, r8
cmovb r8, rbx
test r8, r8
jne 0x140002849
mov eax, r15d
jmp 0x140002855
lea rdx, str.kitchen
call fcn.140015ad0
cdqe
test rax, rax
jne 0x140002868
cmp rbx, 7
jb 0x140002885
mov eax, r15d
setne al
test eax, eax
jne 0x140002885
lea r8d, [rax + 8]
lea rdx, str.bathroom
lea rcx, [rbp - 9]
call fcn.140002c40
jmp 0x140002942
cmp rsi, 0x10
lea rcx, [rbp - 9]
mov r8d, 7
cmovae rcx, rdi
cmp rbx, r8
cmovb r8, rbx
test r8, r8
jne 0x1400028a8
mov eax, r15d
jmp 0x1400028b4
lea rdx, str.bedroom
call fcn.140015ad0
cdqe
test rax, rax
jne 0x1400028c7
cmp rbx, 7
jb 0x1400028e1
mov eax, r15d
setne al
test eax, eax
jne 0x1400028e1
lea r8d, [rax + 7]
lea rdx, str.kitchen
lea rcx, [rbp - 9]
call fcn.140002c40
jmp 0x140002942
cmp rsi, 0x10
lea rcx, [rbp - 9]
mov r8d, 8
cmovae rcx, rdi
cmp rbx, r8
cmovb r8, rbx
test r8, r8
jne 0x140002904
mov eax, r15d
jmp 0x140002910
lea rdx, str.bathroom
call fcn.140015ad0
cdqe
test rax, rax
jne 0x140002923
cmp rbx, 8
jb 0x140002942
mov eax, r15d
setne al
test eax, eax
jne 0x140002942
lea rdx, str.There_is_no_exit_to_the_south.
lea rcx, [0x140082500]
call fcn.140003730
mov rcx, rax
call fcn.140003bd0
lea r8, [0x140004580]
mov qword [rsp + 0x28], r15
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x20], r15d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
xor r9d, r9d
mov qword [rsp + 0x28], r15
lea r8, [0x14000b760]
mov dword [rsp + 0x20], r15d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
xor r14b, r14b
jmp 0x140002a49
mov rbx, qword [rbp + 0x27]
lea rcx, [rbp + 0x17]
mov rsi, qword [rbp + 0x2f]
mov r8d, 4
mov rdi, qword [rbp + 0x17]
cmp rsi, 0x10
cmovae rcx, rdi
cmp rbx, r8
cmovb r8, rbx
test r8, r8
jne 0x1400029b5
mov eax, r15d
jmp 0x1400029c1
lea rdx, str.west
call fcn.140015ad0
cdqe
test rax, rax
jne 0x1400029d4
cmp rbx, 4
jb 0x1400029e1
mov eax, r15d
setne al
test eax, eax
jne 0x1400029e1
lea rdx, str.There_is_no_exit_to_the_west.
jmp 0x140002a35
cmp rsi, 0x10
lea rcx, [rbp + 0x17]
mov r8d, 4
cmovae rcx, rdi
cmp rbx, r8
cmovb r8, rbx
test r8, r8
jne 0x140002a04
mov eax, r15d
jmp 0x140002a10
lea rdx, str.east
call fcn.140015ad0
cdqe
test rax, rax
jne 0x140002a23
cmp rbx, 4
jb 0x140002a2e
mov eax, r15d
setne al
lea rdx, str.There_is_no_exit_to_the_east.
test eax, eax
je 0x140002a35
lea rdx, str.Invalid_command.
lea rcx, [0x140082500]
call fcn.140003730
mov rcx, rax
call fcn.140003bd0
mov rax, qword [rbp + 0x2f]
cmp rax, 0x10
jb 0x1400025c0
mov rcx, qword [rbp + 0x17]
inc rax
cmp rax, 0xffffffffffffffff
ja 0x140002acc
cmp rax, 0x1000
jb 0x140002a8c
test cl, 0x1f
jne 0x140002ac6
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140002ac0
sub rcx, rax
cmp rcx, 8
jb 0x140002aba
cmp rcx, 0x27
ja 0x140002ab4
mov rcx, rax
call fcn.140012b14
jmp 0x1400025c0
call fcn.140016ccc
int3
call fcn.140016ccc
int3
call fcn.140016ccc
int3
call fcn.140016ccc
int3
call fcn.140016ccc
int3
call fcn.140016ccc
int3
call fcn.140016ccc
int3
call fcn.140016ccc
int3
call fcn.140016ccc
int3
call fcn.140016ccc
int3