Function at 0x140087544
Capabilities:
Extract resource via kernel32 functions
Get file size
Read file on windows

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x6f8]
sub rsp, 0x7d0
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x140160188]
xor rax, rsp
mov qword [rbp + 0x6c0], rax
mov rbx, rcx
lea rcx, [rbp + 0x1a0]
call fcn.14006a3e0
nop
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
lea rcx, [rbp + 0x1a0]
call fcn.14006f350
lea rdx, [rbp + 0x2b0]
lea rcx, [rbp + 0x80]
call fcn.1400751c0
nop
xor edi, edi
mov esi, edi
mov r14d, edi
call fcn.14006c420
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.1400751c0
nop
call fcn.14006c428
mov rcx, rax
call fcn.140075ca8
mov r13d, 0x80
lea r12d, [rdi + 1]
test al, al
je 0x1400876aa
lea rdx, [rbp + 0x80]
lea rcx, [rsp + 0x60]
call fcn.1400754d8
lea rcx, [rsp + 0x60]
call fcn.140075484
mov rcx, rax
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov r8d, r12d
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x14008764f
lea rcx, [rsp + 0x60]
call fcn.14007532c
jmp 0x14008781f
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r14d, eax
test eax, eax
je 0x140087640
mov dword [rsp + 0x40], edi
mov ecx, r14d
call fcn.1400cf2d8
mov rsi, rax
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x40]
mov r8d, r14d
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [rsp + 0x40], r14d
je 0x14008780c
mov rcx, rsi
call fcn.1400cea54
mov rsi, rdi
jmp 0x140087640
call fcn.14006c428
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.1400754d8
call fcn.14006c75c
test al, al
je 0x1400876cf
call fcn.14006c430
mov rbx, rax
jmp 0x14008772f
call fcn.14006c438
mov rdx, rax
lea rcx, [rbp + 0x110]
call fcn.1400751c0
nop
lea rcx, [rbp + 0x110]
call fcn.140075484
mov rcx, rax
xor edx, edx
call fcn.140072018
mov r15, rax
lea rcx, [rsp + 0x60]
call fcn.140075484
mov rcx, rax
mov rdx, r15
call fcn.1400795ac
mov rbx, rax
test r15, r15
je 0x140087723
mov rcx, r15
call fcn.1400cea54
nop
lea rcx, [rbp + 0x110]
call fcn.14007532c
test rbx, rbx
je 0x140087640
mov dword [rsp + 0x44], edi
lea rdx, [rbp + 0x80]
lea rcx, [rbp - 0x10]
call fcn.1400751c0
nop
lea r8, [0x14012b634]
lea rdx, [0x14012af90]
lea rcx, [rbp - 0x10]
call fcn.140075f24
lea rcx, [rbp - 0x10]
call fcn.140075484
mov rdx, rax
lea rax, [rbp + 0x490]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x44]
mov r8b, r12b
mov rcx, rbx
call fcn.140078fb0
test eax, eax
je 0x14008779e
lea rcx, [rbp - 0x10]
call fcn.14007532c
jmp 0x140087640
mov r14d, dword [rbp + 0x6bc]
test r14d, r14d
je 0x140087790
mov ecx, r14d
call fcn.1400cf2d8
mov rsi, rax
mov r9d, r14d
mov r8, rax
mov edx, dword [rsp + 0x44]
mov rcx, rbx
call fcn.140079aa8
test eax, eax
je 0x1400877f0
cmp eax, 0x600
je 0x1400877f0
mov rcx, rsi
call fcn.1400cea54
mov rsi, rdi
call fcn.14006c75c
test al, al
jne 0x140087790
mov rcx, rbx
call fcn.140078cf0
jmp 0x140087790
call fcn.14006c75c
test al, al
jne 0x140087802
mov rcx, rbx
call fcn.140078cf0
nop
lea rcx, [rbp - 0x10]
call fcn.14007532c
nop
lea rcx, [rsp + 0x60]
call fcn.14007532c
test rsi, rsi
jne 0x140087988
lea rcx, [rbp + 0x80]
call fcn.140075484
mov rcx, rax
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov r8d, r12d
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1400878b8
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r14d, eax
test eax, eax
je 0x1400878b8
mov dword [rsp + 0x48], edi
mov ecx, r14d
call fcn.1400cf2d8
mov rsi, rax
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x48]
mov r8d, r14d
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [rsp + 0x48], r14d
je 0x1400878af
mov rcx, rsi
call fcn.1400cea54
mov rsi, rdi
test rsi, rsi
jne 0x140087988
lea rcx, [rbp + 0x80]
call fcn.140075cbc
test al, al
je 0x140087983
call fcn.14006c40c
mov r12, rax
test rax, rax
je 0x140087983
mov qword [rsp + 0x50], rdi
lea rcx, [rbp + 0x80]
call fcn.140075484
mov rcx, rax
mov r8d, 0xa
lea rdx, [rsp + 0x50]
call fcn.1400dd7e0
movzx ebx, ax
lea rcx, [rbp + 0x338]
call fcn.140075484
mov r8, rax
mov edx, ebx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov r15, rax
test rax, rax
je 0x140087983
mov rdx, rax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov r13, rax
test rax, rax
jne 0x140087945
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FreeResource]
jmp 0x14008799f
mov rdx, r15
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov r14d, eax
test eax, eax
je 0x140087983
mov ecx, r14d
call fcn.1400cf2d8
mov rsi, rax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, rax
mov r8d, r14d
mov rcx, rsi
call fcn.1400d0d10
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FreeResource]
test rsi, rsi
je 0x14008799f
mov edx, r14d
mov rcx, rsi
call fcn.140087480
mov rdi, rax
mov rcx, rsi
call fcn.1400cea54
nop
lea rcx, [rbp + 0x80]
call fcn.14007532c
nop
lea rcx, [rbp + 0x408]
call fcn.14007532c
lea rcx, [rbp + 0x338]
call fcn.14007532c
lea rcx, [rbp + 0x2b0]
call fcn.14007532c
lea rcx, [rbp + 0x228]
call fcn.14007532c
lea rcx, [rbp + 0x1a0]
call fcn.14007532c
mov rax, rdi
mov rcx, qword [rbp + 0x6c0]
xor rcx, rsp
call fcn.1400ce670
lea r11, [rsp + 0x7d0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret