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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d9088
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x532d60]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x54], edx
mov esi, ecx
and dword [ebp - 0x20], 0xfffffe00
mov dword [ebp - 0x1c], 0
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x5c]
and eax, 0xffffff04
or eax, 0x104
mov dword [ebp - 0x5c], eax
mov eax, dword [0x538390]
mov dword [ebp - 0x58], 0
test al, 1
jne 0x4230ea
or eax, 1
push 0x4e75e0
mov dword [0x538390], eax
mov dword [0x538314], 0x51fae8
call fcn.004b8949
add esp, 4
mov ecx, dword [0x534374]
push 0xffffffffffffffff
mov eax, dword [ecx]
push str.success
call dword [eax + 0xc]
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x64]
push eax
push ecx
push str.error
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.0044d470
mov ecx, eax
call fcn.0044ca80
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 1
call fcn.0044c9c0
mov byte [ebp - 4], 3
mov al, byte [esi + 8]
mov dword [ebp - 0x18], 0
test al, al
je 0x423155
cmp al, 7
je 0x423155
push 0x42b
push str...CrossRiderGeneralJsonjson_value.cpp
push str.type___nullValue__type___objectValue
call fcn.004bac2c
add esp, 0xc
cmp byte [esi + 8], 0
jne 0x423162
mov ecx, 0x537e88
jmp 0x4231d9
mov dword [ebp - 0x5c], str.path
mov dword [ebp - 0x58], 0
mov edi, dword [esi]
lea eax, [ebp - 0x5c]
push eax
mov ecx, edi
call fcn.0044e110
mov ecx, dword [edi]
cmp eax, ecx
je 0x4231c1
mov esi, dword [eax + 0x10]
mov edx, str.path
jmp 0x423190
mov bl, byte [edx]
cmp bl, byte [esi]
jne 0x4231b0
test bl, bl
je 0x4231ac
mov bl, byte [edx + 1]
cmp bl, byte [esi + 1]
jne 0x4231b0
add edx, 2
add esi, 2
test bl, bl
jne 0x423190
xor edx, edx
jmp 0x4231b5
sbb edx, edx
or edx, 1
test edx, edx
sets dl
mov dword [ebp - 0x4c], eax
test dl, dl
je 0x4231c4
mov dword [ebp - 0x4c], ecx
lea eax, [ebp - 0x4c]
mov eax, dword [eax]
cmp eax, ecx
mov byte [ebp - 4], 3
mov ecx, 0x537e88
je 0x4231d9
lea ecx, [eax + 0x18]
sub esp, 0x18
push esp
call fcn.0044cb40
lea ecx, [ebp - 0x18]
call fcn.00433a00
add esp, 0x18
mov ecx, dword [0x537408]
mov eax, ecx
imul eax, ecx
imul eax, ecx
cdq
mov ecx, 0x15
idiv ecx
xor bl, bl
cmp edx, 0x13
jne 0x42322a
lea eax, [ecx + 0x5d]
mov esi, 0x89
test esi, esi
je 0x423223
cdq
idiv esi
mov ecx, esi
mov eax, ecx
mov esi, edx
test ecx, ecx
jne 0x423212
add eax, esi
mov dword [0x537408], eax
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x423245
test al, 0x10
movzx ebx, bl
mov eax, 1
cmovne ebx, eax
mov eax, dword [ebp - 0x5c]
and eax, 0xffffff05
or eax, 5
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], 0
mov byte [ebp - 0x64], bl
push ecx
push str.exist
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 6
call fcn.0044d470
lea ecx, [ebp - 0x64]
push ecx
mov ecx, eax
call fcn.0044ca80
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 5
call fcn.0044c9c0
mov esi, dword [0x537408]
mov eax, esi
imul eax, esi
imul eax, esi
cdq
mov ecx, 0x14
idiv ecx
cmp edx, 0xa
jne 0x4232fc
mov eax, 0xdd67c8a7
imul esi
add edx, esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x25
mov eax, esi
sub eax, ecx
xor edi, edi
cmp eax, 0xbf
je 0x4232f6
mov eax, esi
or eax, 0xffffff8a
add esi, eax
mov eax, esi
imul eax, esi
inc edi
cmp edi, eax
jg 0x4232f6
mov eax, 0xdd67c8a7
imul esi
add edx, esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x25
mov eax, esi
sub eax, ecx
cmp eax, 0xbf
jne 0x4232c4
mov dword [0x537408], edi
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
or edi, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x42331f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 1
jmp 0x423410
mov dword [ebp - 0x48], 0x51c0cc
mov dword [ebp - 0x30], 0xf
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x44], 0
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 0xe
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x18], esi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xf
call fcn.0044f670
mov edx, eax
mov byte [ebp - 4], 0x10
cmp dword [edx + 0x14], 0x10
jb 0x423466
mov edx, dword [edx]
sub esp, 0x18
mov ebx, esp
mov dword [ebx + 0x14], 0xf
mov dword [ebx + 0x10], 0
mov byte [ebx], 0
cmp byte [edx], 0
jne 0x423485
xor ecx, ecx
jmp 0x42349a
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x50], eax
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x423490
sub ecx, dword [ebp - 0x50]
push ecx
push edx
mov ecx, ebx
call fcn.004012e0
lea ecx, [ebp - 0x58]
call fcn.00433a00
add esp, 0x18
mov byte [ebp - 4], 0x11
mov edx, dword [eax]
lea ebx, [esi - 0x10]
lea ecx, [edx - 0x10]
cmp ecx, ebx
je 0x423502
cmp dword [ebx + 0xc], 0
lea esi, [ebx + 0xc]
jl 0x4234f3
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x4234f3
call fcn.00404b50
mov dword [ebp - 0x50], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4234eb
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x50]
lea esi, [eax + 0x10]
mov dword [ebp - 0x18], esi
jmp 0x423502
push dword [edx - 0xc]
lea ecx, [ebp - 0x18]
push edx
call fcn.00404a90
mov esi, dword [ebp - 0x18]
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x58]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x423522
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x68], 0x10
jb 0x423537
push dword [ebp - 0x7c]
call fcn.004b817c
add esp, 4
mov ebx, dword [ebp - 0x54]
mov eax, 8
mov word [ebx], ax
push dword [esi - 0xc]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test eax, eax
jne 0x423555
call fcn.0040caf0
add esi, 0xfffffff0
mov dword [ebx + 8], eax
mov byte [ebp - 4], 0xe
lea eax, [esi + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x423573
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x30], 0x10
mov dword [ebp - 0x48], 0x51c0cc
jb 0x42358b
push dword [ebp - 0x44]
call fcn.004b817c
add esp, 4
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x30], 0xf
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x44], 0
mov dword [ebp - 0x48], 0x51fca0
mov dword [ebp - 4], 0xffffffff
call fcn.0044c9c0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004b8181
mov esp, ebp
pop ebp
ret