Function at 0x1400457ec
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 [0x140252530]
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 0x14004583c
xor eax, eax
jmp 0x140045e5d
mov eax, r14d
cmp rdx, r14
setne al
cmp eax, r14d
jne 0x140045850
call fcn.14001505c
int3
add rcx, 0x98
call fcn.140094734
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.1400087d0
nop
mov rdi, qword [rsp + 0x50]
cmp dword [rdi - 0x10], r14d
jl 0x1400458a4
lea rdx, [0x1401bd9f0]
mov rcx, rdi
call fcn.140186eb0
cmp rax, r14
je 0x14004589f
mov rdi, qword [rsp + 0x50]
sub rax, rdi
sar rax, 1
cmp eax, 0xffffffff
jne 0x140045a0a
jmp 0x1400458a4
mov rdi, qword [rsp + 0x50]
cmp dword [rdi - 0x10], r14d
jl 0x1400458d9
lea rdx, [0x1401c7a24]
mov rcx, rdi
call fcn.140186eb0
cmp rax, r14
je 0x1400458d4
mov rdi, qword [rsp + 0x50]
sub rax, rdi
sar rax, 1
cmp eax, 0xffffffff
jne 0x140045a0a
jmp 0x1400458d9
mov rdi, qword [rsp + 0x50]
cmp dword [rdi - 0x10], r14d
jl 0x140045907
lea rdx, [0x1401c7a20]
mov rcx, rdi
call fcn.140186eb0
cmp rax, r14
je 0x140045907
mov rdi, qword [rsp + 0x50]
sub rax, rdi
sar rax, 1
cmp eax, 0xffffffff
jne 0x140045a0a
mov r13d, 0x104
mov r8d, r13d
lea rdx, [rsp + 0x910]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp eax, r14d
jbe 0x140045a05
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.140187cc4
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.140187cc4
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.140187b60
lea rcx, [rsp + 0x100]
call fcn.14018699c
mov r8d, eax
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x50]
call fcn.140008910
mov rdi, qword [rsp + 0x50]
jmp 0x140045a0a
mov rdi, qword [rsp + 0x50]
cmp r12d, r14d
jbe 0x140045a87
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 0x140045a82
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 0x140045a82
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
cmp eax, r14d
jg 0x140045a7b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140045e5d
mov rdi, qword [rsp + 0x50]
mov ebx, 0x2010
mov eax, 0x3010
cmp dword [rsi + 0x34], r14d
cmovne ebx, eax
call fcn.14005b520
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 0x140045aed
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
cmp eax, r14d
jg 0x140045ae6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140045e5d
lea r8, [rsp + 0xd0]
mov r12d, 0x20
mov edx, r12d
mov rcx, rax
call qword [sym.imp.GDI32.dll_GetObjectW]
cmp eax, r14d
jne 0x140045b48
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 0x140045b41
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140045e5d
mov dword [rsi + 0x18], 1
lea rcx, [rsi + 0xb0]
lea rdx, [rsp + 0x50]
call fcn.140008a90
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x140045b76
mov dword [rsi + 0x24], 1
movzx eax, word [rsp + 0xe2]
mov dword [rsi + 0xc], eax
cmp eax, 8
jle 0x140045dee
cmp eax, r12d
jge 0x140045dee
cmp qword [rsi + 0x98], r14
je 0x140045dee
lea rcx, [rsp + 0x58]
call fcn.140029c44
nop
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.14002a640
lea r8, [rsp + 0xb0]
mov edx, r12d
mov rcx, qword [rsi + 0x98]
call qword [sym.imp.GDI32.dll_GetObjectW]
cmp eax, r14d
jne 0x140045bec
lea rcx, [rsp + 0x58]
call fcn.14002a700
jmp 0x140045dee
mov rdx, qword [rsi + 0x98]
cmp rdx, r14
je 0x140045c08
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rbx, rax
jmp 0x140045c0b
mov rbx, r14
cmp rbx, r14
jne 0x140045c1f
lea rcx, [rsp + 0x58]
call fcn.14002a700
jmp 0x140045dee
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 0x140045c6e
mov rdx, rbx
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.GDI32.dll_SelectObject]
nop
lea rcx, [rsp + 0x58]
call fcn.14002a700
jmp 0x140045dee
lea rcx, [rsp + 0x78]
call fcn.140029c44
nop
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.14002a640
mov rdx, rdi
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0xa0], rax
cmp rax, r14
jne 0x140045ce1
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.14002a700
nop
lea rcx, [rsp + 0x58]
call fcn.14002a700
jmp 0x140045dee
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 0x140045d9b
mov edi, r14d
cmp r13d, r14d
jle 0x140045d8b
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 0x140045d5c
cmp dword [0x14024d69c], 0
jne 0x140045d5c
mov ecx, eax
call fcn.14003f3e8
jmp 0x140045d65
xor edx, edx
mov ecx, eax
call fcn.14003f338
cmp r14d, eax
je 0x140045d81
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 0x140045d28
xor r14d, r14d
inc r12d
cmp r12d, r15d
jl 0x140045d20
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.14002a700
nop
lea rcx, [rsp + 0x58]
call fcn.14002a700
mov r12d, 0x20
cmp word [rsp + 0xe2], r12w
jb 0x140045e08
mov edx, dword [rsi + 0x3c]
mov rcx, qword [rsi + 0x98]
call fcn.14003f960
mov rcx, rsi
call fcn.14003f2f8
lea rcx, [rsi + 0xa0]
call fcn.140094734
mov qword [rsi + 0xa0], r14
lea rcx, [rsi + 0xa8]
call fcn.140094734
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 0x140045e58
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.140184e60
mov rbx, qword [rsp + 0xb80]
add rsp, 0xb30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret