Function at 0x101b96f0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x860
mov eax, dword [0x103b1004]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
push 0x202
lea eax, [ebp - 0x214]
mov dword [ebp - 0x848], ecx
push 0
push eax
mov esi, edx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x214]
push pe_nt_image_headers32
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x101b976c
mov dword [ebp - 0x844], 1
mov dword [ebp - 0x840], str.get_program_full_path
mov dword [ebp - 0x83c], str.Cannot_determine_program_path
mov dword [ebp - 0x838], eax
movups xmm0, xmmword [ebp - 0x844]
jmp 0x101b999c
push str.__PYVENV_LAUNCHER__
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll__wgetenv]
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
mov edi, eax
add esp, 4
test edi, edi
je 0x101b97f6
cmp word [edi], 0
je 0x101b97f6
cmp dword [esi + 0x20], 0
jne 0x101b97d1
push 0x202
push dword [0x103cc53c]
call dword [0x103cc540]
add esp, 8
mov dword [esi + 0x20], eax
test eax, eax
je 0x101b9819
lea ecx, [ebp - 0x844]
push ecx
lea edx, [ebp - 0x214]
mov ecx, eax
call fcn.101b86c0
add esp, 4
cmp dword [eax], 0
je 0x101b97d1
movups xmm0, xmmword [eax]
jmp 0x101b9895
push edi
lea eax, [ebp - 0x214]
push 0x101
push eax
call ebx
add esp, 0xc
push 0x1036fa7c
push str.__PYVENV_LAUNCHER__
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll__wputenv_s]
add esp, 8
cmp dword [esi], 0
jne 0x101b98a1
push 0x202
push dword [0x103cc53c]
call dword [0x103cc540]
add esp, 8
mov dword [esi], eax
test eax, eax
jne 0x101b984d
mov dword [ebp - 0x844], 1
mov dword [ebp - 0x840], str.get_program_full_path
mov dword [ebp - 0x83c], str.memory_allocation_failed
mov dword [ebp - 0x838], 0
movups xmm0, xmmword [ebp - 0x844]
jmp 0x101b999c
push 0
lea ecx, [ebp - 0x214]
push ecx
push 0x101
push eax
call dword [sym.imp.api_ms_win_core_path_l1_1_0.dll_PathCchCanonicalizeEx]
test eax, eax
jns 0x101b98a1
mov dword [ebp - 0x844], 1
mov dword [ebp - 0x840], str.canonicalize
mov dword [ebp - 0x83c], str.buffer_overflow
mov dword [ebp - 0x838], 0
movups xmm0, xmmword [ebp - 0x844]
movd eax, xmm0
test eax, eax
jne 0x101b999c
push 0x202
lea eax, [ebp - 0x82c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x82c]
push dword [esi]
push 0x101
push eax
call ebx
add esp, 0xc
lea ecx, [ebp - 0x82c]
call fcn.101b8540
push 0x202
lea eax, [ebp - 0x41c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [0x103cea74]
add esp, 0xc
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x830], 0
test eax, eax
je 0x101b9942
push pe_nt_image_headers32
lea ecx, [ebp - 0x214]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x101b9942
lea edx, [ebp - 0x214]
push 0x10387e68
mov ecx, edx
call fcn.101b85a0
add esp, 4
test eax, eax
jne 0x101b9942
lea eax, [ebp - 0x214]
push eax
call edi
cmp eax, 0xffffffff
jne 0x101b996f
mov edx, dword [esi]
cmp word [edx], 0
je 0x101b99c0
push 0x10387e68
lea ecx, [ebp - 0x214]
call fcn.101b85a0
add esp, 4
test eax, eax
jne 0x101b99c0
lea eax, [ebp - 0x214]
push eax
call edi
cmp eax, 0xffffffff
je 0x101b99c0
lea eax, [ebp - 0x830]
mov ecx, esi
push eax
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x844]
push eax
lea edx, [ebp - 0x41c]
call fcn.101b8ce0
add esp, 0xc
cmp dword [eax], 0
je 0x101b99b3
movups xmm0, xmmword [eax]
mov eax, dword [ebp + 8]
movups xmmword [eax], xmm0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1024a596
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x830], 0
jne 0x101b9c43
lea eax, [ebp - 0x82c]
push eax
lea eax, [ebp - 0x214]
push 0x101
push eax
call ebx
add esp, 0xc
lea eax, [ebp - 0x214]
push 0
push str.pyvenv.cfg
push eax
push 0x101
push eax
call dword [sym.imp.api_ms_win_core_path_l1_1_0.dll_PathCchCombineEx]
test eax, eax
js 0x101b9cd9
lea eax, [ebp - 0x214]
push 0x10387e4c
push eax
call sym.python310.dll__Py_wfopen
mov edi, eax
add esp, 8
test edi, edi
jne 0x101b9a7a
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
lea ecx, [ebp - 0x214]
mov dword [eax], edi
call fcn.101b8540
lea ecx, [ebp - 0x214]
call fcn.101b8540
push edi
push str.pyvenv.cfg
lea eax, [ebp - 0x214]
push eax
push 0x101
push eax
call dword [sym.imp.api_ms_win_core_path_l1_1_0.dll_PathCchCombineEx]
test eax, eax
js 0x101b9cd9
lea eax, [ebp - 0x214]
push 0x10387e4c
push eax
call sym.python310.dll__Py_wfopen
mov edi, eax
add esp, 8
test edi, edi
jne 0x101b9a7a
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [eax], edi
jmp 0x101b9b16
lea eax, [ebp - 0x830]
mov dword [ebp - 0x830], 0
push eax
lea eax, [ebp - 0x85c]
mov ecx, edi
push eax
call fcn.102057f0
add esp, 8
movups xmm0, xmmword [eax]
movd eax, xmm0
movups xmmword [ebp - 0x844], xmm0
test eax, eax
je 0x101b9ad6
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov eax, dword [ebp + 8]
add esp, 4
movups xmm0, xmmword [ebp - 0x844]
movups xmmword [eax], xmm0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1024a596
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x830]
test ebx, ebx
je 0x101b9b06
push ebx
lea eax, [ebp - 0x82c]
push 0x101
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
push ebx
push dword [0x103cc53c]
call dword [0x103cc54c]
add esp, 8
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 4
push 0x202
lea eax, [ebp - 0x624]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x624]
call fcn.101b88b0
test eax, eax
jne 0x101b9b54
lea edx, [ebp - 0x624]
push str..zip
mov ecx, edx
call fcn.101b85a0
add esp, 4
test eax, eax
je 0x101b9b78
mov edx, dword [esi]
lea ecx, [ebp - 0x624]
push str..zip
call fcn.101b85a0
add esp, 4
test eax, eax
je 0x101b9b78
xor eax, eax
mov word [ebp - 0x624], ax
jmp 0x101b9b7f
mov ax, word [ebp - 0x624]
mov edi, dword [ebp - 0x848]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x101b9ba6
cmp word [ecx], 0
je 0x101b9ba6
push ecx
lea eax, [ebp - 0x41c]
push 0x101
push eax
call ebx
add esp, 0xc
jmp 0x101b9c0c
test ax, ax
je 0x101b9be8
lea eax, [ebp - 0x624]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x101b9be8
lea eax, [ebp - 0x624]
push eax
lea eax, [ebp - 0x41c]
push 0x101
push eax
call ebx
add esp, 0xc
lea ecx, [ebp - 0x41c]
call fcn.101b8540
lea eax, [ebp - 0x41c]
jmp 0x101b9c09
push ecx
lea edx, [ebp - 0x82c]
lea ecx, [ebp - 0x41c]
call fcn.101b8740
add esp, 4
lea ecx, [ebp - 0x41c]
neg eax
sbb eax, eax
and eax, ecx
mov dword [edi + 4], eax
cmp dword [esi + 0xc], 0
jne 0x101b9c43
lea eax, [ebp - 0x624]
mov edx, esi
push eax
lea eax, [ebp - 0x41c]
mov ecx, edi
push eax
lea eax, [ebp - 0x82c]
push eax
lea eax, [ebp - 0x85c]
push eax
call fcn.101b9140
add esp, 0x10
cmp dword [eax], 0
jne 0x101b9999
cmp dword [esi + 4], 0
jne 0x101b9c8e
lea eax, [ebp - 0x41c]
push eax
call sym.python310.dll__PyMem_RawWcsdup
add esp, 4
mov dword [esi + 4], eax
test eax, eax
jne 0x101b9c8e
mov eax, dword [ebp + 8]
mov dword [eax], 1
mov dword [eax + 4], str.calculate_path
mov dword [eax + 8], str.memory_allocation_failed
mov dword [eax + 0xc], 0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1024a596
mov esp, ebp
pop ebp
ret
cmp dword [esi + 8], 0
jne 0x101b9caa
lea eax, [ebp - 0x41c]
push eax
call sym.python310.dll__PyMem_RawWcsdup
add esp, 4
mov dword [esi + 8], eax
test eax, eax
je 0x101b9c5f
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
pop edi
pop esi
mov dword [eax], 0
xor ecx, ebp
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
pop ebx
call fcn.1024a596
mov esp, ebp
pop ebp
ret
push str.buffer_overflow_in_getpathp.cs_join__
push str.join
call sym.python310.dll__Py_FatalErrorFunc
int3