Function at 0x1403a9840
Capabilities:
Clear file content

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x58
movaps xmmword [rsp + 0x40], xmm6
mov rsi, rcx
mov rax, qword [0x14056a550]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], 0
mov rdi, qword [rcx + 0x80]
mov rdx, qword [rcx + 0x88]
mov rax, rdx
test rdx, rdx
jne 0x1403a9883
mov rax, qword [rsi + 0x78]
sub rdi, rax
mov rbx, qword [rsi + 0x200]
add rbx, rdi
movzx eax, byte [rsi + 0x27c]
movzx ecx, al
mov r8d, ecx
or r8d, 2
cmp r8d, 3
je 0x1403a9945
test rdi, rdi
je 0x1403a9937
test rdx, rdx
je 0x1403a98c4
cmp dword [rsi + 0x238], 0xb
je 0x1403a98d1
jmp 0x1403a98fb
mov rdx, qword [rsi + 0x78]
cmp dword [rsi + 0x238], 0xb
jne 0x1403a98fb
cmp ecx, 4
je 0x1403a9910
cmp ecx, 5
jne 0x1403a98fb
mov rax, qword [rsi + 0x78]
mov qword [rsi + 0x80], rax
mov rcx, rsi
mov r8, rdi
call fcn.1400053c6
cmp eax, 0xffffffff
jne 0x1403a9930
jmp 0x1403a9c2f
mov rcx, rsi
mov r8, rdi
call fcn.1400053c6
cmp eax, 0xffffffff
jne 0x1403a9937
jmp 0x1403a9c2f
mov rax, qword [rsi + 0x78]
mov qword [rsi + 0x80], rax
mov rcx, rsi
mov r8, rdi
call fcn.1403a9560
mov ebx, eax
test eax, eax
jne 0x1403a9cba
mov rbx, qword [rsi + 0x200]
and byte [rsi + 0x294], 0xbf
movzx eax, byte [rsi + 0x27c]
movsx ecx, al
dec ecx
cmp ecx, 7
ja case.default.0x1403a9964
lea r14, [rsi + 0x88]
lea rdx, [0x1403a9d94]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
add rbx, 0xfffffffffffffffc
cmp dword [rsi + 0x258], 0
je 0x1403a9ad9
mov edx, ebx
neg edx
mov eax, edx
shr eax, 8
mov ecx, edx
shr ecx, 0x10
mov r8d, edx
shr r8d, 0x18
cmp word [rsi + 0x27a], 0
jne case.0x1403a9964.5
jmp 0x1403a9afe
cmp word [rsi + 0x27a], 0
jne case.0x1403a9964.5
cmp al, 8
jne 0x1403a9c11
mov byte [rsp + 0x30], 0xd
mov r8d, 1
jmp 0x1403a9c14
lea r8, str.for_wseq.c
mov ecx, 8
mov edx, 2
mov r9d, 0x110c
call fcn.140004539
jmp case.0x1403a9964.5
cmp word [rsi + 0x27a], 0
jne 0x1403a9a16
mov eax, edi
mov r8, qword [rsi + 0x1c8]
cmp rax, r8
jae 0x1403a9a16
sub r8, rdi
mov rcx, qword [rsi + 0x80]
xor edx, edx
call fcn.1400020b8
mov rdi, qword [rsi + 0x1c8]
mov rdx, qword [r14]
test rdx, rdx
jne 0x1403a9a22
mov rdx, qword [rsi + 0x78]
mov rcx, rsi
mov r8, rdi
call fcn.1400053c6
cmp eax, 0xffffffff
je 0x1403a9c3d
xor ebx, ebx
mov al, 1
cmp word [rsi + 0x27a], 0
jne case.0x1403a9964.5
jmp 0x1403a9c5a
lea eax, [rdi - 2]
mov ecx, eax
shr ecx, 8
mov rdx, qword [r14]
mov r8, r14
test rdx, rdx
jne 0x1403a9a68
lea r8, [rsi + 0x78]
mov rdx, qword [rsi + 0x78]
mov byte [rdx], al
mov rax, qword [r8]
mov byte [rax + 1], cl
mov rdx, qword [r14]
test rdx, rdx
jne 0x1403a9a7c
mov rdx, qword [rsi + 0x78]
mov rcx, rsi
mov r8, rdi
call fcn.1400053c6
cmp eax, 0xffffffff
je 0x1403a9c67
cmp word [rsi + 0x27a], 0
jne case.0x1403a9964.5
and byte [rsi + 0x294], 0xbf
test dil, 1
je case.0x1403a9964.5
mov byte [rsp + 0x30], 0
jmp 0x1403a9ac9
cmp word [rsi + 0x27a], 0
jne case.0x1403a9964.5
mov byte [rsp + 0x30], 0xd
lea rdx, [rsp + 0x30]
mov r8d, 1
jmp 0x1403a9c22
mov rax, rbx
shr rax, 8
mov rcx, rbx
shr rcx, 0x10
mov r8, rbx
shr r8, 0x18
mov edx, ebx
cmp word [rsi + 0x27a], 0
jne case.0x1403a9964.5
test dword [rsi + 0x294], 0x2000
movzx edx, dl
movzx r8d, r8b
mov r9d, r8d
cmove r9d, edx
movzx eax, al
movzx ecx, cl
mov r10d, ecx
cmove r10d, eax
cmove eax, ecx
cmove edx, r8d
mov byte [rsp + 0x28], r9b
mov byte [rsp + 0x29], r10b
mov byte [rsp + 0x2a], al
mov byte [rsp + 0x2b], dl
lea rdx, [rsp + 0x28]
mov r8d, 4
mov rcx, rsi
call fcn.1400053c6
cmp eax, 0xffffffff
je 0x1403a9c2f
test byte [rsi + 0x297], 2
jne case.0x1403a9964.5
movups xmm6, xmmword [rsi + 0x168]
mov rcx, qword [rsi + 0x1a0]
mov qword [rsp + 0x30], 0
lea r8, [rsp + 0x34]
xor edx, edx
mov r9d, 1
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x30], eax
cmp eax, 0xffffffff
jne 0x1403a9bab
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x1403a9bab
mov qword [rsp + 0x30], 0xffffffffffffffff
mov rdi, qword [rsp + 0x30]
mov rcx, qword [rsi + 0x1a0]
mov rdx, qword [rsi + 0x1f8]
mov qword [rsp + 0x30], rdx
lea r8, [rsp + 0x34]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x30], eax
cmp eax, 0xffffffff
je 0x1403a9ce1
cmp qword [rsp + 0x30], 0xffffffffffffffff
je 0x1403a9c2f
mov eax, dword [rsi + 0x298]
test eax, 0x200000
jne 0x1403a9cf4
mov rax, rbx
shr rax, 8
mov rcx, rbx
shr rcx, 0x10
mov rdx, rbx
shr rdx, 0x18
jmp 0x1403a9d10
xor r8d, r8d
mov byte [rsp + r8 + 0x30], 0xa
inc r8
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.1400053c6
cmp eax, 0xffffffff
jne case.0x1403a9964.5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi + 0x1a8], eax
jmp 0x1403a9cb5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi + 0x1a8], eax
mov ebx, 0x26
xor eax, eax
cmp word [rsi + 0x27a], 0
jne case.0x1403a9964.5
and byte [rsi + 0x294], 0xbf
test al, al
jne case.0x1403a9964.5
jmp 0x1403a9cba
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi + 0x1a8], eax
cmp word [rsi + 0x27a], 0
je 0x1403a9cd8
xor ebx, ebx
test byte [rsi + 0x295], 8
je 0x1403a9cba
mov rcx, qword [rsi + 0x1a0]
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x1403a9ca2
and byte [rsi + 0x295], 0xf7
jmp 0x1403a9cba
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi + 0x1a8], eax
and byte [rsi + 0x295], 0xf7
mov ebx, 0x26
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140003706
mov eax, ebx
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r14
ret
and byte [rsi + 0x294], 0xbf
jmp 0x1403a9cb5
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1403a9c2f
jmp 0x1403a9bde
and eax, 0xffdfffff
mov dword [rsi + 0x298], eax
neg ebx
mov eax, ebx
shr eax, 8
mov ecx, ebx
shr ecx, 0x10
mov edx, ebx
shr edx, 0x18
test dword [rsi + 0x294], 0x2000
movzx r8d, bl
movzx edx, dl
mov r9d, edx
cmove r9d, r8d
movzx eax, al
movzx ecx, cl
mov r10d, ecx
cmove r10d, eax
cmove eax, ecx
cmove r8d, edx
mov byte [rsp + 0x28], r9b
mov byte [rsp + 0x29], r10b
mov byte [rsp + 0x2a], al
mov byte [rsp + 0x2b], r8b
lea rdx, [rsp + 0x28]
mov r8d, 4
mov rcx, rsi
call fcn.1400053c6
cmp eax, 0xffffffff
je 0x1403a9c2f
mov rcx, qword [rsi + 0x1a0]
mov rdx, rdi
xor r8d, r8d
call fcn.1403a6850
cmp rax, 0xffffffffffffffff
je 0x1403a9c2f
movups xmmword [rsi + 0x168], xmm6
jmp case.0x1403a9964.5