Function at 0x140004ad0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov esi, ecx
mov rbx, rdx
call fcn.140003007
cmp esi, 3
je 0x140004b2c
mov ecx, 2
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r8d, 0x1c
mov edx, 1
lea rcx, str._n_Usage:_fgkd_infile_outfile
mov r9, rax
call sub.ucrtbase.dll_fwrite
call fcn.140001d30
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rbx + 8]
lea rdx, [0x140006099]
call sub.ucrtbase.dll_fopen
mov rsi, qword [0x1400066f0]
mov qword [rsi], rax
test rax, rax
je 0x140004d75
mov rcx, qword [rbx + 0x10]
lea rdx, [0x1400060b7]
call sub.ucrtbase.dll_fopen
mov r13, qword [0x140006730]
mov qword [r13], rax
test rax, rax
je 0x140004dae
call fcn.140001d70
mov rdi, qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov ecx, 2
call rdi
mov r8d, 0x32
mov edx, 1
lea rcx, str._n_____A_DYNAMIC_Huffman__FGK__Implementation______n
mov r9, rax
call sub.ucrtbase.dll_fwrite
mov rbp, qword [rbx + 8]
mov ecx, 2
call rdi
lea rdx, str._nName_of_input_file_:__s
mov r8, rbp
mov rcx, rax
call fcn.140004630
mov rbx, qword [rbx + 0x10]
mov ecx, 2
call rdi
lea rdx, str._nName_of_output_file:__s
mov rcx, rax
mov r8, rbx
call fcn.140004630
mov rcx, qword [rsi]
xor edx, edx
mov r8d, 2
call sub.ucrtbase.dll_fseek
mov rcx, qword [rsi]
call sub.ucrtbase.dll_ftell
mov ecx, 2
mov r14d, eax
call rdi
mov r8d, 0x1a
mov edx, 1
lea rcx, str._n_nHuffman_decompressing...
mov r9, rax
call sub.ucrtbase.dll_fwrite
mov rcx, qword [rsi]
call sub.ucrtbase.dll_rewind
mov r9, qword [rsi]
lea rcx, [rsp + 0x28]
mov r8d, 1
mov edx, 8
call sub.ucrtbase.dll_fread
cmp dword [rsp + 0x2c], 0
jne 0x140004ccd
mov ecx, 2
call rdi
mov r8d, 5
mov edx, 1
lea rcx, str.done.
mov r9, rax
call sub.ucrtbase.dll_fwrite
mov rcx, qword [r13]
call sub.ucrtbase.dll_ftell
mov ecx, 2
mov ebx, eax
call rdi
mov r8d, r14d
lea rdx, str._n_nLength_of_input_file_______15lu_bytes
mov rcx, rax
call fcn.140004630
mov ecx, 2
call rdi
mov r8d, ebx
lea rdx, str._nLength_of_output_file______15lu_bytes_n
mov rcx, rax
call fcn.140004630
call fcn.140001f00
call fcn.140001ed0
mov rcx, qword [rsi]
test rcx, rcx
je 0x140004cb6
call sub.ucrtbase.dll_fclose
mov rcx, qword [r13]
test rcx, rcx
je 0x140004b19
call sub.ucrtbase.dll_fclose
jmp 0x140004b19
call fcn.1400027b0
mov rcx, qword [rsi]
xor ebx, ebx
call sub.ucrtbase.dll_fgetc
mov r15d, dword [rsp + 0x2c]
mov dword [0x14000c0b0], eax
call fcn.1400026b0
mov rbp, qword [0x140006780]
movzx ecx, byte [0x14000c0b0]
lea r12d, [r15 - 2]
mov qword [0x14000c0a8], rax
mov qword [rbp], rax
call fcn.140002100
mov ecx, dword [0x14000c0b0]
call fcn.140001a60
call fcn.140001e10
sub r15d, 1
jne 0x140004d4f
jmp 0x140004da4
movzx ecx, al
call fcn.140002100
mov ecx, dword [0x14000c0b0]
call fcn.140001a60
lea rax, [rbx + 1]
cmp rbx, r12
je 0x140004da4
mov rbx, rax
mov rcx, qword [rbp]
call fcn.140002f00
mov dword [0x14000c0b0], eax
cmp eax, 0xfffffffe
jne 0x140004d30
mov ecx, 8
call fcn.140002190
mov dword [0x14000c0b0], eax
jmp 0x140004d30
mov ecx, 2
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r8d, 0x1a
mov edx, 1
lea rcx, str._nError_opening_input_file.
mov r9, rax
call sub.ucrtbase.dll_fwrite
call fcn.140001d30
jmp 0x140004b19
call fcn.140001f30
jmp 0x140004c41
mov ecx, 2
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r8d, 0x1b
mov edx, 1
lea rcx, str._nError_opening_output_file.
mov r9, rax
call sub.ucrtbase.dll_fwrite
call fcn.140001d30
jmp 0x140004b19