Function at 0x1400019b0
Capabilities:
Enumerate files on windows
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10f0]
mov eax, 0x11f0
call fcn.1400183c0
sub rsp, rax
mov rax, qword [0x140025008]
xor rax, rsp
mov qword [rbp + 0x10e0], rax
mov eax, dword [str..FW_]
lea rcx, [rbp + 0x8e6]
mov dword [rbp + 0x8e0], eax
xor r12d, r12d
movzx eax, word [0x140021514]
xor edx, edx
mov r8d, 0x7fa
mov word [rbp + 0x8e4], ax
mov qword [rsp + 0x40], r12
xor r15d, r15d
call fcn.1400053d0
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x8e0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov r11, 0xffffffffffffffff
mov r14, rax
cmp rax, r11
je 0x140001cc8
xor edi, edi
lea r13, str.Venus
mov esi, r11d
lea r9, str.Fake
mov rax, r11
lea r8, str.Saban
lea rcx, [rsp + 0x7c]
nop
inc rax
cmp byte [rcx + rax], 0
jne 0x140001a70
cmp rax, 0x14
ja 0x140001ca1
xor eax, eax
movzx ecx, byte [rsp + rax + 0x7c]
cmp cl, 0x2e
je 0x140001ab2
cmp cl, 0x5f
je 0x140001aa8
test cl, cl
je 0x140001aa8
mov byte [rbp + rax + 0x8c0], cl
inc rax
cmp rax, 0x13
jl 0x140001a85
cmp rax, 0x13
je 0x140001ca1
cmp rax, 0x14
jae 0x140002036
cmp byte [rsp + rax + 0x7c], 0x5f
mov ebx, 0xffff
mov byte [rbp + rax + 0x8c0], 0
jne 0x140001afb
lea rdx, [rsp + 0x7d]
xor ebx, ebx
add rdx, rax
movzx eax, byte [rdx]
cmp al, 0x30
jl 0x140001afb
cmp al, 0x39
ja 0x140001afb
movzx eax, al
lea ebx, [rbx + rbx*4]
inc rdx
lea ebx, [rbx - 0x18]
lea ebx, [rax + rbx*2]
movzx eax, byte [rdx]
cmp al, 0x30
jge 0x140001ae1
xor ecx, ecx
lea rdx, [rbp + 0x8c0]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
inc rcx
cmp al, byte [rcx + r13 - 1]
jne 0x140001b29
cmp rcx, 6
jne 0x140001b10
jmp 0x140001ca1
xor ecx, ecx
lea rdx, [rbp + 0x8c0]
movzx eax, byte [rdx + rcx]
inc rcx
cmp al, byte [r8 + rcx - 1]
jne 0x140001b4b
cmp rcx, 6
jne 0x140001b32
jmp 0x140001ca1
xor ecx, ecx
lea rdx, [rbp + 0x8c0]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
inc rcx
cmp al, byte [r9 + rcx - 1]
jne 0x140001b79
cmp rcx, 5
jne 0x140001b60
jmp 0x140001ca1
lea r10, [rdi - 1]
mov r9d, esi
test esi, esi
js 0x140001bc9
mov eax, r9d
lea r8, [rbp + 0x8c0]
imul r11, rax, 0x828
lea rax, [r11 + 0x800]
add rax, r12
sub r8, rax
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140001bb5
inc rax
test ecx, ecx
jne 0x140001ba2
test edx, edx
je 0x140001c1e
dec r10
sub r9d, 1
jns 0x140001b84
mov r11, 0xffffffffffffffff
xor ecx, ecx
nop dword [rax + rax]
movzx eax, byte [rsp + rcx + 0x7c]
mov byte [rbp + rcx + 0x90], al
lea rcx, [rcx + 1]
test al, al
jne 0x140001bd0
xor ecx, ecx
nop word [rax + rax]
movzx eax, byte [rbp + rcx + 0x8c0]
mov byte [rbp + rcx + 0x890], al
lea rcx, [rcx + 1]
test al, al
jne 0x140001bf0
mov dword [rbp + 0x8a4], ebx
test rdi, rdi
jne 0x140001c58
mov ecx, 0x828
call fcn.140007a14
jmp 0x140001c75
imul r8, r10, 0x828
cmp dword [r8 + r12 + 0x814], ebx
jge 0x140001ca1
lea rax, [rsp + 0x7c]
sub r11, rax
lea rcx, [rsp + 0x7c]
lea rdx, [r11 + r12]
movzx eax, byte [rcx]
mov byte [rcx + rdx], al
lea rcx, [rcx + 1]
test al, al
jne 0x140001c40
mov dword [r8 + r12 + 0x814], ebx
jmp 0x140001ca1
lea eax, [rsi + 2]
movsxd rcx, eax
mov eax, 0x828
mul rcx
mov rcx, r12
cmovo rax, r11
mov rdx, rax
call fcn.1400079f8
imul rcx, rdi, 0x828
lea rdx, [rbp + 0x90]
mov qword [rsp + 0x40], rax
add rcx, rax
mov r8d, 0x828
mov r12, rax
call fcn.140007380
inc r15d
inc esi
inc rdi
lea rdx, [rsp + 0x50]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x140001cbf
mov r11, 0xffffffffffffffff
jmp 0x140001a58
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindClose]
lea r13d, [r15 - 1]
xor r14d, r14d
movsxd rbx, r13d
test r13d, r13d
js 0x140001d26
imul rdi, rbx, 0x828
add rdi, 0x820
add rdi, r12
nop dword [rax + rax]
movsxd rax, ebx
imul rsi, rax, 0x828
add rsi, r12
mov rcx, rsi
lea r8, [rsi + 0x818]
lea rdx, [rsi + 0x820]
call fcn.140002760
test al, al
je 0x140001d54
add r14d, dword [rdi]
sub rdi, 0x828
sub ebx, 1
jns 0x140001cf0
mov eax, 7
mul r14d
mov ecx, eax
mov rax, 0xffffffffffffffff
cmovo rcx, rax
call fcn.140007a14
mov r15, rax
test rax, rax
jne 0x140001d68
lea rcx, str.Error:_out_of_memory_r_n
jmp 0x140002001
mov rdx, rsi
lea rcx, str.Error:_Could_not_load__s_r_n
call fcn.140001820
jmp 0x140002006
movsxd rdx, r13d
mov rbx, r15
mov dword [rsp + 0x48], edx
test r13d, r13d
js 0x140001eb4
imul rcx, rdx, 0x828
add r12, 0x820
add r12, rcx
nop dword [rax]
mov r8d, dword [r12 - 0xc]
lea rcx, str.Add__s:_d___s__to_firwmares.h_r_n
movsxd rax, edx
imul rdi, rax, 0x828
add rdi, qword [rsp + 0x40]
mov r9, rdi
lea rdx, [rdi + 0x800]
call fcn.140001820
lea rdx, [rdi + 0x820]
lea rcx, [rdi + 0x818]
call fcn.1400018e0
test al, al
je 0x140001fe0
lea r8, [rdi + 0x800]
mov rcx, rbx
lea rdx, str.uint8_t__sFw___r_n
call fcn.140001880
cmp byte [rbx], 0
je 0x140001df8
inc rbx
cmp byte [rbx], 0
jne 0x140001df0
mov r14d, dword [r12]
mov rsi, qword [r12 - 8]
test r14d, r14d
jle 0x140001e7e
nop word [rax + rax]
mov edi, 0x80
cmp r14d, edi
cmovb edi, r14d
mov eax, edi
sub edi, 1
js 0x140001e5d
sub r14d, eax
nop word [rax + rax]
movzx r8d, byte [rsi]
lea rdx, str._d_
mov rcx, rbx
call fcn.140001880
inc rsi
cmp byte [rbx], 0
je 0x140001e58
nop dword [rax + rax]
inc rbx
cmp byte [rbx], 0
jne 0x140001e50
sub edi, 1
jns 0x140001e30
lea rdx, str._r_n
mov rcx, rbx
call fcn.140001880
cmp byte [rbx], 0
je 0x140001e79
inc rbx
cmp byte [rbx], 0
jne 0x140001e71
test r14d, r14d
jg 0x140001e10
lea rcx, [rbx - 2]
lea rdx, str.__r_n
call fcn.140001880
cmp byte [rbx], 0
je 0x140001e9b
inc rbx
cmp byte [rbx], 0
jne 0x140001e93
mov edx, dword [rsp + 0x48]
sub r12, 0x828
dec edx
mov dword [rsp + 0x48], edx
test edx, edx
jns 0x140001d90
lea rdx, str.TFW_LfwList___r_n
mov rcx, rbx
call fcn.140001880
cmp byte [rbx], 0
je 0x140001ed0
inc rbx
cmp byte [rbx], 0
jne 0x140001ec8
test r13d, r13d
js 0x140001f42
movsxd rax, r13d
imul rcx, rax, 0x828
mov rax, qword [rsp + 0x40]
lea rdi, [rax + 0x820]
add rdi, rcx
lea rsi, [rax + 0x800]
add rsi, rcx
nop dword [rax + rax]
mov eax, dword [rdi - 0xc]
lea rdx, str.___sFw___d____s____d__r_n
mov r9d, dword [rdi]
mov r8, rsi
mov dword [rsp + 0x28], eax
mov rcx, rbx
mov qword [rsp + 0x20], rsi
call fcn.140001880
cmp byte [rbx], 0
je 0x140001f2e
inc rbx
cmp byte [rbx], 0
jne 0x140001f26
sub rsi, 0x828
sub rdi, 0x828
sub r13d, 1
jns 0x140001f00
lea rdx, str.__r_n
mov rcx, rbx
call fcn.140001880
cmp byte [rbx], 0
je 0x140001f5e
inc rbx
cmp byte [rbx], 0
jne 0x140001f56
xor esi, esi
lea rcx, str.firmware.h
mov qword [rsp + 0x30], rsi
xor r9d, r9d
mov dword [rsp + 0x28], esi
xor r8d, r8d
mov edx, 0x40000000
mov dword [rsp + 0x20], 2
sub ebx, r15d
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140001ffa
test ebx, ebx
jle 0x140001fce
nop dword [rax]
lea r9, [rsp + 0x48]
mov dword [rsp + 0x48], esi
mov r8d, ebx
mov qword [rsp + 0x20], rsi
mov rdx, r15
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140001ff1
mov eax, dword [rsp + 0x48]
sub ebx, eax
add r15, rax
test ebx, ebx
jg 0x140001fa0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, str.file_firmware.h_generated_r_n
jmp 0x140002001
mov rdx, rdi
lea rcx, str.Error:_file__s_invalid_r_n
call fcn.140001820
jmp 0x140002006
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, str.Error_writing_the_firmware.h_file_r_n
call fcn.140001820
mov rcx, qword [rbp + 0x10e0]
xor rcx, rsp
call fcn.1400039b0
lea r11, [rsp + 0x11f0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.140003b1c
int3