Function at 0x1400ca370
Capabilities:
Query environment variable
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push r13
push r14
push r15
mov eax, 0x32b0
call fcn.140105bf0
sub rsp, rax
mov rax, qword [0x14016a900]
xor rax, rsp
mov qword [rsp + 0x32a0], rax
mov r12b, cl
xor edi, edi
test dl, dl
je 0x1400ca4c4
cmp word [0x140183f2e], di
je 0x1400ca3ca
cmp qword [0x1401d14d8], rdi
je 0x1400ca3ca
mov word [0x140183f2e], di
mov r14d, 4
mov cl, byte [0x1401724a0]
test cl, cl
jne 0x1400ca532
cmp word [0x14018f49a], di
jne 0x1400ca532
mov r12b, dil
mov ebx, 0x800
mov r8d, ebx
lea rdx, [0x14018f49a]
mov ecx, dword [0x14018a430]
call fcn.1400d071c
mov dword [rsp + 0x20], ebx
lea r13, [0x14012ae60]
mov r9, r13
lea r8, [rsp + 0x12a0]
lea rdx, str.DefFolder
lea rcx, [0x14012b3c0]
call fcn.1400adec0
cmp word [rsp + 0x12a0], di
jne 0x1400ca45d
cmp byte [0x1401a1d2e], dil
je 0x1400ca49b
mov edx, ebx
lea rcx, [rsp + 0x12a0]
call fcn.140046850
cmp word [rsp + 0x12a0], di
je 0x1400ca49b
mov rdx, rbx
lea rcx, [rsp + 0x12a0]
call fcn.140085ac8
mov r8, rbx
lea rdx, [0x14018f49a]
lea rcx, [rsp + 0x12a0]
call fcn.14009cca0
mov r8, rbx
lea rdx, [rsp + 0x12a0]
lea rcx, [0x14018f49a]
call fcn.14009ccc8
cmp word [0x140181f28], di
setne r8b
mov r9d, dword [0x14018a430]
mov rdx, rbx
lea rcx, [0x14018f49a]
call fcn.1400d453c
mov cl, byte [0x1401724a0]
jmp 0x1400ca53e
mov cl, 1
call fcn.1400d0cb0
mov dword [0x140188080], 3
mov qword [0x140173508], rdi
mov cl, byte [0x1401724a0]
test cl, cl
jne 0x1400ca52c
xor r8d, r8d
lea rdx, [0x1401904a0]
lea rcx, [0x1401a0cb0]
call fcn.14004c40c
cmp byte [0x1401a1d2e], dil
je 0x1400ca3ca
mov eax, dword [0x14018807c]
mov r14d, 4
cmp qword [0x1401904d0], 1
cmova eax, r14d
mov dword [0x14018807c], eax
jmp 0x1400ca3d0
mov r14d, 4
lea r13, [0x14012ae60]
mov ebx, 0x800
mov eax, dword [0x14018807c]
mov edx, 2
test eax, eax
cmove eax, edx
mov dword [0x14018807c], eax
test cl, cl
je 0x1400ca6b5
mov r15d, dword [0x14019de44]
cmp r15d, 1
jbe 0x1400ca5a8
cmp dword [0x140188048], 3
je 0x1400caaf9
lea ecx, [rdx + 0x63]
call fcn.140096d58
mov rbx, rax
mov ecx, 0x1fd
call fcn.140096d58
mov r9d, 0x30
mov r8, rbx
mov rdx, rax
mov rcx, qword [0x140172470]
call fcn.1400d7004
jmp 0x1400caaf9
mov r8, rbx
lea rdx, [0x14018f49a]
lea rcx, [0x14019de40]
call fcn.140006578
mov r8, rbx
lea rdx, [0x140184f40]
lea rcx, [0x14019de40]
call fcn.140006c34
cmp word [0x140184f40], di
je 0x1400ca5ec
mov rdx, rbx
lea rcx, [0x140184f40]
call fcn.140085ac8
mov byte [0x1401880f1], dil
lea rdx, [rsp + 0x50]
lea rcx, [0x14019de40]
call fcn.140006c54
mov eax, dword [rsp + 0x198]
mov dword [0x14018a430], eax
mov qword [rsp + 0x1260], rdi
mov qword [rsp + 0x1268], rdi
mov qword [rsp + 0x1270], rdi
xor r8d, r8d
lea rdx, [rsp + 0x250]
lea rcx, [0x14018f49a]
call fcn.140077c30
test al, al
je 0x1400ca64f
cmp qword [rsp + 0x1250], 0x18
je 0x1400ca670
cmp dword [rsp + 0x198], edi
jne 0x1400ca669
cmp byte [rsp + 0xd0], dil
mov byte [0x1401880d8], 1
jne 0x1400ca670
mov byte [0x1401880d8], dil
test r15d, r15d
jne 0x1400ca67e
cmp dword [rsp + 0x220], edi
je 0x1400ca68c
movzx eax, byte [rsp + 0x192]
mov dword [0x14018806c], eax
cmp qword [rsp + 0x188], rdi
je 0x1400ca6ae
mov r8, rbx
lea rdx, [0x14012b2c0]
lea rcx, [0x140181f28]
call fcn.14009ccc8
jmp 0x1400ca6b5
mov word [0x140181f28], di
mov rcx, qword [0x140172470]
call qword [sym.imp.USER32.dll_IsWindowVisible]
neg eax
sbb rcx, rcx
and rcx, qword [0x140172470]
xor r8d, r8d
mov dl, r12b
call fcn.1400cd9e8
test al, al
je 0x1400caada
mov al, byte [0x1401d14f7]
neg al
sbb ecx, ecx
and ecx, dword [0x1401d14f8]
mov dword [0x14018805c], ecx
mov rcx, qword [0x1401d14d8]
test rcx, rcx
je 0x1400ca70a
call fcn.1400d4e48
jmp 0x1400ca72e
cmp byte [0x1401724a0], dil
je 0x1400ca72e
cmp qword [rsp + 0x188], rdi
je 0x1400ca72e
cmp word [0x140181f28], 0x2a
jne 0x1400ca72e
mov word [0x140181f28], di
cmp qword [0x1401904d0], rdi
jne 0x1400ca76b
mov ecx, 0x65
call fcn.140096d58
mov rbx, rax
mov ecx, 0x14b
call fcn.140096d58
mov r9d, 0x30
mov r8, rbx
mov rdx, rax
mov rcx, qword [0x140172470]
call fcn.1400d7004
jmp 0x1400caada
cmp word [0x140183f2e], di
je 0x1400ca81e
cmp dword [0x140184f30], edi
jne 0x1400ca81e
lea rdx, [0x14012ece0]
lea rcx, [0x140183f2e]
call fcn.140077628
mov r12, rax
test rax, rax
je 0x1400ca81e
mov r9, rax
mov edx, 1
mov r8d, 0x400
lea rcx, [rsp + 0x12a0]
call fcn.140115d98
mov r15, rax
mov rcx, r12
call fcn.140111fa8
mov eax, 0x3ff
cmp r15, rax
cmovb rax, r15
cmp rax, 0x400
jae 0x1400cab27
mov byte [rsp + rax + 0x12a0], dil
mov dword [rsp + 0x40], 0x30c
test r15, r15
je 0x1400ca8e8
lea r8, [rsp + 0x40]
mov edx, r15d
lea rcx, [rsp + 0x12a0]
call qword [sym.imp.ADVAPI32.dll_IsTextUnicode]
test eax, eax
je 0x1400ca8e8
mov dword [0x140184f30], 3
lea rcx, [rsp + 0x12a0]
call fcn.14009ccfc
nop
lea rcx, [0x1401904a0]
call fcn.14009cf30
mov r15d, 0x25
lea rcx, [0x1401904a0]
call fcn.14009cda0
mov r14, rax
test rax, rax
je 0x1400ca99f
mov r9, rbx
lea r8, [rsp + 0x22a0]
mov rdx, rax
lea rcx, [0x1401a0cb0]
call fcn.14004ca74
cmp word [r14], 0x40
jne 0x1400ca91e
lea rcx, [rsp + 0x22a0]
call fcn.140076738
test al, al
jne 0x1400ca91e
lea rdx, [r14 + 2]
mov r9, rbx
lea r8, [rsp + 0x22a0]
lea rcx, [0x1401a0cb0]
call fcn.14004ca74
mov byte [rsp + 0x38], 1
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], 1
mov eax, dword [0x140184f34]
mov dword [rsp + 0x20], eax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x12a0]
lea rcx, [rsp + 0x22a0]
call fcn.1400776e0
test al, al
je 0x1400ca91e
jmp 0x1400ca83e
lea rcx, [rsp + 0x12a0]
call fcn.14009c4d0
cmp eax, 2
jne 0x1400ca906
mov dword [0x140184f30], r14d
jmp 0x1400ca81e
cmp eax, 1
jne 0x1400ca81e
mov dword [0x140184f30], 2
jmp 0x1400ca81e
mov edx, r15d
mov rcx, r14
call fcn.140106f38
test rax, rax
je 0x1400ca985
mov edx, r15d
lea rcx, [rax + 2]
call fcn.140106f38
test rax, rax
je 0x1400ca985
lea rcx, [rsp + 0x22a0]
call fcn.140076738
test al, al
jne 0x1400ca985
mov r8d, ebx
lea rdx, [rsp + 0x250]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
dec eax
cmp eax, 0x7ff
ja 0x1400ca985
mov r8, rbx
lea rdx, [rsp + 0x250]
lea rcx, [rsp + 0x22a0]
call fcn.14009ccc8
lea rdx, [rsp + 0x22a0]
lea rcx, [rsp + 0x12a0]
call fcn.14009cd2c
jmp 0x1400ca8e3
lea rdx, [rsp + 0x12a0]
lea rcx, [0x1401904a0]
call fcn.1400ca30c
nop
lea rcx, [rsp + 0x12a0]
call fcn.140004d3c
nop
jmp 0x1400ca9d2
mov r9, rbx
lea r8, [0x14018f49a]
lea rdx, [0x14018f49a]
lea rcx, [0x1401a0cb0]
call fcn.14004ca74
mov al, byte [0x140187040]
mov byte [0x1401a08a0], al
lea rcx, [0x1401a0870]
call fcn.1400b695c
cmp byte [0x14018e468], dil
je 0x1400caa17
call fcn.1400cb3dc
jmp 0x1400caa29
mov dl, byte [0x14018d443]
lea rcx, [0x14019de40]
call fcn.140005168
cmp qword [0x1401d14d8], rdi
je 0x1400caa3e
lea rcx, [0x140183f2e]
call fcn.140076460
cmp dword [0x1401724a4], 1
je 0x1400caada
cmp byte [0x1401724a0], dil
je 0x1400caa62
lea rcx, [0x1401a0cb0]
call fcn.140050570
jmp 0x1400caada
cmp byte [0x1401880d6], dil
je 0x1400caa77
lea rcx, [0x140180ee0]
call fcn.1400bce18
mov r8, rbx
lea rdx, [rsp + 0x22a0]
lea rcx, [0x1401a0cb0]
call fcn.14004c388
lea rax, [rsp + 0x22a0]
or r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], di
jne 0x1400caa9a
lea rdx, [0x14018f49a]
lea rcx, [rsp + 0x22a0]
call fcn.14009fe38
test eax, eax
jne 0x1400caacb
lea rcx, [0x14018f49a]
call fcn.1400876ec
mov r13, rax
mov rdx, r13
lea rcx, [0x1401a0cb0]
call fcn.14004f9d4
mov rcx, qword [0x1401d14d8]
call fcn.1401058a8
mov byte [0x1401a08a0], dil
lea rcx, [0x1401a0870]
call fcn.1400b695c
mov rcx, qword [rsp + 0x32a0]
xor rcx, rsp
call fcn.140105c50
lea r11, [rsp + 0x32b0]
mov rbx, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret
call fcn.1401059c4
int3