Function at 0x1400592f0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x30
mov rsi, rcx
mov eax, dword [rcx + 0x48]
test eax, eax
je 0x140059355
cmp eax, 2
je 0x1400595db
cmp eax, 1
jne 0x140059602
mov ecx, dword [rsi + 4]
mov edi, dword [rsi + 0x14]
add edi, edi
mov rdx, qword [rsi + 0x28]
mov dword [rsi + 0x38], 0
mov r8d, edi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
test eax, eax
js 0x1400594f7
je 0x140059525
mov dword [rsi + 0x38], eax
mov ecx, 2
cmp eax, edi
jb 0x14005952a
jmp 0x14005952d
lea rcx, [rsi + 0x70]
cmp dword [rsi + 0x14], 0
je 0x140059412
lea rdi, [rsi + 0x78]
mov r8d, dword [rsi + 0x78]
test r8d, r8d
je 0x1400594cf
mov rdx, qword [rcx]
cmp byte [rdx], 0x1f
jne 0x1400594b9
inc rdx
dec r8d
mov dword [rdi], r8d
mov qword [rcx], rdx
je 0x140059548
cmp byte [rdx], 0x8b
jne 0x140059573
inc rdx
dec r8d
mov dword [rdi], r8d
mov qword [rcx], rdx
je 0x140059626
dec r8d
mov dword [rdi], r8d
lea r9, [rdx + 1]
mov qword [rcx], r9
cmp byte [rdx], 8
jne 0x140059649
test r8d, r8d
je 0x140059652
dec r8d
mov dword [rdi], r8d
lea rax, [r9 + 1]
mov qword [rcx], rax
movzx ebx, byte [r9]
cmp ebx, 0x20
jae 0x140059675
test r8d, r8d
mov dword [rsp + 0x2c], ebx
mov qword [rsp + 0x20], rcx
je 0x140059699
dec r8d
mov dword [rdi], r8d
inc rax
mov qword [rcx], rax
test r8d, r8d
jne 0x1400596e1
jmp 0x1400596c6
mov qword [rsp + 0x20], rcx
mov edi, dword [rsi + 0x18]
mov r14, qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rcx, rdi
call r14
mov rbx, rax
mov qword [rsi + 0x20], rax
lea ecx, [rdi + rdi]
call r14
mov qword [rsi + 0x28], rax
test rbx, rbx
je 0x14005953a
test rax, rax
je 0x140059609
mov dword [rsi + 0x14], edi
mov dword [rsi + 0x78], 0
mov rdi, qword [rsp + 0x20]
mov qword [rdi], 0
xorps xmm0, xmm0
movups xmmword [rsi + 0xa0], xmm0
mov qword [rsi + 0xb0], 0
lea r8, str.1.2.5
mov rcx, rdi
mov edx, 0xfffffff1
mov r9d, 0x58
call fcn.140059f60
mov rcx, rdi
test eax, eax
je 0x140059363
mov rcx, qword [rsi + 0x28]
mov rdi, qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call rdi
mov rcx, qword [rsi + 0x20]
call rdi
mov dword [rsi + 0x14], 0
jmp 0x140059615
mov eax, dword [rsi + 0x10]
mov dword [rsi + 0x44], eax
mov rax, qword [rsi + 0x28]
mov qword [rsi + 0x30], rax
mov ecx, dword [rsi + 0x38]
jmp 0x1400595a0
mov rbx, rcx
mov rcx, rsi
call fcn.140059bb0
cmp eax, 0xffffffff
je 0x140059689
mov r8d, dword [rdi]
test r8d, r8d
mov rcx, rbx
jne 0x140059374
jmp 0x1400595c3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov ecx, 2
cmp dword [rax], 0xb
je 0x14005952a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov ecx, dword [rax]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_strerror]
mov rcx, rsi
mov edx, 0xffffffff
mov r8, rax
jmp 0x140059684
mov ecx, 1
mov dword [rsi + 0x3c], ecx
mov rax, qword [rsi + 0x28]
mov qword [rsi + 0x30], rax
jmp 0x140059602
test rax, rax
jne 0x14005960c
jmp 0x140059615
mov rbx, rcx
mov rcx, rsi
call fcn.140059bb0
cmp eax, 0xffffffff
je 0x140059689
mov r8d, dword [rdi]
test r8d, r8d
mov rcx, rbx
je 0x140059573
mov rdx, qword [rcx]
cmp byte [rdx], 0x8b
je 0x14005939b
mov rax, qword [rsi + 0x28]
mov byte [rax], 0x1f
mov dword [rsi + 0x38], 1
mov r8d, dword [rsi + 0x78]
mov eax, dword [rsi + 0x10]
mov dword [rsi + 0x44], eax
mov rax, qword [rsi + 0x28]
mov qword [rsi + 0x30], rax
test r8d, r8d
je 0x1400595b8
mov rdx, qword [rcx]
mov ecx, 1
add rcx, rax
mov r8d, r8d
call fcn.1400adb90
mov eax, dword [rsi + 0x78]
add dword [rsi + 0x38], eax
mov dword [rsi + 0x78], 0
movaps xmm0, xmmword [0x140139f80]
movlps qword [rsi + 0x48], xmm0
xor eax, eax
cmp dword [rsi + 0x38], 0
jne 0x14005968e
mov eax, dword [rsi + 0x48]
cmp eax, 2
jne 0x14005930d
mov eax, dword [rsi + 0x14]
add eax, eax
mov dword [rsi + 0x88], eax
mov rax, qword [rsi + 0x28]
mov qword [rsi + 0x80], rax
mov rcx, rsi
call fcn.140059a40
cmp eax, 0xffffffff
je 0x140059689
xor eax, eax
jmp 0x14005968e
mov rax, rbx
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea r8, str.out_of_memory
mov rcx, rsi
mov edx, 0xfffffffc
jmp 0x140059684
mov rbx, rcx
mov rcx, rsi
call fcn.140059bb0
cmp eax, 0xffffffff
je 0x140059649
mov r8d, dword [rdi]
test r8d, r8d
je 0x140059649
mov rcx, rbx
mov rdx, qword [rbx]
jmp 0x1400593ad
lea r8, str.unknown_compression_method
jmp 0x14005967c
mov rbx, rcx
mov rcx, rsi
call fcn.140059bb0
cmp eax, 0xffffffff
je 0x140059675
mov r8d, dword [rdi]
test r8d, r8d
je 0x140059675
mov rcx, rbx
mov r9, qword [rbx]
jmp 0x1400593cc
lea r8, str.unknown_header_flags_set
mov rcx, rsi
mov edx, 0xfffffffd
call fcn.140056740
mov eax, 0xffffffff
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
mov rcx, rsi
call fcn.140059bb0
mov r8d, dword [rsi + 0x78]
cmp eax, 0xffffffff
je 0x1400596bc
test r8d, r8d
mov rcx, qword [rsp + 0x20]
je 0x1400596c6
mov rax, qword [rcx]
jmp 0x1400593f8
mov rcx, qword [rsp + 0x20]
test r8d, r8d
jne 0x1400596e1
mov rcx, rsi
call fcn.140059bb0
mov r8d, dword [rsi + 0x78]
cmp eax, 0xffffffff
je 0x140059713
test r8d, r8d
mov rcx, qword [rsp + 0x20]
je 0x1400596ef
dec r8d
mov dword [rdi], r8d
inc qword [rcx]
test r8d, r8d
jne 0x14005971d
mov rcx, rsi
call fcn.140059bb0
mov r8d, dword [rsi + 0x78]
cmp eax, 0xffffffff
je 0x14005970c
test r8d, r8d
mov rcx, qword [rsp + 0x20]
jne 0x14005971d
jmp 0x14005972b
mov rcx, qword [rsp + 0x20]
jmp 0x140059726
mov rcx, qword [rsp + 0x20]
test r8d, r8d
je 0x1400596ef
dec r8d
mov dword [rdi], r8d
inc qword [rcx]
test r8d, r8d
jne 0x140059746
mov rcx, rsi
call fcn.140059bb0
mov r8d, dword [rsi + 0x78]
cmp eax, 0xffffffff
je 0x140059771
test r8d, r8d
mov rcx, qword [rsp + 0x20]
je 0x140059754
dec r8d
mov dword [rdi], r8d
inc qword [rcx]
test r8d, r8d
jne 0x14005977b
mov rcx, rsi
call fcn.140059bb0
mov r8d, dword [rsi + 0x78]
cmp eax, 0xffffffff
je 0x1400597aa
test r8d, r8d
mov rcx, qword [rsp + 0x20]
jne 0x14005977b
jmp 0x140059789
mov rcx, qword [rsp + 0x20]
test r8d, r8d
je 0x140059754
dec r8d
mov dword [rdi], r8d
inc qword [rcx]
test r8d, r8d
jne 0x1400597b4
mov rbx, rcx
mov rcx, rsi
call fcn.140059bb0
mov rcx, rbx
mov ebx, dword [rsp + 0x2c]
cmp eax, 0xffffffff
je 0x1400597bd
mov r8d, dword [rdi]
test r8d, r8d
jne 0x1400597b4
jmp 0x1400597bd
mov rcx, qword [rsp + 0x20]
test r8d, r8d
je 0x140059789
dec r8d
mov dword [rdi], r8d
inc qword [rcx]
test bl, 4
je 0x140059923
mov edx, dword [rdi]
test edx, edx
je 0x1400597e3
dec edx
mov dword [rdi], edx
mov rax, qword [rcx]
lea r8, [rax + 1]
mov qword [rcx], r8
movzx eax, byte [rax]
test edx, edx
jne 0x14005983b
jmp 0x140059810
mov rbx, rcx
mov rcx, rsi
call fcn.140059bb0
mov edx, dword [rsi + 0x78]
cmp eax, 0xffffffff
je 0x140059804
test edx, edx
mov rcx, rbx
jne 0x1400597cc
mov eax, 0xffffffff
jmp 0x140059810
mov eax, 0xffffffff
mov rcx, rbx
test edx, edx
jne 0x14005983b
mov dword [rsp + 0x28], eax
mov rbx, rcx
mov rcx, rsi
call fcn.140059bb0
mov r8d, 0xffffff00
cmp eax, 0xffffffff
je 0x1400598f4
mov edx, dword [rdi]
test edx, edx
mov rcx, rbx
mov eax, dword [rsp + 0x28]
je 0x140059851
dec edx
mov dword [rdi], edx
mov rdx, qword [rcx]
lea r8, [rdx + 1]
mov qword [rcx], r8
movzx r8d, byte [rdx]
shl r8d, 8
add eax, r8d
je 0x140059923
mov edx, dword [rdi]
cmp eax, 1
jne 0x140059885
mov r8d, eax
and r8d, 0xfffffffe
cmp r8d, eax
jae 0x140059923
test edx, edx
je 0x140059906
dec edx
mov dword [rdi], edx
inc qword [rcx]
jmp 0x140059923
mov ebx, eax
shr ebx, 1
mov dword [rsp + 0x28], eax
jmp 0x14005989d
dec edx
mov dword [rdi], edx
inc r9
mov qword [rcx], r9
dec ebx
je 0x140059861
test edx, edx
jne 0x1400598be
mov rbp, rcx
mov rcx, rsi
call fcn.140059bb0
mov rcx, rbp
cmp eax, 0xffffffff
mov eax, dword [rsp + 0x28]
je 0x140059923
mov edx, dword [rdi]
test edx, edx
je 0x140059923
lea r9d, [rdx - 1]
mov dword [rdi], r9d
mov r9, qword [rcx]
inc r9
mov qword [rcx], r9
dec edx
jne 0x14005988f
mov rbp, rcx
mov rcx, rsi
call fcn.140059bb0
mov rcx, rbp
cmp eax, 0xffffffff
mov eax, dword [rsp + 0x28]
je 0x140059923
mov edx, dword [rdi]
test edx, edx
je 0x140059923
mov r9, qword [rcx]
jmp 0x14005988f
mov rcx, rbx
mov eax, dword [rsp + 0x28]
add eax, r8d
jne 0x14005985a
jmp 0x140059923
mov rbx, rcx
mov rcx, rsi
call fcn.140059bb0
mov rcx, rbx
cmp eax, 0xffffffff
je 0x140059923
mov edx, dword [rdi]
test edx, edx
jne 0x140059879
test byte [rsp + 0x2c], 8
jne 0x14005995c
mov ebp, dword [rsp + 0x2c]
test bpl, 0x10
jne 0x140059992
test bpl, 2
je 0x140059a16
mov edx, dword [rdi]
test edx, edx
je 0x1400599cf
dec edx
mov dword [rdi], edx
inc qword [rcx]
test edx, edx
jne 0x140059a0f
jmp 0x1400599f6
mov eax, dword [rdi]
jmp 0x140059973
dec eax
mov dword [rdi], eax
mov rdx, qword [rcx]
lea r8, [rdx + 1]
mov qword [rcx], r8
cmp byte [rdx], 0
je 0x14005992a
test eax, eax
jne 0x140059960
mov rbx, rcx
mov rcx, rsi
call fcn.140059bb0
mov rcx, rbx
cmp eax, 0xffffffff
je 0x14005992a
mov eax, dword [rdi]
test eax, eax
jne 0x140059960
jmp 0x14005992a
mov eax, dword [rdi]
jmp 0x1400599a9
dec eax
mov dword [rdi], eax
mov rdx, qword [rcx]
lea r8, [rdx + 1]
mov qword [rcx], r8
cmp byte [rdx], 0
je 0x140059934
test eax, eax
jne 0x140059996
mov rbx, rcx
mov rcx, rsi
call fcn.140059bb0
mov rcx, rbx
cmp eax, 0xffffffff
je 0x140059934
mov eax, dword [rdi]
test eax, eax
jne 0x140059996
jmp 0x140059934
mov rbx, rcx
mov rcx, rsi
call fcn.140059bb0
mov edx, dword [rsi + 0x78]
cmp eax, 0xffffffff
je 0x1400599ef
test edx, edx
mov rcx, rbx
jne 0x140059948
jmp 0x1400599f6
mov rcx, rbx
test edx, edx
jne 0x140059a0f
mov rbx, rcx
mov rcx, rsi
call fcn.140059bb0
mov rcx, rbx
cmp eax, 0xffffffff
je 0x140059a16
mov edx, dword [rdi]
test edx, edx
je 0x140059a16
dec edx
mov dword [rdi], edx
inc qword [rcx]
call fcn.140059d90
xor ecx, ecx
xor edx, edx
xor r8d, r8d
call fcn.1400606e0
mov dword [rsi + 0xbc], eax
movaps xmm0, xmmword [0x140139f70]
jmp 0x1400595bf