Function at 0x140036090
Capabilities:
Set current directory

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
sub rsp, 0x30
cmp qword [0x140141f38], 0
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
mov byte [rcx + 0x288], 1
mov word [rcx + 0xbd8], 0
lea r14, [0x1401035ac]
jne 0x1400360d7
call fcn.1400dd320
mov qword [0x140141f38], rax
test rax, rax
je 0x140036136
mov rdx, qword [0x140141f40]
cmp qword [rdx + 0x10], 0x28
jae 0x1400360fa
call fcn.1400dd320
mov rdx, qword [0x140141f40]
mov qword [rdx + 0x18], rax
test rax, rax
je 0x140036136
mov rcx, qword [rdx + 8]
add qword [rdx + 0x10], 0xffffffffffffffd8
lea rax, [rcx + 0x28]
mov qword [0x140141f48], rcx
mov qword [rdx + 8], rax
test rcx, rcx
je 0x140036136
xor r12d, r12d
lea rax, vtable.Label.0
mov qword [rcx + 8], r14
mov qword [rcx], rax
mov qword [rcx + 0x10], r12
mov qword [rcx + 0x18], r12
mov qword [rcx + 0x20], r12
jmp 0x14003613c
xor r12d, r12d
mov ecx, r12d
mov qword [rbx + 0x6d0], rcx
test rcx, rcx
jne 0x140036157
or eax, 0xffffffff
add rsp, 0x30
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.140036f40
cmp eax, 1
jne 0x140036148
xor r9d, r9d
xor r8d, r8d
mov dl, 0x68
mov rcx, rbx
mov qword [rsp + 0x20], r12
call fcn.1400430e0
test eax, eax
je 0x140036148
mov rdx, qword [rbx + 0x658]
mov rcx, rbx
call fcn.14004e300
test eax, eax
je 0x140036148
mov rdx, qword [rbx + 0x658]
mov rcx, rbx
call fcn.14004e430
cmp qword [rbx + 0x668], 0
je 0x1400361e1
mov rax, qword [rbx + 0x658]
mov rcx, qword [rbx + 0x670]
mov qword [rcx + 0x20], rax
mov rcx, qword [rbx + 0x658]
mov rax, qword [rbx + 0x670]
mov qword [rcx + 0x18], rax
mov rax, qword [rbx + 0x668]
mov qword [rbx + 0x658], rax
cmp dword [rbx + 0x690], 0
mov qword [rsp + 0x68], rbp
mov esi, r12d
jle 0x14003627b
mov rbp, r12
nop dword [rax]
mov rax, qword [rbx + 0x688]
mov rdi, qword [rax + rbp]
cmp byte [rdi + 0x79], 0
jne 0x14003626d
test byte [rdi + 0x78], 4
jne 0x14003626d
cmp byte [rdi + 0x7b], 0
jne 0x14003626d
mov r8, qword [rdi + 0x38]
lea r9, [rdi + 0x5c]
mov rdx, rdi
mov rcx, rbx
mov byte [rdi + 0x7b], 1
call fcn.140060480
mov r8, qword [rdi + 0x48]
lea r9, [rdi + 0x68]
mov rdx, rdi
mov rcx, rbx
call fcn.140060480
mov r8, qword [rdi + 0x40]
lea r9, [rdi + 0x64]
mov rdx, rdi
mov rcx, rbx
call fcn.140060480
mov r8, qword [rdi + 0x50]
lea r9, [rdi + 0x70]
mov rdx, rdi
mov rcx, rbx
call fcn.140060480
inc esi
add rbp, 8
cmp esi, dword [rbx + 0x690]
jl 0x140036200
cmp qword [rbx + 0x268], 0
je 0x1400362a9
mov rcx, rbx
call fcn.140049840
test eax, eax
je 0x140036674
mov rcx, qword [rbx + 0x268]
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov qword [rbx + 0x268], r12
cmp dword [0x14013f870], 0
je 0x1400362ba
mov rcx, rbx
call fcn.140060580
mov rcx, qword [rbx + 0xbe0]
test rcx, rcx
je 0x1400362e3
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov rbp, qword [rsp + 0x68]
xor eax, eax
add rsp, 0x30
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rcx, qword [0x140140478]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
inc dword [rbx + 0x284]
xor r9d, r9d
xor r8d, r8d
mov dl, 0x68
mov rcx, rbx
mov qword [rsp + 0x20], r12
call fcn.1400430e0
test eax, eax
je 0x140036674
xor r9d, r9d
xor r8d, r8d
mov dl, 0x68
mov rcx, rbx
mov qword [rsp + 0x20], r12
call fcn.1400430e0
test eax, eax
je 0x140036674
mov rcx, qword [rbx + 0x6d0]
mov rax, qword [rbx + 0x660]
xor r9d, r9d
mov qword [rcx + 0x10], rax
mov rdx, qword [rbx + 0x658]
xor r8d, r8d
mov rcx, rbx
mov qword [rsp + 0x20], r12
call fcn.14004e4c0
test rax, rax
je 0x140036674
mov rdx, qword [rbx + 0x658]
mov rcx, rbx
call fcn.14004e870
test rax, rax
je 0x140036674
lea rdx, str.ErrorLevel
mov r9d, 3
xor r8d, r8d
mov rcx, rbx
call fcn.14004d300
mov rbx, rax
mov qword [0x140140268], rax
test rax, rax
je 0x140036674
movzx eax, byte [rax + 0x23]
mov qword [rsp + 0x70], r13
test al, al
jne 0x1400363d6
mov rcx, qword [rbx + 0x10]
lea rdx, [0x140103674]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
jmp 0x14003660b
lea r13, [0x140103674]
cmp qword [rbx + 8], r13
jne 0x1400363ec
mov rbp, qword [rbx + 0x10]
shr rbp, 1
jmp 0x1400363f1
mov ebp, 1
lea rcx, [rbp + 1]
lea rsi, [rcx + rcx]
cmp al, 2
jne 0x14003640d
mov rdx, rbp
mov rcx, r13
call fcn.140006bc0
jmp 0x14003660b
mov r9, qword [0x14013b0d0]
cmp rsi, r9
jbe 0x14003643a
cmp rsi, qword [rbx + 0x18]
jbe 0x14003643a
lea rdx, [0x140124720]
lea rcx, [0x140143150]
mov r8, r14
call fcn.14005f7b0
jmp 0x14003660b
cmp rcx, 2
jae 0x140036454
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 3]
call fcn.1400e74d0
jmp 0x14003660b
movzx eax, byte [rbx + 0x21]
test al, 2
je 0x140036471
mov rcx, qword [rbx]
and al, 0x3d
mov byte [rbx + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov r9, qword [0x14013b0d0]
mov rcx, qword [rbx + 0x18]
and byte [rbx + 0x21], 0x82
cmp rsi, rcx
jbe 0x1400365e2
movzx r8d, byte [rbx + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x1400364a4
cmp al, 2
je 0x1400364e1
mov rdi, qword [rsp + 0x60]
mov rax, qword [rsp + 0x60]
jmp 0x1400365d6
mov edi, 0x80
cmp rsi, rdi
ja 0x1400364e1
cmp rsi, 8
ja 0x1400364bb
mov edi, 8
jmp 0x1400364c7
mov eax, reloc.WSOCK32.dll_recv
cmp rsi, rax
cmovbe rdi, rax
mov rcx, rdi
call fcn.1400dd290
test rax, rax
je 0x14003660b
mov byte [rbx + 0x20], 1
jmp 0x1400365d6
cmp rsi, 0x20
jae 0x1400364f1
mov edi, SafeArrayAllocDescriptor
jmp 0x14003659b
mov edi, 0x208
cmp rsi, rdi
jb 0x14003659b
cmp rsi, 0x50000
jae 0x140036557
pxor xmm0, xmm0
cvtsi2sd xmm0, rsi
test rsi, rsi
jns 0x14003651e
addsd xmm0, qword [0x1401279a8]
mulsd xmm0, qword [0x1401279e0]
movsd xmm1, qword [0x1401279d8]
xor eax, eax
comisd xmm0, xmm1
jbe 0x14003654d
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x14003654d
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14003659b
cmp rsi, 0x320000
jae 0x140036569
lea rdi, [rsi + 0x8000]
jmp 0x14003659b
cmp rsi, 0xc80000
jae 0x140036594
movabs rax, 0x47ae147ae147ae15
mov rdi, rsi
mul rsi
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rsi
jmp 0x14003659b
lea rdi, [rsi + 0x20000]
cmp rdi, r9
cmova rdi, r9
cmp r8b, 2
jne 0x1400365bc
test rcx, rcx
je 0x1400365bc
mov rcx, qword [rbx + 8]
mov sil, 1
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x1400365bf
xor sil, sil
test rdi, rdi
js 0x14003663a
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x14003663a
mov byte [rbx + 0x20], 2
and byte [rbx + 0x21], 0x7f
mov qword [rbx + 8], rax
mov qword [rbx + 0x18], rdi
mov rcx, qword [rbx + 8]
cmp rcx, r13
je 0x1400365f9
lea r8, [rbp + rbp]
mov rdx, r13
call qword [sym.imp.MSVCR100.dll_memmove]
mov rax, qword [rbx + 8]
lea rcx, [rbp + rbp]
mov word [rcx + rax], r12w
mov qword [rbx + 0x10], rcx
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov ecx, dword [rsp + 0x60]
call fcn.14002f2f0
mov r13, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov eax, 1
add rsp, 0x30
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret
test sil, sil
je 0x140036650
lea rax, [0x140141fa8]
mov qword [rbx + 0x18], r12
mov qword [rbx + 8], rax
jmp 0x140036658
mov rax, qword [rbx + 8]
mov word [rax], r12w
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov r8, r14
mov qword [rbx + 0x10], r12
call fcn.14005f7b0
jmp 0x14003660b
or eax, 0xffffffff
mov rbp, qword [rsp + 0x68]
add rsp, 0x30
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret