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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x548
mov rsi, rcx
mov rcx, rdx
mov rdi, rdx
call fcn.004b3330
test eax, eax
mov ebx, eax
js 0x4b02f5
lea eax, [rax + 1]
cmp word [rdi + rax*2], 0
jne 0x4b03b1
lea rbp, [rsp + 0x2e0]
mov rcx, rdi
mov qword [rsp + 0x80], 0xffffffffffffffff
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
mov qword [rsp + 0x80], rax
je 0x4b05b3
mov eax, dword [rsp + 0x2e0]
mov byte [rsi + 0x24], 0
lea rcx, [rsi + 0x28]
mov edx, dword [rsp + 0x300]
mov byte [rsi + 0x25], 0
mov dword [rsi + 0x20], eax
mov rax, qword [rsp + 0x2e4]
mov qword [rsi + 8], rax
mov rax, qword [rsp + 0x2ec]
mov qword [rsi + 0x10], rax
mov rax, qword [rsp + 0x2f4]
mov qword [rsi + 0x18], rax
mov eax, dword [rsp + 0x2fc]
shl rax, 0x20
add rax, rdx
mov qword [rsi], rax
lea rdx, [rbp + 0x2c]
call fcn.004780f0
mov ebx, 1
mov rcx, qword [rsp + 0x80]
cmp rcx, 0xffffffffffffffff
je 0x4b039b
call qword [sym.imp.KERNEL32.dll_FindClose]
mov eax, ebx
add rsp, 0x548
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rbp, [rsp + 0x20]
movsxd r13, ebx
lea rdx, [rdi + r13*2]
mov rcx, rbp
call fcn.00477fd0
lea r12, [rsp + 0x30]
mov rdx, rdi
mov rcx, r12
call fcn.00477fd0
cmp ebx, dword [rsp + 0x38]
jae 0x4b03ec
mov rax, qword [rsp + 0x30]
xor r10d, r10d
mov dword [rsp + 0x38], ebx
mov word [rax + r13*2], r10w
mov eax, dword [rsp + 0x28]
cmp eax, 6
ja 0x4b0590
lea rdx, [0x008113f4]
mov rcx, rbp
call fcn.00478460
mov rcx, qword [rsp + 0x30]
call fcn.004b31a0
test al, al
jne 0x4b0452
mov rdx, qword [rsp + 0x30]
mov rcx, rsi
call fcn.004b02c0
test al, al
jne 0x4b09d0
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x4b043a
call fcn.007da030
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x4b02f5
call fcn.007da030
jmp 0x4b02f5
cmp ebx, 2
je 0x4b0974
cmp ebx, 3
jne 0x4b0416
mov rdx, qword [rsp + 0x30]
cmp word [rdx + 4], 0x5c
jne 0x4b041b
mov rax, qword [rsi + 0x28]
xor ecx, ecx
mov dword [rsi + 0xc], 0
mov dword [rsi + 8], 0
mov dword [rsi + 0x14], 0
mov dword [rsi + 0x10], 0
mov dword [rsi + 0x1c], 0
mov dword [rsi + 0x18], 0
mov byte [rsi + 0x24], 0
mov byte [rsi + 0x25], 0
mov dword [rsi + 0x30], 0
mov word [rax], cx
xor eax, eax
lea r15, [rsp + 0x40]
mov dword [rsi + 0x20], eax
mov rdx, r12
mov qword [rsi], 0
lea rcx, [r15 + 8]
mov qword [rsp + 0x40], 0xffffffffffffffff
call fcn.00478040
lea r13, [rsp + 0x2e0]
lea rbp, [rsp + 0x80]
lea rdi, [rsp + 0x60]
lea r14, [r13 + 8]
lea r12, [rbp + 8]
mov rcx, rdi
call fcn.00477f50
mov rcx, qword [rsp + 0x40]
cmp rcx, 0xffffffffffffffff
je 0x4b0910
mov rax, qword [0x008de078]
test rax, rax
je 0x4b0964
mov rdx, rbp
call rax
test eax, eax
jne 0x4b08c2
mov rbx, qword [sym.imp.KERNEL32.dll_GetLastError]
call rbx
cmp eax, 0x26
je 0x4b0845
xor ebx, ebx
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x4b0548
call fcn.007da030
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x4b0557
call fcn.007da030
mov rcx, qword [rsp + 0x40]
cmp rcx, 0xffffffffffffffff
je 0x4b0568
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x4b0577
call fcn.007da030
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x4b039b
call fcn.007da030
jmp 0x4b039b
mov rdx, qword [rsp + 0x20]
lea rcx, [rdx + rax*2 - 0xc]
lea rdx, [0x008113e8]
call fcn.00475fd0
test al, al
je 0x4b03f9
jmp 0x4b0408
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
mov r13d, eax
je 0x4b0600
cmp eax, 0x35
je 0x4b0600
cmp eax, 0x43
sete dl
cmp eax, 0x7b
sete al
or dl, al
jne 0x4b0600
cmp r13d, 0xa1
je 0x4b0600
xor ebx, ebx
mov rcx, qword [rsp + 0x80]
cmp rcx, 0xffffffffffffffff
jne 0x4b0395
jmp 0x4b039b
mov rcx, rdi
call fcn.004b31c0
cmp al, 1
sbb r14, r14
and r14, 0xfffffffffffffff8
add r14, 0xe
cmp al, 1
movzx eax, word [rdi]
sbb rcx, rcx
not rcx
and ecx, 8
cmp ax, 0x5c
sete bl
cmp ax, 0x2f
sete al
or bl, al
je 0x4b0640
cmp word [rdi + 2], 0
je 0x4b0855
lea r12, [rdi + rcx]
mov rcx, r12
call fcn.004b2ac0
test al, al
mov ebx, eax
jne 0x4b07b5
mov rcx, rdi
call fcn.004b2e80
test eax, eax
je 0x4b05df
mov eax, eax
lea rbx, [rdi + rax*2]
cmp word [rbx], 0
je 0x4b05df
mov rcx, rbx
call fcn.004b2a10
test eax, eax
jns 0x4b05df
mov rdx, rdi
mov rcx, rbp
call fcn.00477fd0
mov eax, dword [rsp + 0x2e8]
cmp dword [rsp + 0x2ec], eax
je 0x4b0b1a
mov eax, dword [rsp + 0x2e8]
mov r14, qword [rsp + 0x2e0]
lea edx, [rax + 1]
cmp edx, dword [rsp + 0x2ec]
mov word [r14 + rax*2], 0x5c
mov eax, edx
mov word [r14 + rax*2], 0
mov dword [rsp + 0x2e8], edx
je 0x4b0afd
mov eax, dword [rsp + 0x2e8]
mov rcx, qword [rsp + 0x80]
lea edx, [rax + 1]
mov word [r14 + rax*2], 0x2a
cmp rcx, 0xffffffffffffffff
mov eax, edx
mov word [r14 + rax*2], 0
mov dword [rsp + 0x2e8], edx
je 0x4b0724
call qword [sym.imp.KERNEL32.dll_FindClose]
test eax, eax
je 0x4b0a32
mov qword [rsp + 0x80], 0xffffffffffffffff
lea r12, [rsp + 0x80]
mov r8, rsi
mov rdx, r14
mov rcx, r12
call fcn.004afea0
test al, al
mov ebp, eax
je 0x4b0a32
mov rcx, qword [rsi + 0x28]
lea rdx, [0x008113f0]
call sub.msvcrt.dll_wcscmp
test eax, eax
je 0x4b0aef
lea r12, [rsp + 0x80]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4b0aa4
test bpl, bpl
jne 0x4b0a39
test al, 0x10
jne 0x4b0a39
lea r12, [rsp + 0x80]
mov ecx, r13d
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, qword [rsp + 0x2e0]
test rcx, rcx
je 0x4b05df
call fcn.007da030
xor ebx, ebx
jmp 0x4b05e1
cmp word [rdi + r14], 0
jne 0x4b0656
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4b05df
test al, 0x10
je 0x4b05df
mov qword [rsi], 0
lea rcx, [rsi + 0x28]
mov rdx, r12
mov dword [rsi + 0xc], 0
mov dword [rsi + 8], 0
mov dword [rsi + 0x14], 0
mov dword [rsi + 0x10], 0
mov dword [rsi + 0x1c], 0
mov dword [rsi + 0x18], 0
mov byte [rsi + 0x24], 0
mov byte [rsi + 0x25], 0
mov dword [rsi + 0x20], eax
call fcn.004780f0
cmp dword [rsi + 0x30], 2
jbe 0x4b0387
mov rax, qword [rsi + 0x28]
xor r8d, r8d
mov dword [rsi + 0x30], 2
mov word [rax + 4], r8w
jmp 0x4b0387
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x4b0537
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4b05df
test al, 0x10
je 0x4b05df
mov rdx, qword [rsi + 0x28]
xor r9d, r9d
mov qword [rsi], 0
mov dword [rsi + 0xc], 0
mov dword [rsi + 8], 0
mov dword [rsi + 0x14], 0
mov dword [rsi + 0x10], 0
mov dword [rsi + 0x1c], 0
mov dword [rsi + 0x18], 0
mov byte [rsi + 0x24], 0
mov byte [rsi + 0x25], 0
mov dword [rsi + 0x30], 0
mov word [rdx], r9w
mov dword [rsi + 0x20], eax
jmp 0x4b0387
mov rax, qword [rsp + 0x80]
mov rdx, r12
mov rcx, rdi
mov qword [rsp + 0x70], rax
call fcn.004780f0
mov rdx, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x60]
call fcn.00475d50
test al, al
mov ebx, eax
jne 0x4b09e0
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x4b04f1
call fcn.007da030
jmp 0x4b04f1
cmp qword [0x008de080], 0
je 0x4b0964
mov rbx, qword [rsp + 0x48]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor r9d, r9d
mov r8, r13
xor edx, edx
mov rcx, rbx
call qword [0x008de080]
cmp rax, 0xffffffffffffffff
mov qword [rsp + 0x40], rax
je 0x4b0a0f
mov rax, qword [rsp + 0x2e0]
mov rdx, r14
mov rcx, rdi
mov qword [rsp + 0x70], rax
call fcn.004780f0
jmp 0x4b08da
mov ecx, 0x78
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x4b0525
mov rax, qword [rsi + 0x28]
xor edx, edx
mov qword [rsi], 0
mov dword [rsi + 0xc], 0
lea rcx, [rsi + 0x28]
mov dword [rsi + 8], 0
mov dword [rsi + 0x14], 0
mov dword [rsi + 0x10], 0
mov dword [rsi + 0x1c], 0
mov dword [rsi + 0x18], 0
mov dword [rsi + 0x20], 0
mov byte [rsi + 0x24], 0
mov byte [rsi + 0x25], 0
mov dword [rsi + 0x30], 0
mov word [rax], dx
mov rdx, r12
call fcn.00478190
mov eax, dword [rsi + 0x20]
and eax, 0xfffffbef
jmp 0x4b04b0
mov eax, dword [rsp + 0x68]
cmp eax, 7
jbe 0x4b09f2
add eax, 0xfffffffa
jb 0x4b0ba1
lea rcx, [rsi + 0x28]
mov rdx, rdi
call fcn.00478550
mov rax, qword [rsp + 0x70]
mov byte [rsi + 0x24], 1
mov qword [rsi], rax
jmp 0x4b0539
mov rbx, qword [sym.imp.KERNEL32.dll_GetLastError]
call rbx
cmp eax, 0x26
je 0x4b052c
cmp qword [rsp + 0x40], 0xffffffffffffffff
je 0x4b052c
jmp 0x4b0947
xor ebp, ebp
jmp 0x4b075c
mov qword [rsi], 0
mov dword [rsi + 0xc], 0
mov dword [rsi + 8], 0
mov dword [rsi + 0x14], 0
mov dword [rsi + 0x10], 0
mov dword [rsi + 0x1c], 0
mov dword [rsi + 0x18], 0
mov byte [rsi + 0x24], 0
mov byte [rsi + 0x25], 0
mov dword [rsi + 0x20], eax
lea rcx, [rsi + 0x28]
mov rdx, rbx
lea r12, [rsp + 0x80]
call fcn.004780f0
mov rcx, qword [rsp + 0x2e0]
test rcx, rcx
je 0x4b0382
call fcn.007da030
jmp 0x4b0382
test bpl, bpl
je 0x4b0787
mov qword [rsi], 0
mov dword [rsi + 0xc], 0
mov dword [rsi + 8], 0
mov dword [rsi + 0x14], 0
mov dword [rsi + 0x10], 0
mov dword [rsi + 0x1c], 0
mov dword [rsi + 0x18], 0
mov byte [rsi + 0x24], 0
mov byte [rsi + 0x25], 0
mov dword [rsi + 0x20], 0x10
jmp 0x4b0a75
lea rcx, [rsi + 0x28]
mov rdx, rbx
call fcn.004780f0
jmp 0x4b0a89
lea r12, [rsp + 0x80]
mov rcx, rbp
call fcn.00477b00
mov r14, qword [rsp + 0x2e0]
jmp 0x4b06db
lea r12, [rsp + 0x80]
mov rcx, rbp
call fcn.00477b00
jmp 0x4b06a5
mov rdx, qword [rsp + 0x60]
mov dword [rsp + 0x68], eax
mov eax, eax
mov word [rdx + rax*2], 0
jmp 0x4b09f2