Function at 0x140001af5
Capabilities:
Get common file path
Identify system language via api
Query environment variable

Disassembly:
jmp 0x140079be0
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0xe18
mov rdi, rdx
mov rax, qword [0x14016fb98]
mov r13, r9
xor rax, rsp
mov rbp, r8
mov qword [rsp + 0xe08], rax
mov rsi, rcx
mov ebx, 1
xor r15b, r15b
cmp qword [rdi], 3
je 0x14007b9b9
mov r8d, dword [rsi + 0x1d0]
cmp r8d, 0xfffffffc
je 0x14007b93a
cmp r8d, 0xfffffffd
je 0x140079c74
cmp r8d, 0xfffffffe
jne 0x140079c5c
test byte [rsi + 0x281], 4
je 0x140079fde
test byte [rsi + 0x278], 1
jne 0x140079fde
jmp 0x140079c95
cmp r8d, 0xffffffff
jne 0x140079c9b
test byte [rsi + 0x281], 4
je 0x140079f25
jmp 0x14007ba02
mov al, byte [rsi + 0x281]
test al, 4
je 0x14007a097
test byte [rsi + 0x278], 1
jne 0x14007a097
jne 0x140079fde
jne 0x140079f25
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x140079ce9
mov r14d, 0x104
cmp dword [rdi + 0x10], 0x104
lea r12, [rsp + 0xba0]
cmovl r14d, dword [rdi + 0x10]
mov rcx, r12
movsxd r8, r14d
mov qword [rsp + 0x30], r8
call fcn.140003d46
mov r8, qword [rsp + 0x30]
mov byte [rsp + r8 + 0xba0], 0
mov r8b, byte [rsp + 0xba0]
jmp 0x14007a148
cmp qword [0x14016fbe0], 0
je 0x14007af9e
mov rax, qword [0x14016fcc0]
lea rdx, str.FORT_d
lea rcx, [rsp + 0xba0]
call rax
mov r8d, 0x105
lea rcx, [rsp + 0xba0]
lea rdx, [rsp + 0xa90]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov eax, eax
test rax, rax
jbe 0x140079d4c
cmp rax, 0x105
jae 0x140079d3f
inc rax
jmp 0x140079d54
mov byte [rsp + 0xa90], 0
xor r8b, r8b
jmp 0x140079d61
mov byte [rsp + 0xa90], 0
test rax, rax
je 0x140079d74
mov r8b, byte [rsp + 0xa90]
mov r14d, eax
lea r12, [rsp + 0xa90]
dec r14d
jmp 0x14007a148
mov r8d, dword [rsi + 0x1d0]
add r8d, 4
cmp r8d, 0xa
ja 0x140079d9f
lea r9, [0x140000000]
movzx eax, word [r9 + r8*2 + 0x14dee4]
lea rax, [r9 + rax + 0x79d9f]
jmp rax
test byte [rsi + 0x281], 4
jne 0x140079e7c
test byte [rsi + 0x279], 0x20
je 0x140079e09
mov r12, qword [rsi + 0xc8]
mov rdx, r12
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x140079de7
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
mov r14d, eax
cmp qword [rdi], 0
je 0x140079e00
mov qword [rdi], 0
mov r8b, byte [r12]
jmp 0x14007a148
mov r8b, byte [r12]
jmp 0x14007a148
cmp qword [0x14016fbe0], 0
je 0x14007af94
mov rax, qword [0x14016fcc0]
lea rdx, str.fort._d
lea rcx, [rsp + 0xba0]
mov r8d, dword [rsi + 0x1d0]
call rax
lea rdx, [rsp + 0xba0]
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x140079e66
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
mov r14d, eax
lea r12, [rsp + 0xba0]
mov r8, r12
mov r8b, byte [r8]
jmp 0x14007a148
mov byte [rsp + 0xba0], 0
lea r12, [rsp + 0xba0]
xor r14d, r14d
jmp 0x14007a1d6
lea rcx, str.FOR_PRINT
lea rdx, [rsp + 0xa90]
mov r8d, 0x105
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov eax, eax
test rax, rax
jbe 0x140079f61
cmp rax, 0x105
jae 0x140079f54
inc rax
jmp 0x140079f69
mov byte [rsp + 0xa90], 0
xor r8b, r8b
jmp 0x140079f76
mov byte [rsp + 0xa90], 0
test rax, rax
je 0x140079f89
mov r8b, byte [rsp + 0xa90]
mov r14d, eax
lea r12, [rsp + 0xa90]
dec r14d
jmp 0x14007a148
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
lea r12, [0x14014c630]
mov rdx, r12
mov qword [rsi + 0x198], rax
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x140079fcd
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
mov r8b, byte [0x14014c630]
mov r14d, eax
xor ebx, ebx
jmp 0x14007a148
lea rcx, str.FOR_TYPE
lea rdx, [rsp + 0xa90]
mov r8d, 0x105
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov eax, eax
test rax, rax
jbe 0x14007a01a
cmp rax, 0x105
jae 0x14007a00d
inc rax
jmp 0x14007a022
mov byte [rsp + 0xa90], 0
xor r8b, r8b
jmp 0x14007a02f
mov byte [rsp + 0xa90], 0
test rax, rax
je 0x14007a042
mov r8b, byte [rsp + 0xa90]
mov r14d, eax
lea r12, [rsp + 0xa90]
dec r14d
jmp 0x14007a148
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
lea r12, [0x14014c630]
mov rdx, r12
mov qword [rsi + 0x198], rax
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x14007a086
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
mov r8b, byte [0x14014c630]
mov r14d, eax
xor ebx, ebx
jmp 0x14007a148
lea rcx, str.FOR_ACCEPT
lea rdx, [rsp + 0xa90]
mov r8d, 0x105
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov eax, eax
test rax, rax
jbe 0x14007a0d3
cmp rax, 0x105
jae 0x14007a0c6
inc rax
jmp 0x14007a0db
mov byte [rsp + 0xa90], 0
xor r8b, r8b
jmp 0x14007a0e8
mov byte [rsp + 0xa90], 0
test rax, rax
je 0x14007a0f8
mov r8b, byte [rsp + 0xa90]
mov r14d, eax
lea r12, [rsp + 0xa90]
dec r14d
jmp 0x14007a148
mov ecx, 0xfffffff6
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
lea r12, str.CONIN_
mov rdx, r12
mov qword [rsi + 0x198], rax
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x14007a13c
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
mov r8b, byte [str.CONIN_]
mov r14d, eax
xor ebx, ebx
cmp r8b, 0x20
je 0x14007a176
movsxd rax, r14d
test r14d, r14d
jle 0x14007a1c3
movsx r8d, byte [rax + r12 - 1]
test r8d, 0xffffffdf
jne 0x14007ae5b
dec r14d
dec rax
test r14d, r14d
jg 0x14007a156
jmp 0x14007a1c3
test r14d, r14d
jle 0x14007a1c3
inc r12
dec r14d
cmp byte [r12], 0x20
jne 0x14007a14e
test r14d, r14d
jle 0x14007a1c3
inc r12
dec r14d
cmp byte [r12], 0x20
jne 0x14007a14e
test r14d, r14d
jle 0x14007a1c3
inc r12
dec r14d
cmp byte [r12], 0x20
jne 0x14007a14e
test r14d, r14d
jle 0x14007a1c3
inc r12
dec r14d
cmp byte [r12], 0x20
jne 0x14007a14e
test r14d, r14d
jg 0x14007a1b1
jne 0x14007ae5b
test byte [rsi + 0x281], 4
je 0x14007ae5b
mov r8d, dword [0x14016fb94]
cmp r8d, dword [0x1401919ac]
jge 0x14007a2b8
movsxd r8, r8d
mov rax, qword [0x1401919c0]
mov r9, qword [rax + r8*8]
mov rdx, r9
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x14007a223
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
movsxd r8, eax
mov rcx, r12
mov rdx, r9
mov r14d, eax
mov qword [rsp + 0x30], r8
call fcn.140003d46
mov eax, dword [0x14016fb94]
lea rdx, [0x14016fb94]
inc eax
mov r8, qword [rsp + 0x30]
mov dword [0x14016fb94], eax
mov byte [r8 + r12], 0
xchg dword [rdx], eax
cmp byte [r12], 0x20
je 0x14007a289
movsxd rax, r14d
test r14d, r14d
jle 0x14007a2b2
movsx r8d, byte [rax + r12 - 1]
test r8d, 0xffffffdf
jne 0x14007ae51
dec r14d
dec rax
test r14d, r14d
jg 0x14007a269
jmp 0x14007a2b2
test r14d, r14d
jle 0x14007a2b2
inc r12
dec r14d
cmp byte [r12], 0x20
jne 0x14007a261
test r14d, r14d
jle 0x14007a2b2
inc r12
dec r14d
cmp byte [r12], 0x20
jne 0x14007a261
test r14d, r14d
jg 0x14007a2a0
jne 0x14007ae51
cmp dword [0x140191994], 0
je 0x14007a37e
cmp qword [0x14016fbe0], 0
je 0x14007afb6
mov rax, qword [0x14016fcc0]
lea rdx, str._s_d
lea rcx, [rsp + 0xdb5]
lea r8, str.Open:_Select_File_for_Unit
mov r9d, dword [rsi + 0x1d0]
call rax
mov rcx, r12
mov edx, 0x104
lea r8, [rsp + 0xdb5]
call fcn.1400036f2
test eax, eax
je 0x14007a34c
cmp byte [r12], 0
je 0x14007a34c
mov rdx, r12
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x14007a344
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
mov r14d, eax
jmp 0x14007ae51
lea rcx, str.A_File_Must_be_Selected_r_rTerminate_Program_
lea rdx, str.File_Open_Error
mov r8d, 0x2134
call fcn.140003c4c
cmp eax, 6
jne 0x14007a2f9
mov ecx, 1
call fcn.140004089
mov ecx, 1
call fcn.1400024af
cmp qword [0x14016fbe0], 0
je 0x14007b2ad
mov r8, qword [0x14016fcc0]
mov qword [rsp + 0x30], r8
mov ecx, 0x20b
xor edx, edx
call fcn.1400011fe
lea rdx, str._s_r_n
lea rcx, [rsp + 0x990]
mov r8, rax
call qword [rsp + 0x30]
cmp qword [0x14016fbe0], 0
je 0x14007b2a3
mov r8, qword [0x14016fcc0]
mov qword [rsp + 0x38], r8
lea rdx, [rsp + 0x990]
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x14007a404
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
mov ecx, 0x20c
mov edx, 1
mov r8d, dword [rsi + 0x1d0]
mov qword [rsp + 0x30], rax
call fcn.1400011fe
mov r9, qword [rsp + 0x30]
lea rdx, [0x140145ad4]
mov r8, rax
lea rcx, [rsp + r9 + 0x990]
call qword [rsp + 0x38]
lea rdx, [rsp + 0x990]
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x14007a46a
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
mov qword [rsp + 0x240], rax
cmp dword [rsi + 0x1d0], 6
je 0x14007a4ac
mov ecx, 6
lea rdx, [rsp + 0x248]
mov r9d, 4
lea r8, [rsp + 0x1d0]
call fcn.1400038dc
test eax, eax
jne 0x14007ae53
cmp dword [rsi + 0x1d0], 5
je 0x14007a504
mov ecx, 5
lea rdx, [rsp + 0x250]
mov r9d, 1
lea r8, [rsp + 0x200]
call fcn.1400038dc
test eax, eax
je 0x14007a504
cmp dword [rsi + 0x1d0], 6
je 0x14007ae53
mov r8, qword [rsp + 0x248]
mov dword [rsp + 0x240], eax
mov ecx, dword [r8 + 0x1d0]
call fcn.1400013bb
mov eax, dword [rsp + 0x240]
jmp 0x14007ae53
mov ecx, 0x298
mov edx, 1
lea r8, [rsp + 0x238]
call fcn.140003fc1
test eax, eax
jne 0x14007ae53
mov ecx, 0x298
mov edx, 1
lea r8, [rsp + 0x230]
call fcn.140003fc1
test eax, eax
jne 0x14007ae53
mov r8, qword [rsp + 0x238]
mov eax, 0x280
pxor xmm0, xmm0
movups xmmword [r8 + 0x280], xmm0
movq qword [r8 + 0x290], xmm0
movups xmmword [r8 + rax - 0x10], xmm0
movups xmmword [r8 + rax - 0x20], xmm0
movups xmmword [r8 + rax - 0x30], xmm0
movups xmmword [r8 + rax - 0x40], xmm0
sub rax, 0x40
jne 0x14007a564
mov r8, qword [rsp + 0x230]
mov eax, 0x280
movups xmmword [r8 + 0x280], xmm0
movq qword [r8 + 0x290], xmm0
movups xmmword [r8 + rax - 0x10], xmm0
movups xmmword [r8 + rax - 0x20], xmm0
movups xmmword [r8 + rax - 0x30], xmm0
movups xmmword [r8 + rax - 0x40], xmm0
sub rax, 0x40
jne 0x14007a5a0
mov eax, 0x190
movups xmmword [rsp + rax + 0x20], xmm0
movups xmmword [rsp + rax + 0x10], xmm0
movups xmmword [rsp + rax], xmm0
movups xmmword [rsp + rax - 0x10], xmm0
movups xmmword [rsp + rax - 0x20], xmm0
sub rax, 0x50
jne 0x14007a5c3
mov r8, qword [rsp + 0x238]
lea rdx, [0x14014c630]
mov dword [r8 + 0x1d0], 6
mov r11, qword [rsp + 0x238]
mov r9b, byte [rsi + 0x278]
and r9b, 1
mov r10b, byte [r11 + 0x278]
and r10b, 0xfe
or r10b, r9b
mov byte [r11 + 0x278], r10b
mov r10, qword [rsp + 0x238]
mov r8b, byte [rsi + 0x278]
and r8b, 2
mov r9b, byte [r10 + 0x278]
and r9b, 0xfd
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov r10, qword [rsp + 0x238]
mov r8b, byte [rsi + 0x278]
and r8b, 4
mov r9b, byte [r10 + 0x278]
and r9b, 0xfb
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov r10, qword [rsp + 0x238]
mov r8b, byte [rsi + 0x278]
and r8b, 8
mov r9b, byte [r10 + 0x278]
and r9b, 0xf7
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov r10, qword [rsp + 0x238]
mov r8b, byte [rsi + 0x278]
and r8b, 0x20
mov r9b, byte [r10 + 0x278]
and r9b, 0xdf
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov r10, qword [rsp + 0x238]
mov r8b, byte [rsi + 0x281]
and r8b, 4
mov r9b, byte [r10 + 0x281]
and r9b, 0xfb
or r9b, r8b
mov byte [r10 + 0x281], r9b
mov r10, qword [rsp + 0x238]
mov r8b, byte [rsi + 0x281]
and r8b, 8
mov r9b, byte [r10 + 0x281]
and r9b, 0xf7
or r9b, r8b
mov byte [r10 + 0x281], r9b
mov r10, qword [rsp + 0x238]
mov r8b, byte [rsi + 0x278]
and r8b, 0x40
mov r9b, byte [r10 + 0x278]
and r9b, 0xbf
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov r10, qword [rsp + 0x238]
mov r8b, byte [rsi + 0x278]
and r8b, 0x80
mov r9b, byte [r10 + 0x278]
and r9b, 0x7f
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov r10, qword [rsp + 0x238]
mov r8b, byte [rsi + 0x278]
and r8b, 0x10
mov r9b, byte [r10 + 0x278]
and r9b, 0xef
or r9b, r8b
mov r8d, 1
mov byte [r10 + 0x278], r9b
mov qword [rsp + 0x30], r8
mov qword [rsp + 0xe0], 4
mov qword [rsp + 0x98], r8
mov qword [rsp + 0x88], rdx
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x14007a7da
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
mov rdx, qword [rsp + 0x238]
lea rcx, [rsp + 0x30]
mov qword [rcx + 0x60], rax
call fcn.1400026d5
test eax, eax
je 0x14007a87f
mov rcx, qword [rsp + 0x238]
mov dword [rsp + 0x240], eax
call fcn.14000231f
mov rcx, qword [rsp + 0x230]
call fcn.14000231f
mov eax, dword [rsp + 0x240]
cmp dword [rsi + 0x1d0], 6
je 0x14007a858
mov r8, qword [rsp + 0x248]
mov dword [rsp + 0x240], eax
mov ecx, dword [r8 + 0x1d0]
call fcn.1400013bb
mov eax, dword [rsp + 0x240]
cmp dword [rsi + 0x1d0], 5
je 0x14007ae53
mov r8, qword [rsp + 0x250]
mov dword [rsp + 0x240], eax
mov ecx, dword [r8 + 0x1d0]
call fcn.1400013bb
mov eax, dword [rsp + 0x240]
jmp 0x14007ae53
mov r8, qword [rsp + 0x230]
lea rdx, str.CONIN_
mov dword [r8 + 0x1d0], 5
mov r11, qword [rsp + 0x230]
mov r9b, byte [rsi + 0x278]
and r9b, 1
mov r10b, byte [r11 + 0x278]
and r10b, 0xfe
or r10b, r9b
mov byte [r11 + 0x278], r10b
mov r10, qword [rsp + 0x230]
mov r8b, byte [rsi + 0x278]
and r8b, 2
mov r9b, byte [r10 + 0x278]
and r9b, 0xfd
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov r10, qword [rsp + 0x230]
mov r8b, byte [rsi + 0x278]
and r8b, 4
mov r9b, byte [r10 + 0x278]
and r9b, 0xfb
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov r10, qword [rsp + 0x230]
mov r8b, byte [rsi + 0x278]
and r8b, 8
mov r9b, byte [r10 + 0x278]
and r9b, 0xf7
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov r10, qword [rsp + 0x230]
mov r8b, byte [rsi + 0x278]
and r8b, 0x20
mov r9b, byte [r10 + 0x278]
and r9b, 0xdf
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov r10, qword [rsp + 0x230]
mov r8b, byte [rsi + 0x281]
and r8b, 4
mov r9b, byte [r10 + 0x281]
and r9b, 0xfb
or r9b, r8b
mov byte [r10 + 0x281], r9b
mov r10, qword [rsp + 0x230]
mov r8b, byte [rsi + 0x281]
and r8b, 8
mov r9b, byte [r10 + 0x281]
and r9b, 0xf7
or r9b, r8b
mov byte [r10 + 0x281], r9b
mov r10, qword [rsp + 0x230]
mov r8b, byte [rsi + 0x278]
and r8b, 0x40
mov r9b, byte [r10 + 0x278]
and r9b, 0xbf
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov r10, qword [rsp + 0x230]
mov r8b, byte [rsi + 0x278]
and r8b, 0x80
mov r9b, byte [r10 + 0x278]
and r9b, 0x7f
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov r10, qword [rsp + 0x230]
mov r8b, byte [rsi + 0x278]
and r8b, 0x10
mov r9b, byte [r10 + 0x278]
and r9b, 0xef
or r9b, r8b
mov byte [r10 + 0x278], r9b
mov qword [rsp + 0x88], rdx
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x14007aa59
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
mov rdx, qword [rsp + 0x230]
lea rcx, [rsp + 0x30]
mov qword [rcx + 0x60], rax
mov qword [rcx + 0x20], 0
call fcn.1400026d5
test eax, eax
jne 0x14007b20d
mov r8, qword [rsp + 0x238]
mov qword [rsp + 0x1c0], rbp
mov qword [rsp + 0x1c8], r13
mov byte [r8 + 0x268], 3
mov r9, qword [rsp + 0x238]
movsxd r8, dword [rsp + 0x240]
mov r13, r8
or byte [r9 + 0x27d], 0x40
mov rbp, qword [rsp + 0x238]
mov rcx, rbp
xor edx, edx
call fcn.140001104
test eax, eax
jne 0x14007b170
movsx r10d, byte [rbp + 0x266]
cmp r10d, 8
ja 0x14007ac32
lea r11, [0x140000000]
movzx eax, byte [r11 + r10 + 0x14df00]
lea rax, [r11 + rax + 0x7ab00]
jmp rax
mov ecx, 8
mov edx, 2
lea r8, str.for_nt_open_proc.c
mov r9d, 0x1882
call fcn.1400035df
mov cl, byte [rbp + 0x278]
mov rax, qword [rbp + 0x78]
test cl, 4
je 0x14007ac78
test byte [rbp + 0x27a], 0x40
je 0x14007ac78
test byte [rbp + 0x27b], 8
je 0x14007ac78
cmp byte [rbp + 0x266], 1
je 0x14007acd5
mov r10b, byte [rbp + 0x268]
cmp r10b, 2
jne 0x14007aca7
mov r10b, byte [rbp + 0x266]
cmp r10b, 7
je 0x14007acd5
cmp r10b, 6
je 0x14007acd5
cmp r10b, 8
je 0x14007acd5
dec qword [rbp + 0x88]
jmp 0x14007acd5
cmp r10b, 1
jne 0x14007acd5
mov r10b, byte [rbp + 0x266]
cmp r10b, 7
je 0x14007accd
cmp r10b, 6
je 0x14007accd
cmp r10b, 8
je 0x14007accd
dec qword [rbp + 0x88]
add rax, 5
mov qword [rbp + 0x78], rax
mov qword [rbp + 0x90], rax
lea rdx, [rsp + 0x990]
mov qword [rbp + 0x98], 0
mov r8, r13
mov rbp, qword [rdx - 0x758]
mov rcx, qword [rbp + 0x78]
call fcn.140003d46
mov rbp, qword [rsp + 0x238]
add qword [rbp + 0x78], r13
mov rcx, qword [rsp + 0x238]
call fcn.1400017a3
test eax, eax
jne 0x14007b0bb
xor edx, edx
xor r8d, r8d
mov rcx, qword [rsp + 0x230]
call fcn.14000365c
test eax, eax
jne 0x14007b006
mov rbp, qword [rsp + 0x230]
mov rcx, r12
mov rdx, qword [rbp + 0x78]
mov r14, qword [rbp + 0x88]
sub r14, rdx
movsxd rbp, r14d
mov r8, rbp
call fcn.140003d46
mov byte [rbp + r12], 0
cmp byte [r12], 0x20
je 0x14007ad92
movsxd rax, r14d
add rax, r12
test r14d, r14d
jle 0x14007adbb
movsx ebp, byte [rax - 1]
test ebp, 0xffffffdf
jne 0x14007adcf
dec r14d
dec rax
test r14d, r14d
jg 0x14007ad79
jmp 0x14007adbb
test r14d, r14d
jle 0x14007adbb
inc r12
dec r14d
cmp byte [r12], 0x20
jne 0x14007ad6e
test r14d, r14d
jle 0x14007adbb
inc r12
dec r14d
cmp byte [r12], 0x20
jne 0x14007ad6e
test r14d, r14d
jg 0x14007ada9
nop dword [rax]
nop dword [rax]
je 0x14007aaba
mov rbp, qword [rsp + 0x1c0]
mov r13, qword [rsp + 0x1c8]
xor edx, edx
mov rcx, qword [rsp + 0x238]
call fcn.14000161d
xor edx, edx
mov rcx, qword [rsp + 0x230]
call fcn.14000161d
mov rcx, qword [rsp + 0x238]
call fcn.14000231f
mov rcx, qword [rsp + 0x230]
call fcn.14000231f
cmp dword [rsi + 0x1d0], 6
je 0x14007ae3d
mov r8, qword [rsp + 0x248]
mov ecx, dword [r8 + 0x1d0]
call fcn.1400013bb
cmp dword [rsi + 0x1d0], 5
je 0x14007ae51
mov r8, qword [rsp + 0x250]
mov ecx, dword [r8 + 0x1d0]
call fcn.1400013bb
xor eax, eax
test eax, eax
jne 0x14007af68
test ebx, ebx
je 0x14007aed9
movsxd r14, r14d
mov rcx, rsi
mov rdx, r12
mov byte [r14 + r12], 0
call fcn.140002ca2
mov r8d, eax
cmp r8d, 0xffffffff
je 0x14007b2d5
xor ebx, ebx
cmp dword [0x140191994], 0
jne 0x14007ae97
mov eax, 1
cmp r8d, 0xfffffffa
cmove r8d, eax
cmp r8d, 1
je 0x14007aec7
test r8d, r8d
jne 0x14007aeaf
mov ecx, 0xfffffff6
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
jmp 0x14007aed2
cmp r8d, 2
jne 0x14007aec2
mov ecx, 0xfffffff4
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
jmp 0x14007aed2
mov r15b, 1
jmp 0x14007aed9
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov qword [rsi + 0x198], rax
mov rdx, rbp
mov rcx, r12
test cl, 3
je 0x14007aef7
mov al, byte [rcx]
inc rcx
test al, al
mov byte [rdx], al
je 0x14007aefc
inc rdx
test cl, 3
jne 0x14007aee4
call fcn.14000239c
cmp dword [0x140191994], 0
je 0x14007af19
test ebx, ebx
jne 0x14007af27
cmp qword [rsi + 0x198], 0xffffffffffffffff
je 0x14007b2b7
jmp 0x14007af27
test ebx, ebx
jne 0x14007af27
cmp qword [rsi + 0x198], 0xffffffffffffffff
je 0x14007af32
test r15b, r15b
jne 0x14007af32
mov dword [r13], ebx
jmp 0x14007af3a
mov dword [r13], 1
mov rcx, qword [rsp + 0xe08]
xor rcx, rsp
cmp rcx, qword [0x14016fb98]
jne 0x14007b2d0
xor eax, eax
add rsp, 0xe18
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rcx, qword [rsp + 0xe08]
xor rcx, rsp
cmp rcx, qword [0x14016fb98]
jne 0x14007b2d0
add rsp, 0xe18
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
call fcn.140002eb4
jmp 0x140079e17
call fcn.140002eb4
mov rax, qword [0x14016fcc0]
mov r8d, dword [rsi + 0x1d0]
jmp 0x140079cfe
call fcn.140002eb4
jmp 0x14007a2d3
xor edx, edx
mov rcx, qword [rsp + 0x238]
mov rbp, qword [rsp + 0x1c0]
mov r13, qword [rsp + 0x1c8]
mov dword [rsp + 0x240], eax
call fcn.14000161d
xor edx, edx
mov rcx, qword [rsp + 0x230]
call fcn.14000161d
mov rcx, qword [rsp + 0x238]
call fcn.14000231f
mov rcx, qword [rsp + 0x230]
call fcn.14000231f
mov eax, dword [rsp + 0x240]
cmp dword [rsi + 0x1d0], 6
je 0x14007b094
mov r8, qword [rsp + 0x248]
mov dword [rsp + 0x240], eax
mov ecx, dword [r8 + 0x1d0]
call fcn.1400013bb
mov eax, dword [rsp + 0x240]
cmp dword [rsi + 0x1d0], 5
je 0x14007ae53
mov r8, qword [rsp + 0x250]
mov dword [rsp + 0x240], eax
mov ecx, dword [r8 + 0x1d0]
call fcn.1400013bb
mov eax, dword [rsp + 0x240]
jmp 0x14007ae53
xor edx, edx
mov rcx, qword [rsp + 0x238]
mov rbp, qword [rsp + 0x1c0]
mov r13, qword [rsp + 0x1c8]
mov dword [rsp + 0x240], eax
call fcn.14000161d
xor edx, edx
mov rcx, qword [rsp + 0x230]
call fcn.14000161d
mov rcx, qword [rsp + 0x238]
call fcn.14000231f
mov rcx, qword [rsp + 0x230]
call fcn.14000231f
mov eax, dword [rsp + 0x240]
cmp dword [rsi + 0x1d0], 6
je 0x14007b149
mov r8, qword [rsp + 0x248]
mov dword [rsp + 0x240], eax
mov ecx, dword [r8 + 0x1d0]
call fcn.1400013bb
mov eax, dword [rsp + 0x240]
cmp dword [rsi + 0x1d0], 5
je 0x14007ae53
mov r8, qword [rsp + 0x250]
mov dword [rsp + 0x240], eax
mov ecx, dword [r8 + 0x1d0]
call fcn.1400013bb
mov eax, dword [rsp + 0x240]
jmp 0x14007ae53
mov r9, rbp
mov r8, qword [r9 + 0x30]
mov rbp, qword [rsp + 0x1c0]
mov r13, qword [rsp + 0x1c8]
test r8, r8
je 0x14007b1f6
test byte [r8 + 0x74], 2
je 0x14007b1c7
mov eax, 0x26
mov dword [r8 + 0x68], eax
mov r8, qword [r9 + 0x30]
mov dword [r8 + 0x6c], eax
mov r8, qword [r9 + 0xd0]
test r8, r8
je 0x14007ae53
xor r10d, r10d
mov qword [r8 + 8], r10
mov qword [r9 + 0xd0], r10
jmp 0x14007ae53
mov r10, rsp
mov rcx, r9
movzx r8d, byte [r9 + 0x27c]
mov edx, 0xffffffff
and r8d, 7
mov r9d, 0x26
mov dword [r10 + 0x20], 0x26
call fcn.140001447
jmp 0x14007ae53
mov edx, 0x26
mov ecx, 1
mov r8d, edx
call fcn.1400026fd
jmp 0x14007ae53
xor edx, edx
mov rcx, qword [rsp + 0x238]
mov dword [rsp + 0x240], eax
call fcn.14000161d
mov rcx, qword [rsp + 0x238]
call fcn.14000231f
mov rcx, qword [rsp + 0x230]
call fcn.14000231f
mov eax, dword [rsp + 0x240]
cmp dword [rsi + 0x1d0], 6
je 0x14007b27c
mov r8, qword [rsp + 0x248]
mov dword [rsp + 0x240], eax
mov ecx, dword [r8 + 0x1d0]
call fcn.1400013bb
mov eax, dword [rsp + 0x240]
cmp dword [rsi + 0x1d0], 5
je 0x14007ae53
mov r8, qword [rsp + 0x250]
mov dword [rsp + 0x240], eax
mov ecx, dword [r8 + 0x1d0]
call fcn.1400013bb
mov eax, dword [rsp + 0x240]
jmp 0x14007ae53
call fcn.140002eb4
jmp 0x14007a3c8
call fcn.140002eb4
jmp 0x14007a38c
test r15b, r15b
jne 0x14007af32
mov qword [rsi + 0x198], 0
jmp 0x14007af2c
call fcn.140003bcf
mov rdx, qword [rdi + 0x18]
test byte [rsi + 0x281], 8
jne 0x14007b2ed
test rdx, rdx
je 0x14007b40d
jmp 0x14007b2f6
test rdx, rdx
je 0x14007b91e
mov r8, qword [rdi + 0x20]
mov r15d, r8d
cmp r15d, 0x103
jg 0x14007b901
movsxd r8, r8d
lea rcx, [rsp + 0xcb0]
mov qword [rcx - 0xaf0], r8
call fcn.140003d46
mov r8, qword [rsp + 0x1c0]
lea r9, [rsp + 0xcb0]
mov byte [rsp + r8 + 0xcb0], 0
cmp byte [r9], 0x20
jne 0x14007b351
test r15d, r15d
jle 0x14007b374
inc r9
dec r15d
cmp byte [r9], 0x20
je 0x14007b340
test r15d, r15d
jle 0x14007b374
movsxd rax, r15d
movsx r8d, byte [rax + r9 - 1]
test r8d, 0xffffffdf
jne 0x14007b8eb
dec r15d
test r15d, r15d
jg 0x14007b356
xor eax, eax
cmp qword [rdi], 3
je 0x14007b733
lea esi, [r15 + r14]
add esi, eax
cmp esi, 0x104
jle 0x14007b3bf
mov rcx, qword [rsp + 0xe08]
xor rcx, rsp
cmp rcx, qword [0x14016fb98]
jne 0x14007b2d0
mov eax, 0x2b
add rsp, 0xe18
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movsxd r15, r15d
mov rcx, rbp
mov rdx, r9
mov r8, r15
mov dword [rsp + 0x1c8], eax
call fcn.140003d46
mov eax, dword [rsp + 0x1c8]
lea rcx, [rbp + r15]
test eax, eax
je 0x14007b3ea
mov byte [rcx], 0x5c
movsxd r14, r14d
mov rdx, r12
mov esi, eax
mov r8, r14
add rcx, rsi
call fcn.140003d46
add r14, rbp
add r15, rsi
mov byte [r15 + r14], 0
jmp 0x14007af2c
mov dword [rsp + 0x1c8], 0
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx r8d, ax
cmp r8d, 0x411
je 0x14007b442
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx r8d, ax
cmp r8d, 0x411
jne 0x14007b68e
mov rdx, r12
xor r8d, r8d
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x14007b470
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
test rax, rax
jbe 0x14007b4b6
movzx r9d, byte [r8 + r12]
mov rdx, r12
mov word [rsp + r8*2 + 0x56a], r9w
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x14007b4ae
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
inc r8
cmp r8, rax
jb 0x14007b475
xor r10d, r10d
lea rcx, [rsp + 0x56a]
mov word [rsp + r8*2 + 0x56a], r10w
mov edx, 0x105
xor r9d, r9d
lea r8, [rsp + 0x360]
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov r9d, eax
test r9d, r9d
je 0x14007b6c8
cmp r9d, 0x105
jae 0x14007b6c8
xor r10d, r10d
test r9d, r9d
jbe 0x14007b576
cmp r9d, 0x10
jb 0x14007b72c
mov r10d, r9d
xor r8d, r8d
and r10d, 0xfffffff0
movdqu xmm0, xmmword [0x14014ded0]
movsxd rax, r10d
movdqu xmm2, xmmword [rsp + r8*2 + 0x360]
movdqu xmm1, xmmword [rsp + r8*2 + 0x370]
pand xmm2, xmm0
pand xmm1, xmm0
packuswb xmm2, xmm1
movdqu xmmword [rsp + r8 + 0xcb0], xmm2
add r8, 0x10
cmp r8, rax
jb 0x14007b520
movsxd r8, r9d
cmp rax, r8
jae 0x14007b576
mov r10b, byte [rsp + rax*2 + 0x360]
mov byte [rsp + rax + 0xcb0], r10b
inc rax
cmp rax, r8
jb 0x14007b55b
mov r10d, eax
mov r8d, r9d
sub r8d, r14d
movsxd r10, r10d
lea r15d, [r8 - 1]
mov byte [rsp + r10 + 0xcb0], 0
test r15d, r15d
jle 0x14007b6c8
mov r10d, 0
jle 0x14007b608
movsxd r8, r8d
dec r8
cmp r15d, 0x60
jle 0x14007b6d3
xor eax, eax
lea rdx, [rsp + 0xcb0]
mov r10d, 1
lea r11, [rsp + 0x780]
sub r11, rdx
cmp r11, r8
cmovg eax, r10d
neg r11
cmp r11, r8
mov r11d, 0
cmovg r11d, r10d
or eax, r11d
je 0x14007b6d3
mov dword [rsp + 0x1c0], r9d
lea rcx, [rsp + 0x780]
call fcn.140003d46
mov r9d, dword [rsp + 0x1c0]
mov r10d, r15d
movsxd r10, r10d
lea rdx, [rsp + 0x780]
xor r8d, r8d
mov byte [rsp + r10 + 0x780], 0
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x14007b647
mov rax, rdx
add rdx, rcx
call fcn.1400023c9
test rax, rax
jbe 0x14007b681
mov r11d, dword [rsp + 0x1c8]
mov r10d, 1
test byte [rsp + r8 + 0x780], 0x80
cmovne r11d, r10d
inc r8
cmp r8, rax
jb 0x14007b654
mov dword [rsp + 0x1c8], r11d
cmp dword [rsp + 0x1c8], 0
jne 0x14007b6c8
mov r14d, r9d
lea r12, [rsp + 0xcb0]
jmp 0x14007b6c8
mov rcx, r12
mov edx, 0x105
lea r8, [rsp + 0xcb0]
lea r9, [rsp + 0x1c0]
call qword [sym.imp.KERNEL32.dll_GetFullPathNameA]
test eax, eax
je 0x14007b6c8
mov eax, eax
lea r8, [rsp + 0xcb0]
cmp rax, 0x105
cmovb r12, r8
cmovb r14d, eax
xor r9d, r9d
xor r15d, r15d
jmp 0x14007b374
cmp r8, 0x10
jl 0x14007b728
mov eax, r8d
xor r10d, r10d
and eax, 0xfffffff0
movsxd rax, eax
movdqu xmm0, xmmword [rsp + r10 + 0xcb0]
movdqu xmmword [rsp + r10 + 0x780], xmm0
add r10, 0x10
cmp r10, rax
jb 0x14007b6e5
cmp rax, r8
jae 0x14007b605
mov r10b, byte [rsp + rax + 0xcb0]
mov byte [rsp + rax + 0x780], r10b
inc rax
cmp rax, r8
jb 0x14007b70b
jmp 0x14007b605
xor eax, eax
jmp 0x14007b702
xor eax, eax
jmp 0x14007b553
test byte [rsi + 0x279], 0x20
jne 0x14007b380
mov qword [rsp + 0x1c8], r9
lea rcx, str.FORT_TMPDIR
mov r8d, 0x105
lea rdx, [rsp + 0x885]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov r9, qword [rsp + 0x1c8]
mov eax, eax
test rax, rax
ja 0x14007b8d7
mov byte [rsp + 0x885], 0
cmp qword [rdi + 0x18], 0
je 0x14007b84d
xor eax, eax
mov dword [rsp + 0x880], eax
xor edi, edi
mov byte [rsp + 0x884], dil
mov eax, 0x100
pxor xmm0, xmm0
movups xmmword [rsp + rax + 0x770], xmm0
movups xmmword [rsp + rax + 0x760], xmm0
movups xmmword [rsp + rax + 0x750], xmm0
movups xmmword [rsp + rax + 0x740], xmm0
sub rax, 0x40
jne 0x14007b7a5
mov rcx, r9
lea rdx, [0x14014e0ec]
xor r8d, r8d
lea r9, [rsp + 0x780]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
je 0x14007b82a
test byte [rsi + 0x281], 8
lea rcx, [rsp + 0x782]
mov rdx, rbp
lea rsi, [rsp + 0x780]
cmove rcx, rsi
test cl, 3
je 0x14007b820
mov al, byte [rcx]
inc rcx
test al, al
mov byte [rdx], al
je 0x14007b825
inc rdx
test cl, 3
jne 0x14007b80d
call fcn.14000239c
jmp 0x14007af2c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0xe08]
xor rcx, rsp
cmp rcx, qword [0x14016fb98]
jne 0x14007b2d0
jmp 0x14007b3a6
test byte [rsi + 0x281], 8
je 0x14007b870
mov byte [rsp + 0x258], 0x2e
lea r9, [rsp + 0x258]
mov byte [r9 + 1], 0
jmp 0x14007b789
test rax, rax
je 0x14007b8af
lea rdx, [rsp + 0x258]
lea rcx, [rsp + 0x885]
test cl, 3
je 0x14007b89d
mov al, byte [rcx]
inc rcx
test al, al
mov byte [rdx], al
je 0x14007b8a2
inc rdx
test cl, 3
jne 0x14007b88a
call fcn.14000239c
lea r9, [rsp + 0x258]
jmp 0x14007b789
mov ecx, 0x104
lea rdx, [rsp + 0x258]
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
xor edi, edi
test eax, eax
lea r9, [rsp + 0x258]
cmove r9, rdi
jmp 0x14007b789
cmp rax, 0x105
jae 0x14007b776
inc rax
jmp 0x14007b77e
xor r8d, r8d
cmp byte [rax + r9], 0x5c
mov eax, 1
cmove eax, r8d
jmp 0x14007b376
mov rcx, qword [rsp + 0xe08]
xor rcx, rsp
cmp rcx, qword [0x14016fb98]
jne 0x14007b2d0
jmp 0x14007b3a6
cmp qword [rdi], 3
jne 0x14007aed9
test byte [rsi + 0x279], 0x20
je 0x14007b40d
jmp 0x14007aed9
mov al, byte [rsi + 0x281]
test al, 4
je 0x14007b951
test byte [rsi + 0x278], 1
je 0x140079c7a
lea rcx, str.FOR_READ
lea rdx, [rsp + 0xa90]
mov r8d, 0x105
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov eax, eax
test rax, rax
jbe 0x14007b98d
cmp rax, 0x105
jae 0x14007b980
inc rax
jmp 0x14007b995
mov byte [rsp + 0xa90], 0
xor r8b, r8b
jmp 0x14007b9a6
mov byte [rsp + 0xa90], 0
test rax, rax
je 0x14007a0f8
mov r8b, byte [rsp + 0xa90]
mov r14d, eax
lea r12, [rsp + 0xa90]
dec r14d
jmp 0x14007a148
test byte [rsi + 0x279], 0x20
jne 0x140079c23
cmp qword [0x14016fbe0], 0
je 0x14007b9fb
mov rax, qword [0x14016fcc0]
lea rdx, str.SCRATCH
lea rcx, [rsp + 0xba0]
call rax
mov r14d, 7
lea r12, [rsp + 0xba0]
jmp 0x14007ae5f
call fcn.140002eb4
jmp 0x14007b9d0
test byte [rsi + 0x278], 1
jne 0x140079f25
jmp 0x140079c9b