Function at 0x1400593c4
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
movaps xmmword [rsp + 0xe0], xmm6
mov r15, r8
mov rbx, rcx
mov rax, qword [0x14030d038]
xor rax, rsp
mov qword [rsp + 0xd8], rax
lea rdi, [rsp + 0x80]
mov dword [rdi], 0xaaaaaaaa
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x28], 0
xor esi, esi
mov rcx, rdx
mov edx, 0x8000
mov r8d, 0x40
xor r9d, r9d
call fcn.14012939c
cmp eax, 1
sbb esi, esi
not esi
or esi, dword [rdi]
js 0x140059712
movaps xmm6, xmmword [0x1402ae190]
lea rdx, [rsp + 0xb0]
movaps xmmword [rdx + 0x10], xmm6
movaps xmmword [rdx], xmm6
mov ecx, esi
mov r8d, 0x20
call fcn.1401285a8
mov r13d, 0xffffffff
cmp eax, 0x20
jne 0x140059719
mov ecx, dword [rsp + 0xb8]
mov r12, qword [sym.imp.WS2_32.dll_ntohl]
call r12
mov dword [rsp + 0xb8], eax
mov ecx, dword [rsp + 0xbc]
call r12
mov dword [rsp + 0xbc], eax
mov ecx, dword [rsp + 0xc0]
call r12
mov dword [rsp + 0xc0], eax
mov ecx, dword [rsp + 0xc4]
call r12
mov dword [rsp + 0xc4], eax
mov ecx, dword [rsp + 0xc8]
call r12
mov dword [rsp + 0xc8], eax
mov ecx, dword [rsp + 0xcc]
call r12
mov dword [rsp + 0xcc], eax
lea rdi, [rsp + 0x80]
movaps xmmword [rdi + 0x20], xmm6
movaps xmmword [rdi + 0x10], xmm6
movaps xmmword [rdi], xmm6
mov ecx, esi
mov rdx, rdi
call fcn.1401255f8
mov ebp, 6
test eax, eax
jne 0x14005971e
movabs rax, 0x303146464944424d
mov ebp, 8
cmp qword [rsp + 0xb0], rax
jne 0x14005971e
movsxd rax, dword [rsp + 0x94]
cmp rax, 0x20
jb 0x14005971e
add rax, 0xffffffffffffffe0
mov ecx, dword [rsp + 0xc4]
sub rax, rcx
jb 0x14005971e
mov ecx, dword [rsp + 0xc8]
sub rax, rcx
jb 0x14005971e
mov ecx, dword [rsp + 0xcc]
cmp rax, rcx
jne 0x14005971e
mov dword [rsp + 0x80], 0xaaaaaaaa
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x28], 0
xor r14d, r14d
mov rcx, rbx
mov edx, 0x8000
mov r8d, 0x40
xor r9d, r9d
call fcn.14012939c
mov ebx, dword [rsp + 0x80]
cmp eax, 1
mov edi, 0
sbb edi, edi
not edi
or edi, ebx
js 0x14005977b
lea rdx, [rsp + 0x80]
movaps xmmword [rdx + 0x20], xmm6
movaps xmmword [rdx + 0x10], xmm6
movaps xmmword [rdx], xmm6
mov ecx, edi
call fcn.1401255f8
mov r13d, 0xffffffff
mov ebp, 6
test eax, eax
jne 0x140059789
mov ecx, dword [rsp + 0x94]
cmp ecx, dword [rsp + 0xb8]
jne 0x140059784
mov qword [rsp + 0x30], rcx
call fcn.1400c4590
test rax, rax
je 0x14005978e
mov r14, rax
mov ecx, edi
mov rdx, rax
mov r8, qword [rsp + 0x30]
call fcn.1401285a8
cmp eax, dword [rsp + 0xb8]
jne 0x140059726
mov edi, eax
call fcn.1401ae8bb
movsxd r8, edi
lea r9, [0x140315530]
mov r13d, 0xffffffff
mov ecx, 0xffffffff
mov rdx, r14
call qword [0x140315528]
cmp dword [rsp + 0xbc], eax
jne 0x140059798
lea r13, [rsp + 0x7c]
mov dword [r13], 0xaaaaaaaa
mov qword [rsp + 0x20], r13
mov dword [rsp + 0x28], 0
xor edi, edi
mov rcx, r15
mov edx, 0x8301
mov r8d, 0x40
xor r9d, r9d
call fcn.14012939c
mov r13d, dword [r13]
cmp eax, 1
sbb edi, edi
not edi
or edi, r13d
mov dword [rsp + 0x30], edi
js 0x14005979f
mov eax, dword [rsp + 0xb8]
mov qword [rsp + 0x48], rax
mov edi, dword [rsp + 0xc8]
add edi, dword [rsp + 0xc4]
add edi, dword [rsp + 0xcc]
mov rcx, rdi
call fcn.1400c4590
mov qword [rsp + 0x50], rax
test rax, rax
je 0x140059791
add qword [rsp + 0x48], r14
mov rbp, qword [rsp + 0x50]
test edi, edi
je 0x1400597a6
mov ecx, esi
mov rdx, rbp
mov r8d, edi
call fcn.1401285a8
test eax, eax
js 0x1400597c5
sub edi, eax
mov ecx, eax
add rbp, rcx
test eax, eax
jne 0x1400596e1
test edi, edi
je 0x1400596e1
jmp 0x1400597be
mov ebp, 6
jmp 0x14005974d
mov ebp, 6
xor r14d, r14d
mov ebx, 0xffffffff
mov rcx, r14
call fcn.1400c95d0
mov ecx, esi
call fcn.14012238c
test ebx, ebx
js 0x140059740
mov ecx, ebx
call fcn.14012238c
test r13d, r13d
js 0x14005974d
mov ecx, r13d
call fcn.14012238c
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
call fcn.140115e50
mov eax, ebp
movaps xmm6, xmmword [rsp + 0xe0]
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebp, 6
mov ebx, edi
jmp 0x140059726
mov ebp, 8
xor r14d, r14d
jmp 0x140059726
xor r14d, r14d
mov ebp, 1
jmp 0x140059726
mov ebp, 4
jmp 0x140059726
mov r13d, dword [rsp + 0x30]
jmp 0x140059726
mov eax, dword [rsp + 0xc4]
imul ecx, eax, 0xaaaaaaab
ror ecx, 2
cmp ecx, 0x15555555
jbe 0x1400597d9
mov ebp, 8
jmp 0x1400597ca
mov ebp, 6
mov rcx, qword [rsp + 0x50]
call fcn.1400c95d0
jmp 0x140059726
test rax, rax
je 0x140059924
mov r15, qword [rsp + 0x50]
mov rcx, r15
add rcx, rax
mov eax, dword [rsp + 0xc8]
mov edx, dword [rsp + 0xcc]
add rax, rcx
add rdx, rax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x38], rcx
mov rdi, r14
mov ecx, dword [r15]
call r12
mov dword [r15], eax
mov ecx, dword [r15 + 4]
call r12
mov dword [r15 + 4], eax
mov ecx, dword [r15 + 8]
call r12
mov dword [r15 + 8], eax
mov eax, dword [r15]
mov rcx, qword [rsp + 0x48]
sub rcx, rdi
cmp rcx, rax
jb 0x1400597be
mov rcx, qword [rsp + 0x70]
sub rcx, qword [rsp + 0x38]
cmp rcx, rax
jb 0x1400597be
test rax, rax
je 0x140059882
xor eax, eax
mov rdx, qword [rsp + 0x38]
mov cl, byte [rdi + rax]
add byte [rdx + rax], cl
inc rax
mov r8d, dword [r15]
cmp rax, r8
jb 0x14005986f
jmp 0x140059885
xor r8d, r8d
mov ecx, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
call fcn.140113f38
mov ebp, 7
mov dword [rsp + 0x5c], eax
cmp eax, dword [r15]
jne 0x1400597ca
mov r8d, dword [r15 + 4]
mov rax, qword [rsp + 0x68]
sub rax, qword [rsp + 0x40]
cmp rax, r8
jb 0x1400597be
mov ecx, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
call fcn.140113f38
cmp eax, dword [r15 + 4]
jne 0x1400597ca
mov edx, dword [rsp + 0x5c]
add rdi, rdx
movsxd rcx, dword [r15 + 8]
mov rbp, r14
sub rbp, rdi
cmp rbp, rcx
jg 0x1400597be
mov rbp, qword [rsp + 0x48]
sub rbp, rdi
cmp rbp, rcx
jl 0x1400597be
add qword [rsp + 0x38], rdx
mov eax, eax
add qword [rsp + 0x40], rax
add rdi, rcx
add r15, 0xc
xor ebp, ebp
cmp r15, qword [rsp + 0x60]
jb 0x14005981d
jmp 0x1400597ca
xor ebp, ebp
jmp 0x1400597ca