Function at 0x140016f30
Capabilities:
Get file size

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x1d8], rbx
mov rax, qword [0x14003c008]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov r13, r8
mov qword [rsp + 0x60], r8
mov rdi, rdx
mov qword [rsp + 0x68], rdx
mov r12, rcx
mov qword [rsp + 0x58], rcx
mov eax, 0xf
mov dword [rbp - 0x48], 0x4000f
mov dword [rbp - 0x44], 0x100009
mov ecx, 0x38
mov word [rbp - 0x40], cx
mov dword [0x140041aa0], 0x800
xor esi, esi
mov word [0x14003e1b4], si
mov word [0x14003e1b0], si
mov word [0x14003e16c], si
mov word [0x14003e170], ax
mov word [0x14003e174], si
lea r8, str.Converting
lea rdx, [0x14003e1d0]
mov al, 0x43
lea r15, [0x1400307e0]
mov r9, qword [0x14003d328]
cmp al, 0x20
jae 0x140016ff6
movzx eax, al
movzx ecx, word [r15 + rax*2]
jmp 0x14001700b
cmp al, 0x80
jae 0x140016fff
movzx ecx, al
jmp 0x14001700b
movzx eax, al
movzx ecx, word [r9 + rax*2 - 0x100]
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140016fe8
mov word [rdx], si
xor r8d, r8d
xor ecx, ecx
lea rdx, [0x14003e1d0]
call qword [0x140041ab0]
test ax, ax
mov r15d, 4
je 0x140017047
mov eax, 6
jmp 0x140017884
mov ecx, 0x110
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [0x1400401d8], rax
test rax, rax
jne 0x140017067
movzx eax, r15w
jmp 0x140017884
mov ecx, dword [0x140041aa0]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbx, rax
test rax, rax
je 0x14001705e
mov rdx, rdi
call fcn.140004050
mov word [0x1400402e4], ax
mov eax, 0x20
mov dword [rbx], eax
mov rdx, rbx
call fcn.1400041b0
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp qword [0x14003e178], rsi
je 0x14001705e
cmp qword [0x14003e180], rsi
je 0x14001705e
mov rcx, rsi
lea r14, str.tmpcap.hlp
nop
movzx eax, byte [rcx + r14]
mov byte [rbp + rcx - 0x38], al
lea rcx, [rcx + 1]
test al, al
jne 0x1400170c0
mov ecx, 0x10
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonLinkCtrl::XElementButtonLinkCtrl]
mov rbx, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x14001711c
mov word [rax], si
mov qword [rax + 8], rsi
lea rcx, [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x14001711f
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc140u.dll_operator_1]
mov qword [rbx + 8], rax
lea rdx, [rbp - 0x38]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x14001711f
mov rbx, rsi
mov edx, 0xa
mov rcx, rbx
call fcn.14002a380
mov rdi, rax
test rax, rax
jne 0x14001713e
mov eax, 2
jmp 0x140017884
test rbx, rbx
je 0x14001715f
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140017152
call qword [sym.imp.mfc140u.dll_operator]
mov edx, 0x10
mov rcx, rbx
call fcn.14002c9cc
xor edx, edx
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [0x14003e168], eax
xor r8d, r8d
xor edx, edx
mov rcx, r12
call fcn.14002a520
cmp eax, 0xffffffff
jne 0x14001718d
mov eax, 1
jmp 0x140017884
mov word [0x14003e1c0], si
mov word [0x14003e1bc], si
cmp dword [0x14003e168], 0
jne 0x1400171ae
mov eax, 3
jmp 0x140017884
mov rdx, rdi
mov rcx, r12
call fcn.14000b310
test ax, ax
je 0x1400171db
cwde
cmp eax, 0xfffffffc
je 0x14001703d
cmp eax, 0xfffffffe
je 0x140017134
cmp eax, 0xffffffff
je 0x140017183
jmp 0x14001705e
mov rcx, rdi
call fcn.14002a1e0
mov dword [r13], esi
mov r15d, 1
mov word [0x14003e1b4], r15w
mov word [0x14003e1b0], si
mov r10d, 0xf
mov word [0x14003e16c], r10w
mov eax, 4
mov word [0x14003e170], ax
mov word [0x14003e174], r10w
lea r8, str.Sorting
lea rdi, [0x14003e1d0]
mov rdx, rdi
mov al, 0x53
mov r9, qword [0x14003d328]
lea r14, [0x1400307e0]
nop
cmp al, 0x20
jae 0x14001724e
movzx eax, al
movzx ecx, word [r14 + rax*2]
jmp 0x140017263
cmp al, 0x80
jae 0x140017257
movzx ecx, al
jmp 0x140017263
movzx eax, al
movzx ecx, word [r9 + rax*2 - 0x100]
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140017240
mov word [rdx], si
xor r8d, r8d
mov ecx, r10d
mov rdx, rdi
call qword [0x140041ab0]
test ax, ax
lea r14, str.tmpcap.hlp
jne 0x14001703d
lea rax, [rbp - 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x50]
lea rbx, str.tmpcap.unq
mov rdx, rbx
mov rcx, r14
call fcn.140029640
test eax, eax
jne 0x1400171a4
mov rcx, r14
call fcn.14001ae30
cmp dword [0x14003e168], 0
je 0x1400171a4
mov word [0x14003f7f8], r15w
lea r8, [rbp - 0x70]
mov edx, dword [rsp + 0x50]
lea rcx, [rsp + 0x78]
call fcn.140028810
test eax, eax
je 0x14001730f
cmp word [0x14003f7f8], 0xffff
jne 0x1400171a4
jmp 0x14001703d
mov word [0x14003f7f8], si
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__unlink]
mov r14d, 2
mov word [0x14003e1b4], r14w
mov word [0x14003e1b0], si
movzx r9d, si
lea rax, [rbp - 0x48]
mov ecx, r14d
nop
add r9w, word [rax]
lea rax, [rax + 2]
sub rcx, r15
jne 0x140017340
mov word [0x14003e16c], r9w
mov eax, 9
mov word [0x14003e170], ax
mov word [0x14003e174], r9w
lea r8, str.Collecting_statistics
mov rdx, rdi
mov al, 0x43
mov r10, qword [0x14003d328]
lea r11, [0x1400307e0]
cmp al, 0x20
jae 0x140017391
movzx eax, al
movzx ecx, word [r11 + rax*2]
jmp 0x1400173a6
cmp al, 0x80
jae 0x14001739a
movzx ecx, al
jmp 0x1400173a6
movzx eax, al
movzx ecx, word [r10 + rax*2 - 0x100]
mov word [rdx], cx
add rdx, r14
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140017383
mov word [rdx], si
xor r8d, r8d
mov rdx, rdi
movzx ecx, r9w
call qword [0x140041ab0]
test ax, ax
jne 0x14001703d
mov rcx, rsi
nop word [rax + rax]
movzx eax, byte [rcx + rbx]
mov byte [rbp + rcx - 0x38], al
lea rcx, [rcx + 1]
test al, al
jne 0x1400173e0
lea rcx, [rbp - 0x38]
call fcn.14002a700
mov rdi, rax
mov edx, r15d
mov rcx, rax
call fcn.14002a380
mov rbx, rax
test rax, rax
jne 0x140017417
or eax, 0xffffffff
jmp 0x140017884
mov rcx, rdi
call fcn.14002a780
xor edx, edx
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [0x14003e168], eax
mov word [0x14003e1c0], si
mov word [0x14003e1bc], si
test eax, eax
je 0x1400171a4
mov rcx, rbx
call fcn.1400178b0
test ax, ax
jns 0x140017470
cwde
cmp eax, 0xfffffffc
je 0x14001703d
cmp eax, 0xffffffff
jne 0x1400171a4
mov eax, 4
jmp 0x140017884
mov rcx, rbx
call fcn.14002a1e0
mov rcx, qword [0x1400401d8]
movzx eax, word [rcx + 0x6c]
mov word [rsp + 0x20], ax
mov r9, qword [0x14003e198]
movzx edx, byte [rcx + 0x3d]
call fcn.140005ca0
mov ebx, 3
mov word [0x14003e1b4], bx
mov word [0x14003e1b0], si
movzx r9d, si
lea rax, [rbp - 0x48]
mov ecx, ebx
nop word [rax + rax]
add r9w, word [rax]
lea rax, [rax + 2]
sub rcx, r15
jne 0x1400174c0
mov word [0x14003e16c], r9w
mov eax, 0x10
mov word [0x14003e170], ax
mov word [0x14003e174], r9w
lea r8, str.Merging
lea rdx, [0x14003e1d0]
mov al, 0x4d
mov r10, qword [0x14003d328]
lea r12, [0x1400307e0]
cmp al, 0x20
jae 0x140017515
movzx eax, al
movzx ecx, word [r12 + rax*2]
jmp 0x14001752a
cmp al, 0x80
jae 0x14001751e
movzx ecx, al
jmp 0x14001752a
movzx eax, al
movzx ecx, word [r10 + rax*2 - 0x100]
mov word [rdx], cx
add rdx, r14
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140017507
mov word [rdx], si
xor r8d, r8d
lea rdx, [0x14003e1d0]
movzx ecx, r9w
call qword [0x140041ab0]
test ax, ax
mov r12, qword [rsp + 0x58]
jne 0x14001703d
lea rsi, [0x140041a20]
mov rax, rsi
xor edx, edx
mov ecx, edx
nop
cmp byte [rax], dl
jne 0x140017579
cmp byte [rax + 1], dl
je 0x140017580
add rax, r14
inc ecx
jmp 0x140017570
add cx, cx
movzx edi, dx
cmp dx, cx
jge 0x14001760f
mov rax, qword [0x1400401d8]
movzx r15d, byte [rax + 0x3d]
dec cx
shr cx, 1
inc cx
movzx r14d, cx
mov r12, qword [0x14003e198]
movzx r13d, word [0x14003e1b8]
nop word [rax + rax]
movzx eax, word [rsi]
mov word [rsp + 0x50], ax
mov word [rsp + 0x20], r13w
mov r9, r12
movzx edx, r15b
lea rcx, [rsp + 0x50]
call fcn.140006420
movsx r9, di
movzx eax, word [rsp + 0x50]
mov word [rbp + r9 - 0x10], ax
lea rsi, [rsi + 2]
inc di
sub r14, 1
jne 0x1400175c0
mov r14d, 2
lea r15d, [r14 - 1]
mov r12, qword [rsp + 0x58]
mov r13, qword [rsp + 0x60]
lea rcx, [rbp - 0x10]
call fcn.140006560
test ax, ax
jns 0x14001762f
cmp ax, 0xffff
je 0x140017466
movzx eax, bx
jmp 0x140017884
mov word [0x1400400c8], ax
xor ecx, ecx
lea rdx, str.tmpcap.unq
nop
movzx eax, byte [rcx + rdx]
mov byte [rbp + rcx - 0x38], al
lea rcx, [rcx + 1]
test al, al
jne 0x140017640
lea rcx, [rbp - 0x38]
call fcn.14002a700
mov rsi, rax
mov edx, ebx
mov rcx, rax
call fcn.14002a380
mov rdi, rax
test rax, rax
je 0x14001740f
mov rcx, rsi
call fcn.14002a780
xor edx, edx
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [0x14003e168], eax
xor esi, esi
mov word [0x14003e1c0], si
mov word [0x14003e1bc], si
test eax, eax
je 0x140017627
mov r9, r12
mov r8, r13
mov rdx, rdi
call fcn.140017ef0
test ax, ax
jns 0x1400176ca
cwde
cmp eax, 0xfffffffc
je 0x14001703d
cmp eax, 0xffffffff
je 0x140017627
jmp 0x140017466
mov rcx, rdi
call fcn.14002a1e0
lea rax, str.tmpcap.unq
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__unlink]
cmp word [0x14003dee4], si
je 0x14001783c
mov edi, 4
mov word [0x14003e1b4], di
mov word [0x14003e1b0], si
movzx r9d, si
lea rax, [rbp - 0x48]
mov ecx, edi
nop dword [rax]
add r9w, word [rax]
lea rax, [rax + 2]
sub rcx, 1
jne 0x140017710
mov word [0x14003e16c], r9w
mov eax, 0x38
mov word [0x14003e170], ax
mov word [0x14003e174], r9w
lea r8, str.Compressing
lea rdx, [0x14003e1d0]
mov al, 0x43
mov r10, qword [0x14003d328]
lea rdi, [0x1400307e0]
cmp al, 0x20
jae 0x140017765
movzx eax, al
movzx ecx, word [rdi + rax*2]
jmp 0x14001777a
cmp al, 0x80
jae 0x14001776e
movzx ecx, al
jmp 0x14001777a
movzx eax, al
movzx ecx, word [r10 + rax*2 - 0x100]
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140017758
mov word [rdx], si
xor r8d, r8d
lea rdx, [0x14003e1d0]
movzx ecx, r9w
call qword [0x140041ab0]
test ax, ax
mov edi, 4
jne 0x14001703d
lea rcx, str.tmpdic.hlp
call fcn.14001ae30
cmp dword [0x14003e168], esi
je 0x140017627
call fcn.1400129c0
test ax, ax
je 0x140017808
cwde
cmp eax, 0xfffffff9
je 0x140017801
cmp eax, 0xfffffffc
je 0x14001703d
cmp eax, 0xfffffffe
je 0x1400177f8
cmp eax, 0xffffffff
je 0x14001705e
movzx eax, di
jmp 0x140017884
movzx eax, r14w
jmp 0x140017884
mov eax, 7
jmp 0x140017884
lea rcx, str.tmpdic.hlp
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__unlink]
mov rcx, qword [rsp + 0x68]
call fcn.140006ee0
test ax, ax
je 0x140017833
cmp ax, 0xffff
je 0x140017627
movzx eax, di
jmp 0x140017884
lea rcx, str.tmpdic.dat
jmp 0x14001785d
lea rcx, str.tmpdic.hlp
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__unlink]
lea rcx, str.hlp1.hlp
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__unlink]
lea rcx, str.hlp2.hlp
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__unlink]
call fcn.140004330
mov rcx, qword [0x1400401d8]
test rcx, rcx
je 0x140017881
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [0x1400401d8], rsi
movzx eax, si
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.14002c160
mov rbx, qword [rsp + 0x1d8]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret