Function at 0x180019020
Capabilities:
Get file size

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xf0
mov rbx, rdx
mov r14, rcx
xor ecx, ecx
xorps xmm0, xmm0
movups xmmword [rbp - 0x21], xmm0
mov qword [rbp - 0x11], rcx
mov r13d, 0xf
mov qword [rbp - 9], r13
mov byte [rbp - 0x21], cl
mov dword [rbp - 0x41], 0x3a370b5b
mov dword [rbp - 0x3d], 0x2e482818
mov dword [rbp - 0x39], 0x833d2c14
xor eax, eax
movups xmmword [rbp - 0x35], xmm0
mov dword [rbp - 0x25], eax
mov eax, ecx
movabs r11, 0x31beced64f16227b
mov r10, r11
lea rcx, [rbp - 0x40]
sub r10, rcx
lea r9, [rbp - 0x40]
add r9, rax
lea ecx, [rax + 0x6c]
and cl, byte [r9 - 1]
mov edx, 0x3c
sub dl, cl
add dl, dl
add dl, al
add byte [r9 - 1], dl
lea edx, [rax + 0x6d]
and dl, byte [r9]
add dl, dl
movzx ecx, al
sub cl, dl
add cl, 0x79
add byte [r9], cl
lea ecx, [rax + 0x6e]
and cl, byte [r9 + 1]
mov edx, 0x3d
sub dl, cl
add dl, dl
add dl, al
add byte [r9 + 1], dl
lea edx, [rax + 0x6f]
and dl, byte [r9 + 2]
add dl, dl
movzx ecx, al
sub cl, dl
add cl, 0x7b
add byte [r9 + 2], cl
lea ecx, [rax + 0x70]
and cl, byte [r9 + 3]
mov edx, 0x3e
sub dl, cl
add dl, dl
add dl, byte [r9 + 3]
add dl, al
mov byte [r9 + 3], dl
movzx edx, byte [r9 + 4]
lea ecx, [rax + 0x71]
and cl, dl
add cl, cl
sub dl, cl
add dl, 0x7d
add dl, al
mov byte [r9 + 4], dl
lea ecx, [rax + 0x72]
and cl, byte [r9 + 5]
mov edx, 0x3f
sub dl, cl
add dl, dl
add dl, byte [r9 + 5]
add dl, al
mov byte [r9 + 5], dl
movzx edx, byte [r9 + 6]
lea ecx, [rax + 0x73]
and cl, dl
add cl, cl
sub dl, cl
add dl, 0x7f
add dl, al
mov byte [r9 + 6], dl
movzx r8d, byte [r9 + 7]
lea edx, [rax + 0x74]
and dl, r8b
add dl, dl
movzx ecx, al
sub cl, dl
add r8b, 0x80
add cl, r8b
mov byte [r9 + 7], cl
movzx edx, byte [r9 + 8]
lea ecx, [rax + 0x75]
and cl, dl
add cl, cl
sub dl, cl
sub dl, 0x7f
add dl, al
mov byte [r9 + 8], dl
movzx r8d, byte [r9 + 9]
lea edx, [rax + 0x76]
and dl, r8b
add dl, dl
movzx ecx, al
sub cl, dl
sub r8b, 0x7e
add cl, r8b
mov byte [r9 + 9], cl
movzx r8d, byte [r9 + 0xa]
lea edx, [rax + 0x77]
and dl, r8b
add dl, dl
movzx ecx, al
sub cl, dl
sub r8b, 0x7d
add cl, r8b
mov byte [r9 + 0xa], cl
movzx edx, byte [r9 + 0xb]
lea ecx, [rax + 0x78]
and cl, dl
add cl, cl
sub dl, cl
sub dl, 0x7c
add dl, al
mov byte [r9 + 0xb], dl
movzx edx, byte [r9 + 0xc]
lea ecx, [rax + 0x79]
and cl, dl
add cl, cl
sub dl, cl
sub dl, 0x7b
add dl, al
mov byte [r9 + 0xc], dl
movzx edx, byte [r9 + 0xd]
lea ecx, [rax + 0x7a]
and cl, dl
add cl, cl
sub dl, cl
sub dl, 0x7a
add dl, al
mov byte [r9 + 0xd], dl
movzx r8d, byte [r9 + 0xe]
lea rcx, [r9 + r10]
and rcx, r8
imul rdx, rcx, 0xfffffffffffffffe
add rdx, r8
add rdx, r11
add rdx, rax
add dl, 0xc
mov byte [r9 + 0xe], dl
add rax, 0x10
cmp rax, 0x20
jb 0x180019090
mov al, 0xf3
mov dl, 0x8e
mov r8b, 0xfa
mov r9b, 0xf1
mov r10b, 0x89
mov r11b, 0xf5
mov dil, 0xbd
mov sil, 0xb1
mov r15b, 0xbc
mov r12b, 0x81
xorps xmm0, xmm0
xor ecx, ecx
mov qword [rbp + 0x6f], rcx
movups xmmword [rbp - 0x69], xmm0
movzx ecx, al
movzx eax, cl
and al, sil
add al, al
sub cl, al
sub cl, 0x26
mov byte [rbp - 0x76], cl
movzx ecx, dl
movzx eax, cl
and al, 0xb2
add al, al
sub cl, al
sub cl, 0x25
mov byte [rbp - 0x75], cl
movzx ecx, r8b
movzx eax, cl
and al, 0xb3
add al, al
sub cl, al
sub cl, 0x24
mov byte [rbp - 0x74], cl
movzx ecx, r9b
movzx eax, cl
and al, 0xb4
add al, al
sub cl, al
sub cl, 0x23
mov byte [rbp - 0x73], cl
movzx ecx, r10b
movzx eax, cl
and al, 0xb5
add al, al
sub cl, al
sub cl, 0x22
mov byte [rbp - 0x72], cl
movzx ecx, r11b
movzx eax, cl
and al, 0xb6
add al, al
sub cl, al
sub cl, 0x21
mov byte [rbp - 0x71], cl
movzx ecx, dil
movzx eax, cl
and al, 0xb7
add al, al
sub cl, al
sub cl, 0x20
mov byte [rbp - 0x70], cl
movzx ecx, sil
movzx eax, cl
and al, 0xb8
add al, al
sub cl, al
sub cl, 0x1f
mov byte [rbp - 0x6f], cl
movzx ecx, r15b
movzx eax, cl
and al, 0xb9
add al, al
sub cl, al
sub cl, 0x1e
mov byte [rbp - 0x6e], cl
movzx ecx, r12b
movzx eax, cl
and al, 0xba
add al, al
sub cl, al
sub cl, 0x1d
mov byte [rbp - 0x6d], cl
mov al, 0xf8
movzx ecx, al
movzx eax, cl
and al, 0xbb
add al, al
sub cl, al
sub cl, 0x1c
mov byte [rbp - 0x6c], cl
mov al, 0xff
movzx ecx, al
movzx eax, cl
and al, r15b
add al, al
sub cl, al
sub cl, 0x1b
mov byte [rbp - 0x6b], cl
mov al, 0x6a
movzx ecx, al
movzx eax, cl
and al, dil
add al, al
sub cl, al
sub cl, 0x1a
mov byte [rbp - 0x6a], cl
movd eax, xmm0
movzx ecx, al
movzx eax, cl
and al, 0xbe
add al, al
sub cl, al
sub cl, 0x19
mov byte [rbp - 0x69], cl
movzx ecx, byte [rbp - 0x68]
movzx eax, cl
and al, 0xbf
add al, al
sub cl, al
sub cl, 0x18
mov byte [rbp - 0x68], cl
movzx ecx, byte [rbp - 0x67]
movzx eax, cl
and al, 0xc0
add al, al
sub cl, al
sub cl, 0x17
mov byte [rbp - 0x67], cl
movzx ecx, byte [rbp - 0x66]
movzx eax, cl
and al, 0xc1
add al, al
sub cl, al
sub cl, 0x16
mov byte [rbp - 0x66], cl
movzx ecx, byte [rbp - 0x65]
movzx eax, cl
and al, 0xc2
add al, al
sub cl, al
sub cl, 0x15
mov byte [rbp - 0x65], cl
movzx ecx, byte [rbp - 0x64]
movzx eax, cl
and al, 0xc3
add al, al
sub cl, al
sub cl, 0x14
mov byte [rbp - 0x64], cl
movzx ecx, byte [rbp - 0x63]
movzx eax, cl
and al, 0xc4
add al, al
sub cl, al
sub cl, 0x13
mov byte [rbp - 0x63], cl
movzx ecx, byte [rbp - 0x62]
movzx eax, cl
and al, 0xc5
add al, al
sub cl, al
sub cl, 0x12
mov byte [rbp - 0x62], cl
movzx ecx, byte [rbp - 0x61]
movzx eax, cl
and al, 0xc6
add al, al
sub cl, al
sub cl, 0x11
mov byte [rbp - 0x61], cl
movzx ecx, byte [rbp - 0x60]
movzx eax, cl
and al, 0xc7
add al, al
sub cl, al
sub cl, 0x10
mov byte [rbp - 0x60], cl
movzx ecx, byte [rbp - 0x5f]
movzx eax, cl
and al, 0xc8
add al, al
sub cl, al
sub cl, 0xf
mov byte [rbp - 0x5f], cl
movzx ecx, byte [rbp - 0x5e]
movzx eax, cl
and al, 0xc9
add al, al
sub cl, al
sub cl, 0xe
mov byte [rbp - 0x5e], cl
movzx ecx, byte [rbp - 0x5d]
movzx eax, cl
and al, 0xca
add al, al
sub cl, al
sub cl, 0xd
mov byte [rbp - 0x5d], cl
movzx ecx, byte [rbp - 0x5c]
movzx eax, cl
and al, 0xcb
add al, al
sub cl, al
sub cl, 0xc
mov byte [rbp - 0x5c], cl
movzx ecx, byte [rbp - 0x5b]
movzx eax, cl
and al, 0xcc
add al, al
sub cl, al
sub cl, 0xb
mov byte [rbp - 0x5b], cl
movzx ecx, byte [rbp - 0x5a]
movzx eax, cl
and al, 0xcd
add al, al
sub cl, al
sub cl, 0xa
mov byte [rbp - 0x5a], cl
movzx ecx, byte [rbp + 0x6f]
mov eax, ecx
movabs rdx, 0xeb55bef9cd8863ce
and rax, rdx
imul rax, rax, 0xfffffffffffffffe
add rax, rdx
add rcx, rax
add cl, 0x29
mov byte [rbp - 0x59], cl
lea rcx, [rbp - 0x76]
call fcn.18000c7b0
lea rdx, [rbp - 0x41]
mov rcx, rax
call fcn.18000c310
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rcx, qword [rbx]
call rax
mov r15, rax
mov qword [rbp + 7], rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbp + 0xf], rax
mov byte [rbp + 0x17], 1
lea rax, [r15 - 1]
cmp rax, 0xfffffffffffffffd
ja 0x180019988
xor edx, edx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r12d, eax
test eax, eax
je 0x180019988
mov rcx, qword [rbp - 0x11]
cmp r12, rcx
ja 0x180019543
mov qword [rbp - 0x11], r12
lea rcx, [rbp - 0x21]
cmp qword [rbp - 9], 0xf
cmova rcx, qword [rbp - 0x21]
mov byte [rcx + r12], 0
jmp 0x180019598
mov rdi, r12
sub rdi, rcx
mov rdx, qword [rbp - 9]
mov rax, rdx
sub rax, rcx
cmp rdi, rax
ja 0x18001957f
mov qword [rbp - 0x11], r12
lea rbx, [rbp - 0x21]
cmp rdx, 0xf
cmova rbx, qword [rbp - 0x21]
add rbx, rcx
mov r8, rdi
xor edx, edx
mov rcx, rbx
call fcn.180045cf0
mov byte [rbx + rdi], 0
jmp 0x180019598
mov byte [rsp + 0x20], 0
mov r9, rdi
movzx r8d, byte [rbp + 0x6f]
mov rdx, rdi
lea rcx, [rbp - 0x21]
call fcn.18001d500
lea rbx, [rbp - 0x21]
cmp qword [rbp - 9], 0xf
jbe 0x1800195b0
mov rbx, qword [rbp - 0x21]
test rbx, rbx
je 0x180019988
mov r8, r12
xor edx, edx
mov rcx, rbx
call fcn.180045cf0
mov dword [rbp + 0x6f], 0
mov al, 0x80
mov dl, 0xae
mov r8b, 0xb3
mov r9b, 0x8f
mov r10b, 0xb0
mov r11b, 0x96
mov dil, 0x94
movzx esi, dil
xor ecx, ecx
mov qword [rbp + 0x77], rcx
mov qword [rbp - 0x80], rcx
mov word [rbp - 0x78], cx
movzx ecx, al
movzx eax, cl
and al, 0x5d
add al, al
sub cl, al
sub cl, 0x2e
mov byte [rsp + 0x40], cl
movzx ecx, dl
movzx eax, cl
and al, 0x5e
add al, al
sub cl, al
sub cl, 0x2d
mov byte [rsp + 0x41], cl
movzx ecx, r8b
movzx eax, cl
and al, 0x5f
add al, al
sub cl, al
sub cl, 0x2c
mov byte [rsp + 0x42], cl
movzx ecx, r9b
movzx eax, cl
and al, 0x60
add al, al
sub cl, al
sub cl, 0x2b
mov byte [rsp + 0x43], cl
movzx ecx, r10b
movzx eax, cl
and al, 0x61
add al, al
sub cl, al
sub cl, 0x2a
mov byte [rsp + 0x44], cl
movzx ecx, r11b
movzx eax, cl
and al, 0x62
add al, al
sub cl, al
sub cl, 0x29
mov byte [rsp + 0x45], cl
movzx ecx, dil
movzx eax, cl
and al, 0x63
add al, al
sub cl, al
sub cl, 0x28
mov byte [rsp + 0x46], cl
mov ecx, esi
movzx eax, sil
and al, 0x64
add al, al
sub cl, al
sub cl, 0x27
mov byte [rsp + 0x47], cl
mov al, 0xee
movzx ecx, al
movzx eax, cl
and al, 0x65
add al, al
sub cl, al
sub cl, 0x26
mov byte [rsp + 0x48], cl
mov rdx, qword [rbp + 0x77]
movzx ecx, dl
movzx eax, cl
and al, 0x66
add al, al
sub cl, al
sub cl, 0x25
mov byte [rbp - 0x80], cl
movzx ecx, byte [rbp - 0x7f]
movzx eax, cl
and al, 0x67
add al, al
sub cl, al
sub cl, 0x24
mov byte [rbp - 0x7f], cl
movzx ecx, byte [rbp - 0x7e]
movzx eax, cl
and al, 0x68
add al, al
sub cl, al
sub cl, 0x23
mov byte [rbp - 0x7e], cl
movzx ecx, byte [rbp - 0x7d]
movzx eax, cl
and al, 0x69
add al, al
sub cl, al
sub cl, 0x22
mov byte [rbp - 0x7d], cl
movzx ecx, byte [rbp - 0x7c]
movzx eax, cl
and al, 0x6a
add al, al
sub cl, al
sub cl, 0x21
mov byte [rbp - 0x7c], cl
movzx ecx, byte [rbp - 0x7b]
movzx eax, cl
and al, 0x6b
add al, al
sub cl, al
sub cl, 0x20
mov byte [rbp - 0x7b], cl
movzx ecx, byte [rbp - 0x7a]
movzx eax, cl
and al, 0x6c
add al, al
sub cl, al
sub cl, 0x1f
mov byte [rbp - 0x7a], cl
movzx ecx, byte [rbp - 0x79]
movzx eax, cl
and al, 0x6d
add al, al
sub cl, al
sub cl, 0x1e
mov byte [rbp - 0x79], cl
movzx ecx, dl
movzx eax, cl
and al, 0x6e
add al, al
sub cl, al
sub cl, 0x1d
mov byte [rbp - 0x78], cl
movzx ecx, byte [rbp - 0x77]
mov eax, ecx
movabs rdx, 0x79d46412a151a16f
and rax, rdx
imul rax, rax, 0xfffffffffffffffe
add rax, rdx
add rcx, rax
add cl, 0x75
mov byte [rbp - 0x77], cl
mov al, 0xfb
mov r8b, 0xf0
mov r9b, 0xe4
mov r10b, 0xf9
mov r11b, 0xf5
mov dil, 0xfd
mov sil, 0x29
xor ecx, ecx
mov qword [rbp + 0x77], rcx
mov dword [rbp - 0x4b], ecx
movzx edx, al
movzx eax, dl
and al, 0xd2
mov ecx, 0xa
sub cl, al
add cl, cl
add cl, dl
mov byte [rbp - 0x58], cl
movzx ecx, r8b
movzx eax, cl
and al, 0xd3
add al, al
sub cl, al
add cl, 0x15
mov byte [rbp - 0x57], cl
movzx edx, r9b
movzx eax, dl
and al, 0xd4
mov ecx, 0xb
sub cl, al
add cl, cl
add cl, dl
mov byte [rbp - 0x56], cl
movzx ecx, r10b
movzx eax, cl
and al, 0xd5
add al, al
sub cl, al
add cl, 0x17
mov byte [rbp - 0x55], cl
movzx edx, r11b
movzx eax, dl
and al, 0xd6
mov ecx, 0xc
sub cl, al
add cl, cl
add cl, dl
mov byte [rbp - 0x54], cl
movzx ecx, dil
movzx eax, cl
and al, 0xd7
add al, al
sub cl, al
add cl, 0x19
mov byte [rbp - 0x53], cl
movzx edx, sil
movzx eax, dl
and al, 0xd8
mov ecx, 0xd
sub cl, al
add cl, cl
add cl, dl
mov byte [rbp - 0x52], cl
movzx eax, sil
mov ecx, eax
and al, 0xd9
add al, al
sub cl, al
add cl, 0x1b
mov byte [rbp - 0x51], cl
mov al, 0x36
movzx edx, al
movzx eax, dl
and al, 0xda
mov ecx, 0xe
sub cl, al
add cl, cl
add cl, dl
mov byte [rbp - 0x50], cl
movzx eax, r10b
mov ecx, eax
and al, 0xdb
add al, al
sub cl, al
add cl, 0x1d
mov byte [rbp - 0x4f], cl
mov al, 0xf6
movzx ecx, al
movzx eax, cl
and al, 0xdc
sub r13b, al
add r13b, r13b
add r13b, cl
mov byte [rbp - 0x4e], r13b
mov al, 0xf7
movzx ecx, al
movzx eax, cl
and al, 0xdd
add al, al
sub cl, al
add cl, 0x1f
mov byte [rbp - 0x4d], cl
mov al, 0x60
movzx edx, al
movzx eax, dl
and al, 0xde
mov ecx, 0x10
sub cl, al
add cl, cl
add cl, dl
mov byte [rbp - 0x4c], cl
movzx ecx, byte [rbp + 0x77]
movzx eax, cl
and al, 0xdf
add al, al
sub cl, al
add cl, 0x21
mov byte [rbp - 0x4b], cl
movzx edx, byte [rbp - 0x4a]
movzx eax, dl
and al, 0xe0
mov ecx, 0x11
sub cl, al
add cl, cl
add cl, dl
mov byte [rbp - 0x4a], cl
movzx ecx, byte [rbp - 0x49]
movzx eax, cl
and al, 0xe1
add al, al
sub cl, al
add cl, 0x23
mov byte [rbp - 0x49], cl
movzx ecx, byte [rbp - 0x48]
mov eax, ecx
movabs rdx, 0x4fccd0669040ebe2
and rax, rdx
imul rax, rax, 0xfffffffffffffffe
add rax, rdx
add rcx, rax
add cl, 0x42
mov byte [rbp - 0x48], cl
lea rcx, [rbp - 0x58]
call fcn.18000c7b0
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.18000c310
mov qword [rsp + 0x20], 0
lea r9, [rbp + 0x6f]
mov r8d, r12d
mov rdx, rbx
mov rcx, r15
call rax
mov byte [r14], 1
lea rcx, [r14 + 8]
lea rdx, [rbp - 0x21]
call fcn.180016b50
nop
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rdx, qword [rbp - 9]
cmp rdx, 0xf
jbe 0x180019a30
inc rdx
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180019a2b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180019a54
jmp 0x180019a2b
xorps xmm0, xmm0
movups xmmword [rbp - 0x41], xmm0
movdqa xmm1, xmmword [0x180054610]
movdqu xmmword [rbp - 0x31], xmm1
mov byte [rbp - 0x41], 0
mov byte [r14], 0
lea rcx, [r14 + 8]
lea rdx, [rbp - 0x41]
call fcn.180016b50
nop
mov rdx, qword [rbp - 0x29]
cmp rdx, 0xf
jbe 0x1800199ea
inc rdx
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800199e4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180019a5a
call fcn.18001f510
nop
test r15, r15
je 0x1800199f9
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rdx, qword [rbp - 9]
cmp rdx, 0xf
jbe 0x180019a30
inc rdx
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180019a2b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180019a4e
call fcn.18001f510
mov rax, r14
mov rbx, qword [rsp + 0x130]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.18002cef4
int3
call fcn.18002cef4
nop
call fcn.18002cef4
nop