Function at 0x140042a14
Capabilities:
Get file attributes
Get file size

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb30
mov qword [rsp + 0xa8], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rax, qword [0x14024f530]
xor rax, rsp
mov qword [rsp + 0xb20], rax
mov r12d, r8d
mov rbx, rdx
mov rsi, rcx
xor r14d, r14d
cmp dword [rcx + 0x28], r14d
je 0x140042a64
xor eax, eax
jmp 0x140043085
mov eax, r14d
cmp rdx, r14
setne al
cmp eax, r14d
jne 0x140042a78
call fcn.1400124d4
int3
add rcx, 0x98
call fcn.1400915b4
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.140005e60
nop
mov rdi, qword [rsp + 0x50]
cmp dword [rdi - 0x10], r14d
jl 0x140042acc
lea rdx, [0x1401baa10]
mov rcx, rdi
call fcn.140184240
cmp rax, r14
je 0x140042ac7
mov rdi, qword [rsp + 0x50]
sub rax, rdi
sar rax, 1
cmp eax, 0xffffffff
jne 0x140042c32
jmp 0x140042acc
mov rdi, qword [rsp + 0x50]
cmp dword [rdi - 0x10], r14d
jl 0x140042b01
lea rdx, [0x1401c4a94]
mov rcx, rdi
call fcn.140184240
cmp rax, r14
je 0x140042afc
mov rdi, qword [rsp + 0x50]
sub rax, rdi
sar rax, 1
cmp eax, 0xffffffff
jne 0x140042c32
jmp 0x140042b01
mov rdi, qword [rsp + 0x50]
cmp dword [rdi - 0x10], r14d
jl 0x140042b2f
lea rdx, [0x1401c4a90]
mov rcx, rdi
call fcn.140184240
cmp rax, r14
je 0x140042b2f
mov rdi, qword [rsp + 0x50]
sub rax, rdi
sar rax, 1
cmp eax, 0xffffffff
jne 0x140042c32
mov r13d, 0x104
mov r8d, r13d
lea rdx, [rsp + 0x910]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp eax, r14d
jbe 0x140042c2d
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
lea edi, [r13 - 4]
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x710]
mov r8d, 3
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x910]
call fcn.140185054
mov qword [rsp + 0x40], rdi
lea rax, [rsp + 0x510]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rdi
lea rax, [rsp + 0x310]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.140185054
lea r11, [rsp + 0x510]
mov qword [rsp + 0x28], r11
lea rax, [rsp + 0x310]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x710]
lea r8, [rsp + 0xf0]
mov rdx, r13
lea rcx, [rsp + 0x100]
call fcn.140184ef0
lea rcx, [rsp + 0x100]
call fcn.140183d38
mov r8d, eax
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x50]
call fcn.140005fa0
mov rdi, qword [rsp + 0x50]
jmp 0x140042c32
mov rdi, qword [rsp + 0x50]
cmp r12d, r14d
jbe 0x140042caf
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], 4
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140042caa
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebx, r12d
jbe 0x140042caa
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
cmp eax, r14d
jg 0x140042ca3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140043085
mov rdi, qword [rsp + 0x50]
mov ebx, 0x2010
mov eax, 0x3010
cmp dword [rsi + 0x34], r14d
cmovne ebx, eax
call fcn.140058530
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], r14d
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, qword [rax + 0x10]
call qword [sym.imp.USER32.dll_LoadImageW]
mov qword [rsi + 0x98], rax
cmp rax, r14
jne 0x140042d15
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
cmp eax, r14d
jg 0x140042d0e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140043085
lea r8, [rsp + 0xd0]
mov r12d, 0x20
mov edx, r12d
mov rcx, rax
call qword [sym.imp.GDI32.dll_GetObjectW]
cmp eax, r14d
jne 0x140042d70
mov rcx, qword [rsi + 0x98]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov qword [rsi + 0x98], r14
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
cmp eax, r14d
jg 0x140042d69
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140043085
mov dword [rsi + 0x18], 1
lea rcx, [rsi + 0xb0]
lea rdx, [rsp + 0x50]
call fcn.140006120
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x140042d9e
mov dword [rsi + 0x24], 1
movzx eax, word [rsp + 0xe2]
mov dword [rsi + 0xc], eax
cmp eax, 8
jle 0x140043016
cmp eax, r12d
jge 0x140043016
cmp qword [rsi + 0x98], r14
je 0x140043016
lea rcx, [rsp + 0x58]
call fcn.140026dc0
nop
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400277bc
lea r8, [rsp + 0xb0]
mov edx, r12d
mov rcx, qword [rsi + 0x98]
call qword [sym.imp.GDI32.dll_GetObjectW]
cmp eax, r14d
jne 0x140042e14
lea rcx, [rsp + 0x58]
call fcn.14002787c
jmp 0x140043016
mov rdx, qword [rsi + 0x98]
cmp rdx, r14
je 0x140042e30
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rbx, rax
jmp 0x140042e33
mov rbx, r14
cmp rbx, r14
jne 0x140042e47
lea rcx, [rsp + 0x58]
call fcn.14002787c
jmp 0x140043016
mov r15d, dword [rsp + 0xb4]
mov r13d, dword [rsp + 0xb8]
mov r8d, r13d
mov edx, r15d
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rdi, rax
mov qword [rsp + 0x98], rax
cmp rax, r14
jne 0x140042e96
mov rdx, rbx
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.GDI32.dll_SelectObject]
nop
lea rcx, [rsp + 0x58]
call fcn.14002787c
jmp 0x140043016
lea rcx, [rsp + 0x78]
call fcn.140026dc0
nop
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.1400277bc
mov rdx, rdi
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0xa0], rax
cmp rax, r14
jne 0x140042f09
mov rdx, rbx
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteObject]
nop
lea rcx, [rsp + 0x78]
call fcn.14002787c
nop
lea rcx, [rsp + 0x58]
call fcn.14002787c
jmp 0x140043016
mov dword [rsp + 0x40], 0xcc0020
mov dword [rsp + 0x38], r14d
mov dword [rsp + 0x30], r14d
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
mov r9d, r15d
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.GDI32.dll_BitBlt]
mov r12d, r14d
cmp r15d, r14d
jle 0x140042fc3
mov edi, r14d
cmp r13d, r14d
jle 0x140042fb3
mov r8d, edi
mov edx, r12d
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.GDI32.dll_GetPixel]
mov r14d, eax
cmp word [rsp + 0xc2], 0x18
jne 0x140042f84
cmp dword [0x14024a69c], 0
jne 0x140042f84
mov ecx, eax
call fcn.14003c600
jmp 0x140042f8d
xor edx, edx
mov ecx, eax
call fcn.14003c550
cmp r14d, eax
je 0x140042fa9
mov r9d, eax
mov r8d, edi
mov edx, r12d
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.GDI32.dll_SetPixel]
inc edi
cmp edi, r13d
jl 0x140042f50
xor r14d, r14d
inc r12d
cmp r12d, r15d
jl 0x140042f48
mov rdi, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, rbx
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rsi + 0x98]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov qword [rsi + 0x98], rdi
lea rcx, [rsp + 0x78]
call fcn.14002787c
nop
lea rcx, [rsp + 0x58]
call fcn.14002787c
mov r12d, 0x20
cmp word [rsp + 0xe2], r12w
jb 0x140043030
mov edx, dword [rsi + 0x3c]
mov rcx, qword [rsi + 0x98]
call fcn.14003cb78
mov rcx, rsi
call fcn.14003c510
lea rcx, [rsi + 0xa0]
call fcn.1400915b4
mov qword [rsi + 0xa0], r14
lea rcx, [rsi + 0xa8]
call fcn.1400915b4
mov qword [rsi + 0xa8], r14
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
or ecx, 0xffffffff
lock xadd dword [rdx + 0x10], ecx
dec ecx
cmp ecx, r14d
jg 0x140043080
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, 1
mov rcx, qword [rsp + 0xb20]
xor rcx, rsp
call fcn.140182230
mov rbx, qword [rsp + 0xb80]
add rsp, 0xb30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret