Function at 0x41b800
Capabilities:
Get file size
Read file on windows

Disassembly:
mov rax, rsp
sub rsp, 0x1e8
mov qword [rsp + 0x98], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov qword [rax - 8], rdi
mov qword [rax - 0x10], r12
mov qword [rax - 0x18], r13
mov qword [rax - 0x20], r14
mov qword [rax - 0x28], r15
mov rax, qword [0x0046d048]
mov qword [rsp + 0x1b0], rax
mov r15, rcx
call fcn.00416050
mov rcx, r15
call fcn.00416420
mov r8d, 0x104
lea rdx, [rsp + 0xa0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov rax, qword [r15 + 0x28]
xor edx, edx
lea rcx, [r15 + 0x28]
call qword [rax + 8]
lea rdx, [rsp + 0xa0]
mov qword [rsp + 0x70], rdx
lea rax, [0x004555b0]
mov qword [rsp + 0x68], rax
xor r12d, r12d
mov edi, r12d
mov dword [rsp + 0x78], r12d
cmp byte [rsp + 0xa0], dil
je 0x41b8c3
nop
nop
nop
inc edi
movsxd rax, edi
cmp byte [rsp + rax + 0xa0], r12b
jne 0x41b8b0
mov dword [rsp + 0x78], edi
movsxd rbx, dword [r15 + 0x38]
mov eax, dword [r15 + 0x38]
lea edx, [rdi + rax]
mov rax, qword [r15 + 0x28]
lea rcx, [r15 + 0x28]
call qword [rax + 8]
cmp ebx, ebx
jge 0x41b8f6
mov rdx, qword [r15 + 0x30]
add rdx, rbx
movsxd rcx, edi
add rcx, rdx
mov eax, ebx
sub eax, ebx
movsxd r8, eax
call fcn.00429770
movsxd r8, edi
mov rcx, rbx
add rcx, qword [r15 + 0x30]
lea rdx, [rsp + 0xa0]
call fcn.00429770
nop
mov r8d, dword [r15 + 0x38]
dec r8d
movsxd rdi, r8d
js 0x41b946
mov r9, qword [r15 + 0x30]
nop
movzx edx, byte [r9 + rdi]
mov al, 0x2f
lea rcx, [0x00455fe4]
nop
cmp al, dl
je 0x41b94c
inc rcx
movzx eax, byte [rcx]
test al, al
jne 0x41b930
dec r8d
dec rdi
jns 0x41b920
mov r8d, 0xffffffff
inc r8d
lea rdx, [rsp + 0x40]
lea rcx, [r15 + 0x28]
call fcn.00402910
mov rdi, rax
mov rax, qword [r15 + 0x48]
xor edx, edx
lea rcx, [r15 + 0x48]
call qword [rax + 8]
movsxd rsi, dword [rdi + 0x10]
mov rbp, qword [rdi + 8]
movsxd rdi, dword [r15 + 0x58]
mov eax, dword [r15 + 0x58]
lea edx, [rsi + rax]
mov rax, qword [r15 + 0x48]
lea rcx, [r15 + 0x48]
call qword [rax + 8]
cmp edi, edi
jge 0x41b9a6
mov rdx, qword [r15 + 0x50]
add rdx, rdi
lea rcx, [rdx + rsi]
mov eax, edi
sub eax, edi
movsxd r8, eax
call fcn.00429770
mov r8, rsi
mov rcx, rdi
add rcx, qword [r15 + 0x50]
mov rdx, rbp
call fcn.00429770
nop
lea rax, [0x004555a0]
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x48]
xor esi, esi
mov qword [rsp + 0x48], rsi
mov dword [rsp + 0x50], esi
mov dword [rsp + 0x58], esi
test rcx, rcx
je 0x41b9e3
call fcn.00429ab0
xor eax, eax
mov rcx, 0xffffffffffffffff
lea rdi, [rsp + 0xa0]
repne scasb al, byte [rdi]
not rcx
lea rbx, [rsp + rcx + 0x9f]
lea edx, [rax + 0x2e]
lea rcx, [rsp + 0xa0]
call fcn.0042d880
mov rdi, rax
mov edx, 0x2f
lea rcx, [rsp + 0xa0]
call fcn.0042d880
test rdi, rdi
je 0x41ba35
test rax, rax
je 0x41ba38
cmp rax, rdi
jbe 0x41ba38
mov rdi, rbx
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], rdi
mov r13d, esi
lea rax, str..cfg
mov qword [rsp + 0x68], rax
lea rax, str..config
mov qword [rsp + 0x70], rax
lea r12, [rsp + 0x88]
nop
nop
mov edi, esi
mov rbp, qword [r12]
lea rbx, [rsp + 0x68]
nop
nop
mov rcx, qword [rbx]
mov rdx, rbp
sub rdx, rcx
nop
nop
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
inc rcx
test al, al
jne 0x41ba90
mov edx, 4
lea rcx, [rsp + 0xa0]
call fcn.00452080
lea r14, [0x004555d8]
test eax, eax
jne 0x41baf4
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [rax + 3]
lea rcx, [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x41bb15
xor esi, esi
inc edi
add rbx, 8
cmp edi, 2
jb 0x41ba80
inc r13d
add r12, 8
cmp r13d, 2
jae 0x41bc2b
jmp 0x41ba70
xor r12d, r12d
mov qword [rsp + 0x48], r12
mov dword [rsp + 0x50], r12d
lea r13, [0x004555a0]
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x58], r12d
xor edx, edx
lea rcx, [rsp + 0x40]
call qword [0x004555a8]
nop
mov qword [rsp + 0x40], r14
movsxd rdi, dword [rsp + 0x50]
mov edx, edi
lea rcx, [rsp + 0x40]
call qword [0x004555e0]
cmp edi, edi
jge 0x41bb74
mov rcx, qword [rsp + 0x48]
add rcx, rdi
mov eax, edi
sub eax, edi
movsxd r8, eax
mov rdx, rcx
call fcn.00429770
nop
lea rbp, [0x00455668]
mov qword [rsp + 0x40], rbp
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
movsxd rdi, eax
movsxd rbx, dword [rsp + 0x50]
lea edx, [rbx + rdi]
lea rcx, [rsp + 0x40]
mov rax, qword [rsp + 0x40]
call qword [rax + 8]
cmp ebx, ebx
jge 0x41bbc3
mov rax, qword [rsp + 0x48]
lea rdx, [rax + rbx]
lea rcx, [rax + rdi]
add rcx, rbx
mov eax, ebx
sub eax, ebx
movsxd r8, eax
call fcn.00429770
mov rdi, rbx
add rdi, qword [rsp + 0x48]
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r8d, eax
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x60]
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rsp + 0x40]
mov rcx, r15
call fcn.00417b30
nop
mov qword [rsp + 0x40], r13
mov rcx, qword [rsp + 0x48]
xor esi, esi
mov qword [rsp + 0x48], rsi
mov dword [rsp + 0x50], esi
mov dword [rsp + 0x58], esi
test rcx, rcx
je 0x41bc39
call fcn.00429ab0
jmp 0x41bc39
lea rbp, [0x00455668]
lea r13, [0x004555a0]
movsxd rdi, dword [r15 + 0x10]
test edi, edi
jle 0x41bc79
lea edx, [rdi + 2]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 8]
cmp edi, edi
jge 0x41bc68
mov rdx, qword [r15 + 8]
add rdx, rdi
lea rcx, [rdx + 2]
mov eax, edi
sub eax, edi
movsxd r8, eax
call fcn.00429770
mov rcx, rdi
add rcx, qword [r15 + 8]
movzx eax, word [0x00456cf0]
mov word [rcx], ax
mov eax, dword [r15 + 0x10]
mov dword [r15 + 0x20], eax
mov rcx, r15
call fcn.0041a320
mov qword [rsp + 0x48], rsi
mov dword [rsp + 0x50], esi
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x58], esi
xor edx, edx
lea rcx, [rsp + 0x40]
call qword [0x004555a8]
nop
mov qword [rsp + 0x40], r14
mov ebx, esi
lea rax, str.disableexternal
nop
nop
nop
inc ebx
inc rax
cmp byte [rax], 0
jne 0x41bcc0
movsxd rsi, dword [rsp + 0x50]
lea edx, [rsi + rbx]
lea rcx, [rsp + 0x40]
call qword [0x004555e0]
cmp esi, esi
jge 0x41bd02
mov rax, qword [rsp + 0x48]
lea rdx, [rax + rsi]
movsxd rdi, ebx
add rdi, rax
add rdi, rsi
mov eax, esi
sub eax, esi
movsxd r8, eax
mov rcx, rdi
call fcn.00429770
movsxd r8, ebx
mov rcx, rsi
add rcx, qword [rsp + 0x48]
lea rdx, str.disableexternal
call fcn.00429770
nop
mov qword [rsp + 0x40], rbp
mov dword [rsp + 0x20], 1
mov r9d, 1
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.00403240
mov r14, rax
xor r12d, r12d
mov esi, r12d
lea rdx, str.true
nop
inc esi
movsxd rcx, esi
cmp byte [rcx + rdx], r12b
jne 0x41bd50
mov ecx, dword [rax + 0x10]
mov eax, esi
cmp ecx, esi
cmovl eax, ecx
mov ebp, r12d
mov rbx, r12
movsxd r13, eax
test eax, eax
jle 0x41bdbe
nop
nop
nop
nop
movzx ecx, byte [rbx + rdx]
mov rax, qword [r14 + 8]
movzx r12d, byte [rbx + rax]
cmp r12b, cl
je 0x41bdb0
movsx ecx, cl
call fcn.00429c10
mov edi, eax
movsx ecx, r12b
call fcn.00429c10
cmp eax, edi
jne 0x41bdba
lea rdx, str.true
inc ebp
inc rbx
cmp rbx, r13
jl 0x41bd80
test ebp, ebp
js 0x41bdd1
cmp ebp, dword [r14 + 0x10]
jge 0x41bdd1
movsxd rcx, ebp
mov rax, qword [r14 + 8]
movzx ecx, byte [rcx + rax]
jmp 0x41bdd3
xor cl, cl
test ebp, ebp
js 0x41bdeb
cmp ebp, esi
jge 0x41bdeb
movsxd rax, ebp
lea rdx, str.true
movzx edx, byte [rax + rdx]
jmp 0x41bded
xor dl, dl
movsx ecx, cl
movsx eax, dl
sub ecx, eax
sete dil
lea rsi, [0x004555a0]
mov qword [rsp + 0x68], rsi
mov rcx, qword [rsp + 0x70]
xor ebx, ebx
mov qword [rsp + 0x70], rbx
mov dword [rsp + 0x78], ebx
mov dword [rsp + 0x80], ebx
test rcx, rcx
je 0x41be26
call fcn.00429ab0
lea rax, [0x00455570]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x40], rsi
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x48], rbx
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x58], ebx
test rcx, rcx
je 0x41be53
call fcn.00429ab0
test dil, dil
je 0x41be9a
movsxd rdi, dword [r15 + 0x20]
mov eax, dword [r15 + 0x10]
test eax, eax
jle 0x41be96
cmp edi, eax
jl 0x41be75
mov rax, qword [r15]
xor edx, edx
mov rcx, r15
call qword [rax + 8]
jmp 0x41be96
mov rcx, qword [r15 + 8]
sub eax, edi
movsxd r8, eax
lea rdx, [rcx + rdi]
call fcn.00429770
mov rax, qword [r15]
mov edx, dword [r15 + 0x10]
sub edx, edi
mov rcx, r15
call qword [rax + 8]
mov dword [r15 + 0x20], ebx
mov rcx, qword [rsp + 0x1b0]
call fcn.004541d0
mov rbx, qword [rsp + 0x1f8]
mov rbp, qword [rsp + 0x200]
mov rsi, qword [rsp + 0x208]
mov rdi, qword [rsp + 0x1e0]
mov r12, qword [rsp + 0x1d8]
mov r13, qword [rsp + 0x1d0]
mov r14, qword [rsp + 0x1c8]
mov r15, qword [rsp + 0x1c0]
add rsp, 0x1e8
ret