Function at 0x140051770
Capabilities:
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
lea rbp, [rsp - 0x398]
sub rsp, 0x498
mov rax, qword [0x1401f7280]
xor rax, rsp
mov qword [rbp + 0x370], rax
mov rax, qword [rbp + 0x3f8]
mov r14, qword [rbp + 0x3f0]
mov rbx, rcx
mov rcx, qword [0x1401fbba0]
mov r13, r8
mov rsi, r9
mov qword [rsp + 0x58], rdx
lea r8, [rsp + 0x70]
mov r9d, 0x40
mov edx, 0x4e73
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x40], rax
call qword [sym.imp.USER32.dll_LoadStringW]
lea r8, [0x1401878f8]
lea rdx, [rsp + 0x70]
mov rcx, r14
call fcn.1400f98c8
lea rdx, [0x140183378]
mov rcx, rbx
call fcn.1400fafe4
mov rdi, rax
test rax, rax
jne 0x140051839
mov rcx, qword [0x1401fbba0]
lea r9d, [rax + 0x40]
lea r8, [rsp + 0x70]
mov edx, 0x4e70
call qword [sym.imp.USER32.dll_LoadStringW]
lea rdx, [rsp + 0x70]
mov r8, rbx
mov rcx, r14
call fcn.1400f98c8
xor eax, eax
jmp 0x140051bf3
mov ebx, 1
lea rcx, [rsp + 0x60]
mov r9, rax
lea edx, [rbx + 5]
mov r8d, ebx
call fcn.1400fabdc
lea r8d, [rbx + 3]
lea rdx, str.GIF8
lea rcx, [rsp + 0x60]
call fcn.1400fe7f0
test eax, eax
je 0x140051879
mov rcx, rdi
call fcn.1400fa904
xor eax, eax
jmp 0x140051bf3
lea rcx, [rsp + 0x48]
mov r9, rdi
mov r8, rbx
mov edx, 2
call fcn.1400fabdc
lea rcx, [rsp + 0x4c]
mov r9, rdi
mov r8, rbx
mov edx, 2
call fcn.1400fabdc
lea rcx, [rsp + 0x34]
mov r9, rdi
mov r8, rbx
mov rdx, rbx
call fcn.1400fabdc
lea rcx, [rsp + 0x32]
mov r9, rdi
mov r8, rbx
mov rdx, rbx
call fcn.1400fabdc
lea rcx, [rsp + 0x31]
mov r9, rdi
mov r8, rbx
mov rdx, rbx
call fcn.1400fabdc
mov rcx, rdi
call fcn.1400fa96c
test eax, eax
jne 0x14005186a
mov rcx, rdi
call fcn.1400fa994
test eax, eax
jne 0x14005186a
mov qword [rsp + 0x490], r12
mov qword [rsp + 0x488], r15
movzx r15d, byte [rsp + 0x34]
mov r12d, r15d
and r12d, 7
inc r12d
mov r14d, r12d
mov dword [rsp + 0x3c], r12d
cmp r12d, ebx
je 0x14005193d
mov eax, 8
cmp r12d, 4
mov ecx, 4
cmovbe eax, ecx
mov r14d, eax
mov dword [rsp + 0x3c], eax
lea rcx, [rbp + 0x70]
xor edx, edx
mov r8d, 0x300
call fcn.1400f9ab0
test r15b, r15b
jns 0x14005197b
mov ecx, r12d
mov eax, ebx
mov r9, rdi
shl eax, cl
mov ecx, 0x100
mov r8, rbx
cmp eax, ecx
cmova eax, ecx
lea rcx, [rbp + 0x70]
lea edx, [rax + rax*2]
call fcn.1400fabdc
xor r15d, r15d
jmp 0x1400519ca
cmp r14d, ebx
jne 0x140051988
mov r8d, 0xff
jmp 0x140051998
mov r8d, ebx
mov eax, InitCommonControls
cmp r14d, 4
cmove r8d, eax
xor r15d, r15d
mov ecx, r14d
mov r9d, ebx
shl r9d, cl
mov edx, r15d
test r9d, r9d
je 0x1400519ca
lea rcx, [rbp + 0x72]
movzx eax, dl
inc edx
lea rcx, [rcx + 3]
imul r8b
mov byte [rcx - 5], al
mov byte [rcx - 4], al
mov byte [rcx - 3], al
cmp edx, r9d
jb 0x1400519b0
mov r14, qword [rsp + 0x40]
mov r12, qword [rsp + 0x490]
xor eax, eax
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rax
mov dword [rsi + 0x18], eax
movzx eax, byte [rsp + 0x32]
lea rcx, [rax + rax*2]
movzx eax, byte [rbp + rcx + 0x70]
mov byte [rsi], al
movzx eax, byte [rbp + rcx + 0x71]
mov byte [rsi + 1], al
movzx eax, byte [rbp + rcx + 0x72]
mov byte [rsi + 2], al
mov rax, qword [rsp + 0x58]
mov dword [r14], r15d
test rax, rax
je 0x140051a19
mov rdx, rax
jmp 0x140051a21
test r13, r13
je 0x140051a2c
mov rdx, r13
xor r8d, r8d
mov rcx, rdi
call fcn.1400fe870
mov rcx, rdi
call fcn.1400fa96c
test eax, eax
jne 0x140051be1
mov rcx, rdi
call fcn.1400fa994
test eax, eax
jne 0x140051be1
nop dword [rax]
lea rcx, [rsp + 0x31]
mov r9, rdi
mov r8, rbx
mov rdx, rbx
mov byte [rsp + 0x31], 0
call fcn.1400fabdc
mov rcx, rdi
call fcn.1400fa96c
test eax, eax
jne 0x140051bcb
mov rcx, rdi
call fcn.1400fa994
test eax, eax
jne 0x140051bcb
movzx eax, byte [rsp + 0x31]
cmp al, 0x21
je 0x140051aa2
cmp al, 0x2c
je 0x140051b86
cmp al, 0x3b
jne 0x140051a50
jmp 0x140051bcb
lea rcx, [rsp + 0x33]
mov r9, rdi
mov r8, rbx
mov rdx, rbx
call fcn.1400fabdc
cmp byte [rsp + 0x33], 0xf9
jne 0x140051b50
lea rcx, [rsp + 0x30]
mov r9, rdi
mov r8, rbx
mov rdx, rbx
call fcn.1400fabdc
lea rcx, [rsp + 0x30]
mov r9, rdi
mov r8, rbx
mov rdx, rbx
call fcn.1400fabdc
movzx ecx, byte [rsp + 0x30]
mov r9, rdi
mov eax, ecx
and ecx, ebx
mov r8, rbx
shr eax, 2
mov dword [rsi + 0xc], ecx
lea rcx, [rsp + 0x38]
and eax, 7
mov edx, 2
mov dword [rsi + 8], eax
call fcn.1400fabdc
movzx eax, word [rsp + 0x38]
lea rcx, [rsp + 0x30]
mov r9, rdi
mov r8, rbx
mov rdx, rbx
mov dword [rsi + 0x10], eax
call fcn.1400fabdc
cmp dword [rsi + 0xc], 0
movzx eax, byte [rsp + 0x30]
mov byte [rsi + 0x14], al
jne 0x140051a50
movzx eax, byte [rsp + 0x32]
mov byte [rsi + 0x14], al
jmp 0x140051a50
lea rcx, [rsp + 0x35]
mov r9, rdi
mov r8, rbx
mov rdx, rbx
call fcn.1400fabdc
test rax, rax
je 0x140051a50
movzx edx, byte [rsp + 0x35]
test edx, edx
je 0x140051a50
mov r8d, ebx
mov rcx, rdi
call fcn.1400fad50
jmp 0x140051b50
mov rax, qword [rsp + 0x50]
lea r8, [rbp + 0x70]
lea rdx, [rsp + 0x3c]
mov r9, rsi
mov rcx, rdi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
call fcn.140051c20
mov ecx, dword [rsp + 0x3c]
movzx edx, byte [rsi + 0x14]
mov r8d, ebx
mov qword [rsp + 0x40], rax
shl r8d, cl
mov r15, rax
cmp edx, r8d
jl 0x140051bcb
shl bl, cl
dec bl
mov byte [rsi + 0x14], bl
mov rcx, rdi
call fcn.1400fa904
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rax, r15
jmp 0x140051beb
mov rcx, rdi
call fcn.1400fa904
xor eax, eax
mov r15, qword [rsp + 0x488]
mov rcx, qword [rbp + 0x370]
xor rcx, rsp
call fcn.1400f9a80
add rsp, 0x498
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret