Function at 0x1400dcb60
Capabilities:
Check if file exists
Get common file path
Get file attributes
Get thread local storage value
Read file on windows
Set file attributes
Timestomp file

Disassembly:
push rbp
mov eax, 0x2288
push rdi
push rsi
push rbx
call fcn.1401d92a0
sub rsp, rax
mov rsi, qword [0x14022c040]
mov rax, qword [rsi]
mov qword [rsp + 0x2278], rax
xor eax, eax
mov rdi, rcx
lea rbx, [rsp + 0x270]
call fcn.1400d1230
mov r9d, 0xffffffff
mov rdx, rdi
mov rcx, rbx
mov r8d, 0x1000
mov ebp, eax
call fcn.1400d25c0
test eax, eax
js 0x1400dbc20
mov r9d, ebp
mov r8d, 0x102
mov edx, eax
mov rcx, rbx
call fcn.1400d3b90
test eax, eax
js 0x1400dbc2e
mov edx, 1
je 0x1400dbb5c
lea edx, [rax - 1]
movsxd rdx, edx
movzx ecx, word [rsp + rdx*2 + 0x270]
lea edx, [rax + 1]
cmp ecx, 0x2f
je 0x1400dbb5c
cmp ecx, 0x5c
je 0x1400dbb5c
movsxd rcx, eax
mov r9d, 0x5c
mov word [rsp + rcx*2 + 0x270], r9w
lea ecx, [rax + 2]
mov eax, edx
mov edx, ecx
cdqe
mov ecx, 0x2a
movsxd rdx, edx
xor r8d, r8d
mov word [rsp + rax*2 + 0x270], cx
mov rcx, rbx
mov word [rsp + rdx*2 + 0x270], r8w
lea rdx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x1400dbc48
mov ecx, 0x1020
call fcn.1400bd0a0
lea rdx, [rsp + 0x4c]
mov r8d, 0x30c
movq xmm0, qword [0x140206650]
mov rbx, rax
lea rax, [0x1400dba70]
movq xmm1, rax
mov qword [rbx + 0x10], rdi
lea rcx, [rbx + 0x1d]
mov dword [rbx + 0x18], 0
punpcklqdq xmm0, xmm1
movups xmmword [rbx], xmm0
call fcn.1400d2b10
mov eax, dword [rsp + 0x20]
test ah, 4
jne 0x1400dbc10
test al, 0x10
sete al
add eax, 1
mov byte [rbx + 0x1c], al
mov rax, qword [rsp + 0x2278]
sub rax, qword [rsi]
jne 0x1400dbc7b
mov rax, rbx
add rsp, 0x2288
pop rbx
pop rsi
pop rdi
pop rbp
ret
cmp dword [rsp + 0x44], 0xa000000c
jne 0x1400dbbe5
mov byte [rbx + 0x1c], 3
jmp 0x1400dbbf0
mov rbx, qword [sym.imp.msvcrt.dll__errno]
call rbx
cmp dword [rax], 0x22
je 0x1400dbc38
xor ebx, ebx
jmp 0x1400dbbf0
call rbx
xor ebx, ebx
mov dword [rax], 0x26
jmp 0x1400dbbf0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, 0x14
cmp eax, 0x10b
jne 0x1400dbc70
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], ebx
xor ebx, ebx
jmp 0x1400dbbf0
mov ecx, eax
call fcn.1400d0b80
mov ebx, eax
jmp 0x1400dbc5a
call fcn.1401d96b0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov rax, qword [rcx + 0x10]
mov rax, qword [rax + 0x20]
test rax, rax
je 0x1400dbcc0
lea rdx, [rax + 0x62]
movq xmm0, rax
movq xmm1, rdx
punpcklqdq xmm0, xmm1
movups xmmword [rcx + 0x10], xmm0
mov rax, rdx
ret
xor edx, edx
jmp 0x1400dbcb3
push r15
mov eax, 0x43d8
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.1401d92a0
sub rsp, rax
mov rbx, qword [0x14022c040]
mov rax, qword [rbx]
mov qword [rsp + 0x43c8], rax
xor eax, eax
mov dword [r8], 0
mov rdi, rdx
mov rsi, rcx
mov rbp, r8
lea rbx, [rsp + 0xb0]
call fcn.1400d1230
movzx r9d, word [rdi + 0x60]
mov r8d, 0x1000
mov rcx, rbx
mov r12d, eax
lea rax, [rdi + 0x63]
mov rdx, rax
mov qword [rsp + 0x80], rax
call fcn.1400d25c0
test eax, eax
js 0x1400dc360
mov r9d, r12d
mov r8d, 0x102
mov edx, eax
mov rcx, rbx
call fcn.1400d3b90
test eax, eax
js 0x1400dc2cf
je 0x1400dc308
mov qword [rsp + 0x30], 0
xor r9d, r9d
mov r8d, 7
mov rcx, rbx
mov dword [rsp + 0x28], 0x2000000
mov edx, 1
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x68], rax
cmp rax, 0xffffffffffffffff
je 0x1400dc490
movzx edi, word [rdi + 0x60]
lea r14, [rsi + 0x38]
mov rcx, r14
lea rdx, [rdi + 0x69]
call fcn.14015e460
mov r8, qword [rsp + 0x80]
mov r9, rdi
xor edx, edx
mov rcx, rax
mov r15, rax
call fcn.1400dbd50
lea rax, [rsi + 0x60]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4000
mov byte [r15 + 0x62], 1
mov rcx, qword [rsp + 0x68]
lea r13, [r15 + 0x20]
mov word [r15 + 0x10], dx
xor edx, edx
mov qword [r15 + 0x20], 0
mov dword [r15 + 0x28], 1
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x20], rax
mov rax, qword [sym.imp.ntdll.dll_NtQueryDirectoryFile]
mov dword [rsp + 0x50], 0
mov qword [rsp + 0x48], 0
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x38], 2
mov dword [rsp + 0x30], 0x10000
mov qword [rsp + 0x90], rax
call rax
mov esi, eax
test eax, eax
js 0x1400dc280
mov qword [rsp + 0x78], r14
mov rsi, qword [rsp + 0x70]
lea rdi, [rsp + 0x40b0]
movabs r12, 0xfe624e212ac18000
movabs rbp, 0xd6bf94d5e57a42bd
mov qword [rsp + 0x20], rdi
xor edx, edx
lea r8, [rsi + 0x44]
mov ecx, 0xfde9
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x30c
mov r9d, dword [rsi + 0x3c]
shr r9d, 1
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
je 0x1400dc580
movsxd rbx, eax
lea rdx, [rbx + 0x69]
mov rcx, qword [rsp + 0x78]
call fcn.14015e460
mov rdx, r15
mov r9, rbx
mov r8, rdi
mov rcx, rax
mov r14, rax
call fcn.1400dbd50
mov ecx, dword [rsi + 0x38]
mov qword [r14 + 0x20], 0
mov dword [r14 + 0x28], 1
mov edx, dword [rsi + 0x40]
test ch, 4
jne 0x1400dc1e0
mov dword [r14 + 0x14], 0
mov r8, rdi
call fcn.1400d8e20
mov word [r14 + 0x10], ax
and ax, 0xf000
cmp ax, 0x8000
je 0x1400dc1d0
cmp ax, 0x4000
je 0x1400dc340
mov byte [r14 + 0x62], 3
mov edx, 0x1000
cmp ax, 0xa000
jne 0x1400dc1d5
mov qword [r14 + 0x28], rdx
mov rcx, qword [rsi + 0x10]
add rcx, r12
mov rax, rcx
imul rbp
mov rax, rcx
sar rax, 0x3f
add rdx, rcx
sar rdx, 0x17
sub rdx, rax
mov qword [r14 + 0x30], rdx
imul rdx, rdx, 0x989680
sub rcx, rdx
imul ecx, ecx, 0x64
mov dword [r14 + 0x38], ecx
mov rcx, qword [rsi + 0x18]
add rcx, r12
mov rax, rcx
imul rbp
mov rax, rcx
sar rax, 0x3f
add rdx, rcx
sar rdx, 0x17
sub rdx, rax
mov qword [r14 + 0x40], rdx
imul rdx, rdx, 0x989680
sub rcx, rdx
imul ecx, ecx, 0x64
mov dword [r14 + 0x48], ecx
mov rcx, qword [rsi + 8]
add rcx, r12
mov rax, rcx
imul rbp
mov rax, rcx
sar rax, 0x3f
add rdx, rcx
sar rdx, 0x17
sub rdx, rax
mov eax, dword [rsi + 0x40]
mov qword [r14 + 0x50], rdx
imul rdx, rdx, 0x989680
sub rcx, rdx
imul ecx, ecx, 0x64
mov dword [r14 + 0x58], ecx
test eax, eax
je 0x1400dc141
movzx edx, word [r15 + 0x60]
movzx eax, word [r14 + 0x60]
lea eax, [rdx + rax + 1]
cmp eax, 0x30b
jle 0x1400dc380
mov eax, dword [rsi]
mov qword [r13], r14
test eax, eax
jne 0x1400dc270
mov dword [rsp + 0x50], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rax, qword [rsp + 0x70]
mov dword [rsp + 0x40], 0
mov qword [rsp + 0x48], 0
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x88]
mov dword [rsp + 0x38], 2
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x90]
mov dword [rsp + 0x30], 0x10000
call rax
mov esi, eax
test eax, eax
jns 0x1400dc350
cmp eax, 0x80000006
jne 0x1400dc290
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400dc2d2
mov byte [r14 + 0x62], 2
mov rdx, qword [rsi + 0x28]
jmp 0x1400dc084
mov dword [r14 + 0x14], edx
cmp edx, 0xa000000c
jne 0x1400dc04b
movzx r8d, word [r15 + 0x60]
movzx eax, word [r14 + 0x60]
lea eax, [r8 + rax + 1]
cmp eax, 0x30a
jg 0x1400dc04b
call fcn.1400d8a40
test eax, eax
je 0x1400dc262
movzx r8d, word [r15 + 0x60]
lea rdx, [r15 + 0x63]
mov rcx, rdi
mov rbx, r8
call sub.msvcrt.dll_memcpy
movzx eax, bx
lea rdx, [r14 + 0x63]
mov rbx, rax
mov byte [rsp + rax + 0x40b0], 0x2f
movzx r8d, word [r14 + 0x60]
add rbx, 1
lea rcx, [rdi + rbx]
add rbx, 0x43d0
call sub.msvcrt.dll_memcpy
movzx eax, word [r14 + 0x60]
add rbx, rsp
mov byte [rax + rbx - 0x320], 0
mov edx, dword [rsi + 0x40]
mov ecx, dword [rsi + 0x38]
jmp 0x1400dc04b
add rsi, rax
lea r13, [r14 + 0x20]
jmp 0x1400dbfc0
cmp eax, 0xc000000d
je 0x1400dc523
nop dword [rax + rax]
movabs rax, 0x1ffffffff
movabs rdx, 0x100000000
and rax, qword [0x1401e49f8]
cmp rax, rdx
jne 0x1400dc430
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [r15 + 0x18]
test rax, rax
cmove rax, r15
lock sub dword [rax + 0x28], 1
xor r15d, r15d
mov rdi, qword [0x14022c040]
mov rax, qword [rsp + 0x43c8]
sub rax, qword [rdi]
jne 0x1400dc5b4
mov rax, r15
add rsp, 0x43d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rbx
mov ecx, 0x1000
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea edx, [rax - 1]
cmp edx, 0xffe
jbe 0x1400dbe98
mov ebx, 0x26
test eax, eax
je 0x1400dc5a0
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], ebx
jmp 0x1400dc2cf
mov byte [r14 + 0x62], 1
mov rdx, qword [rsi + 0x28]
jmp 0x1400dc084
mov rsi, qword [rsp + 0x70]
jmp 0x1400dc273
mov rbx, qword [sym.imp.msvcrt.dll__errno]
call rbx
cmp dword [rax], 0x22
jne 0x1400dc2cf
call rbx
mov dword [rax], 0x26
jmp 0x1400dc2cf
call fcn.1400dd320
test eax, eax
je 0x1400dc141
movzx r9d, word [r15 + 0x60]
mov rcx, rdi
xor ebx, ebx
test r9w, r9w
jne 0x1400dc540
movzx r8d, word [r14 + 0x60]
lea rdx, [r14 + 0x63]
add rbx, 0x43d0
add rbx, rsp
call sub.msvcrt.dll_memcpy
movzx eax, word [r14 + 0x60]
mov byte [rax + rbx - 0x320], 0
lea rbx, [rsp + 0x20b0]
call fcn.1400d1230
mov r9d, 0xffffffff
mov rdx, rdi
mov rcx, rbx
mov r8d, 0x1000
mov dword [rsp + 0x9c], eax
call fcn.1400d25c0
test eax, eax
js 0x1400dc468
mov r9d, dword [rsp + 0x9c]
mov r8d, 0x104
mov edx, eax
mov rcx, rbx
call fcn.1400d3b90
test eax, eax
js 0x1400dc141
lea r8, [r14 + 0x10]
mov rdx, 0xffffffffffffffff
mov rcx, rbx
call fcn.1400dd3a0
jmp 0x1400dc141
mov dword [rsp + 0x20], esi
mov rax, qword [rsp + 0x80]
lea r9, str.fscache:_status__ld__unable_to_query_directory_contents__s_n
lea r8, str.GIT_TRACE_FSCACHE
mov edx, 0x165
lea rcx, str.compat_win32_fscache.c
mov qword [rsp + 0x28], rax
call fcn.14009f750
jmp 0x1400dc2b4
mov rbx, qword [sym.imp.msvcrt.dll__errno]
call rbx
cmp dword [rax], 0x22
jne 0x1400dc141
call rbx
mov dword [rax], 0x26
jmp 0x1400dc141
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, 0x14
mov dword [rbp], 1
cmp eax, 0x10b
jne 0x1400dc518
mov rsi, qword [sym.imp.msvcrt.dll__errno]
call rsi
movabs rdx, 0x100000000
mov dword [rax], ebx
movabs rax, 0x1ffffffff
and rax, qword [0x1401e49f8]
cmp rax, rdx
je 0x1400dc2cf
call rsi
mov rbx, qword [rsp + 0x80]
lea r9, str.fscache:_error__d___s_n
lea r8, str.GIT_TRACE_FSCACHE
mov edx, 0x12d
lea rcx, str.compat_win32_fscache.c
mov qword [rsp + 0x28], rbx
mov eax, dword [rax]
mov dword [rsp + 0x20], eax
call fcn.14009f750
jmp 0x1400dc2cf
mov ecx, eax
call fcn.1400d0b80
mov ebx, eax
jmp 0x1400dc4a9
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
mov eax, 0x10b
cmove esi, eax
jmp 0x1400dc290
movzx r8d, r9w
lea rdx, [r15 + 0x63]
mov dword [rsp + 0x9c], r9d
call sub.msvcrt.dll_memcpy
mov r9d, dword [rsp + 0x9c]
movzx eax, r9w
lea rbx, [rax + 1]
mov byte [rsp + rax + 0x40b0], 0x2f
lea rcx, [rdi + rbx]
jmp 0x1400dc3a1
call qword [sym.imp.msvcrt.dll__errno]
mov rbx, 0xffffffffffffffff
mov edx, 0x68
mov dword [rax], 0x22
jmp 0x1400dc006
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.1400d0b80
mov ebx, eax
jmp 0x1400dc332
call fcn.1401d96b0
nop
nop word [rax + rax]
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rbp, qword [0x14022c040]
xor r8d, r8d
add dword [rcx + 0x58], 1
mov rax, qword [rbp]
mov qword [rsp + 0x28], rax
xor eax, eax
lea r12, [rcx + 8]
mov rsi, rcx
mov rdi, rdx
mov rcx, r12
call fcn.140029590
mov rbx, rax
test rax, rax
je 0x1400dc6c8
cmp word [rax + 0x10], 0
jne 0x1400dc690
xor ebx, ebx
jmp 0x1400dc6a0
mov rdx, qword [rdi + 0x18]
test rdx, rdx
jne 0x1400dc633
nop dword [rax]
mov rdx, rdi
lea r8, [rsp + 0x24]
mov rcx, rsi
call fcn.1400dbe00
mov rbx, rax
test rax, rax
je 0x1400dc720
add dword [rsi + 0x5c], 1
mov rsi, qword [rax + 0x18]
test rsi, rsi
cmove rsi, rax
nop dword [rax + rax]
mov rdx, rsi
mov rcx, r12
call fcn.140029680
mov rsi, qword [rsi + 0x20]
test rsi, rsi
jne 0x1400dc660
cmp qword [rdi + 0x18], 0
jne 0x1400dc700
cmp word [rbx + 0x10], 0
je 0x1400dc6e9
nop word cs:[rax + rax]
mov rax, qword [rbx + 0x18]
test rax, rax
cmove rax, rbx
lock add dword [rax + 0x28], 1
mov rax, qword [rsp + 0x28]
sub rax, qword [rbp]
jne 0x1400dc78b
mov rax, rbx
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rdx, qword [rdi + 0x18]
test rdx, rdx
je 0x1400dc630
xor r8d, r8d
mov rcx, r12
call fcn.140029590
test rax, rax
je 0x1400dc620
call qword [sym.imp.msvcrt.dll__errno]
xor ebx, ebx
mov dword [rax], 2
jmp 0x1400dc6a0
xor r8d, r8d
mov rdx, rdi
mov rcx, r12
call fcn.140029590
mov rbx, rax
test rax, rax
jne 0x1400dc67f
jmp 0x1400dc6e9
mov edx, dword [rsp + 0x24]
test edx, edx
je 0x1400dc610
mov rdi, qword [rdi + 0x18]
test rdi, rdi
je 0x1400dc610
movzx r13d, word [rdi + 0x60]
mov r14, qword [rdi + 0x18]
lea rcx, [rsi + 0x38]
lea rdx, [r13 + 0x69]
call fcn.14015e460
mov r9, r13
lea r8, [rdi + 0x63]
mov rdx, r14
mov rcx, rax
mov rbx, rax
call fcn.1400dbd50
xor eax, eax
mov rdx, rbx
mov rcx, r12
mov qword [rbx + 0x20], 0
mov dword [rbx + 0x28], 1
mov word [rbx + 0x10], ax
xor ebx, ebx
call fcn.140029680
jmp 0x1400dc6a0
call fcn.1401d96b0
nop
nop word cs:[rax + rax]
nop dword [rax]
push r15
mov eax, 0x3118
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.1401d92a0
sub rsp, rax
mov rdi, qword [0x14022c040]
mov rbx, rcx
mov rsi, rdx
mov rcx, qword [rdi]
mov qword [rsp + 0x3108], rcx
mov ecx, dword [0x14025ae28]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r12, rax
test rax, rax
je 0x1400dc7eb
mov eax, dword [rax]
test eax, eax
jg 0x1400dc820
mov rax, qword [rsp + 0x3108]
sub rax, qword [rdi]
jne 0x1400dca14
mov rdx, rsi
mov rcx, rbx
add rsp, 0x3118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400d8ef0
movsx eax, byte [rbx]
cmp eax, 0x2f
je 0x1400dc7eb
cmp eax, 0x5c
je 0x1400dc7eb
mov rcx, rbx
call fcn.1400db080
mov dword [rsp + 0x2c], eax
test eax, eax
jne 0x1400dc7eb
add dword [r12 + 0x50], 1
mov rcx, rbx
call sub.msvcrt.dll_strlen
test eax, eax
je 0x1400dc988
movsxd rdx, eax
movsx ecx, byte [rbx + rdx - 1]
cmp ecx, 0x2f
sete dl
cmp ecx, 0x5c
sete cl
or edx, ecx
movzx edx, dl
sub eax, edx
je 0x1400dc988
movsxd r13, eax
mov rdx, r13
nop word [rax + rax]
movsx r9d, byte [rbx + rdx - 1]
cmp r9d, 0x2f
je 0x1400dc9a0
cmp r9d, 0x5c
je 0x1400dc9a0
sub rdx, 1
test edx, edx
jne 0x1400dc880
mov r14, rbx
xor r9d, r9d
lea rbp, [rsp + 0x30]
mov r8, rbx
xor edx, edx
mov rcx, rbp
lea r15, [rsp + 0x1098]
call fcn.1400dbd50
mov r9, r13
mov r8, r14
mov rdx, rbp
mov rcx, r15
call fcn.1400dbd50
mov rcx, r12
mov rdx, r15
call 0x1400dc5c0
mov r12, rax
test rax, rax
je 0x1400dc9fb
mov rax, qword [rax + 0x28]
movzx edx, word [r12 + 0x10]
cmp rax, 0x1000
je 0x1400dc9b8
mov qword [rsi + 0x18], rax
mov rax, qword [r12 + 0x18]
xor ecx, ecx
xor r8d, r8d
movdqu xmm0, xmmword [r12 + 0x30]
movdqu xmm1, xmmword [r12 + 0x40]
mov word [rsi + 4], cx
test rax, rax
movdqu xmm2, xmmword [r12 + 0x50]
mov word [rsi + 0xc], r8w
cmove rax, r12
mov dword [rsi], 0
mov dword [rsi + 0x10], 0
mov dword [rsi + 8], 1
mov word [rsi + 6], dx
movups xmmword [rsi + 0x20], xmm0
movups xmmword [rsi + 0x30], xmm1
movups xmmword [rsi + 0x40], xmm2
lock sub dword [rax + 0x28], 1
mov rax, qword [rsp + 0x3108]
sub rax, qword [rdi]
jne 0x1400dca14
mov eax, dword [rsp + 0x2c]
add rsp, 0x3118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r14, rbx
xor r13d, r13d
xor r9d, r9d
jmp 0x1400dc8a8
sub eax, edx
lea r14, [rbx + rdx]
sub edx, 1
movsxd r13, eax
movsxd r9, edx
jmp 0x1400dc8a8
mov ecx, edx
and cx, 0xf000
cmp cx, 0xa000
jne 0x1400dc900
lea rdx, [rsp + 0x2100]
mov r8d, 0xfff
mov rcx, rbx
call fcn.1400d6820
test eax, eax
jle 0x1400dc9eb
cdqe
mov qword [r12 + 0x28], rax
movzx edx, word [r12 + 0x10]
mov rax, qword [r12 + 0x28]
jmp 0x1400dc900
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rsp + 0x2c], 0xffffffff
mov dword [rax], 2
jmp 0x1400dc95c
call fcn.1401d96b0
nop
nop word [rax + rax]
push rbp
mov eax, 0x1098
push rdi
push rsi
push rbx
call fcn.1401d92a0
sub rsp, rax
mov rsi, qword [0x14022c040]
mov rdi, rcx
mov rcx, qword [rsi]
mov qword [rsp + 0x1088], rcx
mov ecx, dword [0x14025ae28]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rax, rax
je 0x1400dca60
mov eax, dword [rax]
test eax, eax
jg 0x1400dca88
mov rax, qword [rsp + 0x1088]
sub rax, qword [rsi]
jne 0x1400dcb54
mov rcx, rdi
add rsp, 0x1098
pop rbx
pop rsi
pop rdi
pop rbp
jmp 0x1400dbab0
movsx eax, byte [rdi]
cmp eax, 0x2f
je 0x1400dca60
cmp eax, 0x5c
je 0x1400dca60
mov rcx, rdi
call fcn.1400db080
test eax, eax
jne 0x1400dca60
add dword [rbx + 0x54], 1
mov rcx, rdi
call sub.msvcrt.dll_strlen
cmp eax, 1
je 0x1400dcb20
xor r9d, r9d
test eax, eax
jne 0x1400dcb25
lea rbp, [rsp + 0x20]
mov r8, rdi
xor edx, edx
mov rcx, rbp
call fcn.1400dbd50
mov rcx, rbx
mov rdx, rbp
call 0x1400dc5c0
mov rbx, rax
test rax, rax
je 0x1400dcb50
mov ecx, 0x20
call fcn.1400bd0a0
lea rdx, [0x1400dbdd0]
movq xmm0, qword [0x1402068c8]
movq xmm1, rdx
mov qword [rax + 0x10], rbx
punpcklqdq xmm0, xmm1
movups xmmword [rax], xmm0
mov rdx, qword [rsp + 0x1088]
sub rdx, qword [rsi]
jne 0x1400dcb54
add rsp, 0x1098
pop rbx
pop rsi
pop rdi
pop rbp
ret
cmp byte [rdi], 0x2e
je 0x1400dcb3c
movsxd r9, eax
movsx edx, byte [rdi + r9 - 1]
cmp edx, 0x2f
je 0x1400dcb3c
cmp edx, 0x5c
jne 0x1400dcab9
sub eax, 1
movsxd r9, eax
jmp 0x1400dcab9
xor eax, eax
jmp 0x1400dcb07
call fcn.1401d96b0
nop
nop word [rax + rax]
push r14
mov eax, 0x2100
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.1401d92a0
sub rsp, rax
mov rbp, qword [0x14022c040]
mov rdi, rcx
mov rcx, qword [rbp]
mov qword [rsp + 0x20f8], rcx
mov ecx, dword [0x14025ae28]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test rax, rax
je 0x1400dcba7
mov eax, dword [rax]
test eax, eax
jg 0x1400dcbd8
mov rax, qword [rsp + 0x20f8]
sub rax, qword [rbp]
jne 0x1400dccf2
mov rcx, rdi
add rsp, 0x2100
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp fcn.1400d6a80
mov rcx, qword [rdi + 0x10]
movsx eax, byte [rcx]
cmp eax, 0x2f
je 0x1400dcba7
cmp eax, 0x5c
je 0x1400dcba7
call fcn.1400db080
test eax, eax
jne 0x1400dcba7
mov rax, qword [rdi + 8]
add dword [rsi + 0x50], 1
mov r8, qword [rdi + 0x10]
test eax, eax
je 0x1400dccc0
movsxd rdx, eax
movsx edx, byte [r8 + rdx - 1]
cmp edx, 0x2f
sete cl
cmp edx, 0x5c
sete dl
or ecx, edx
mov edx, eax
movzx ecx, cl
sub edx, ecx
je 0x1400dccc0
movsxd r13, edx
mov rbx, r13
movsx eax, byte [r8 + rbx - 1]
cmp eax, 0x2f
je 0x1400dccd0
cmp eax, 0x5c
je 0x1400dccd0
sub rbx, 1
test ebx, ebx
jne 0x1400dcc30
xor ebx, ebx
xor r9d, r9d
lea r14, [rsp + 0x20]
xor edx, edx
lea r12, [rsp + 0x1088]
mov rcx, r14
call fcn.1400dbd50
add rbx, qword [rdi + 0x10]
mov rdx, r14
mov rcx, r12
mov r9, r13
mov r8, rbx
call fcn.1400dbd50
mov rdx, r12
mov rcx, rsi
call 0x1400dc5c0
test rax, rax
je 0x1400dcce8
cmp dword [rax + 0x14], 0xa0000003
sete al
movzx eax, al
mov rdx, qword [rsp + 0x20f8]
sub rdx, qword [rbp]
jne 0x1400dccf2
add rsp, 0x2100
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
xor ebx, ebx
xor r13d, r13d
xor r9d, r9d
jmp 0x1400dcc55
mov eax, edx
lea r9d, [rbx - 1]
sub eax, ebx
movsxd r9, r9d
movsxd r13, eax
jmp 0x1400dcc55
mov rcx, rdi
call fcn.1400d6a80
jmp 0x1400dcc9e
call fcn.1401d96b0
nop
nop dword [rax + rax]