Function at 0x14000bf70
Capabilities:
Get file size

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xd0
mov qword [rbp - 0x59], 0xfffffffffffffffe
mov qword [rsp + 0x120], rbx
mov rax, qword [0x14003c008]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov qword [rbp - 0x61], rdx
mov rsi, rcx
mov r13d, 0x20
mov dword [rbp - 0x11], 0x80020
lea eax, [r13 - 2]
mov dword [rbp - 0xd], 0x1e001e
xor r15d, r15d
mov word [0x14003e1b4], r15w
mov word [0x14003e1b0], r15w
mov word [0x14003e16c], r15w
mov word [0x14003e170], r13w
mov word [0x14003e174], r15w
lea r8, str.Converting
lea rdx, [0x14003e1d0]
mov al, 0x43
lea r12, [0x140000000]
mov r9, qword [0x14003d328]
nop
cmp al, r13b
jae 0x14000c023
movzx eax, al
movzx ecx, word [r12 + rax*2 + 0x307e0]
jmp 0x14000c038
cmp al, 0x80
jae 0x14000c02c
movzx ecx, al
jmp 0x14000c038
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 0x14000c010
mov word [rdx], r15w
xor r8d, r8d
xor ecx, ecx
lea rdx, [0x14003e1d0]
call qword [0x140041ab0]
test ax, ax
mov r12d, 8
je 0x14000c075
mov eax, 6
jmp 0x14000cc47
mov rcx, r15
lea r14, str.tmpdic.itc
nop
movzx eax, byte [rcx + r14]
mov byte [rbp + rcx - 9], al
lea rcx, [rcx + 1]
test al, al
jne 0x14000c080
mov ecx, 0x10
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonLinkCtrl::XElementButtonLinkCtrl]
mov rbx, rax
mov qword [rbp - 0x69], rax
test rax, rax
je 0x14000c0dc
mov word [rax], r15w
mov qword [rax + 8], r15
lea rcx, [rbp - 9]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x14000c0df
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc140u.dll_operator_1]
mov qword [rbx + 8], rax
lea rdx, [rbp - 9]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x14000c0df
mov rbx, r15
mov edx, 0xa
mov rcx, rbx
call fcn.14002a380
mov rdi, rax
test rax, rax
jne 0x14000c0fe
mov eax, 2
jmp 0x14000cc47
test rbx, rbx
je 0x14000c11f
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14000c112
call qword [sym.imp.mfc140u.dll_operator]
mov edx, 0x10
mov rcx, rbx
call fcn.14002c9cc
xor edx, edx
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [0x14003e168], eax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebx, eax
lea ecx, [rax + 1]
test ecx, 0xfffffffe
jne 0x14000c17d
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x14000c16b
mov ecx, eax
lea rax, [0x140000000]
mov edx, dword [rax + rcx*4 + 0x30680]
jmp 0x14000c170
mov edx, operator
mov dword [0x140042de8], edx
mov byte [0x1400433b0], 0
cmp ebx, 0xffffffff
jne 0x14000c18c
mov eax, 1
jmp 0x14000cc47
mov word [0x14003e1c0], r15w
mov word [0x14003e1bc], r15w
cmp dword [0x14003e168], 0
jne 0x14000c1af
mov eax, 3
jmp 0x14000cc47
mov rdx, rdi
mov rcx, rsi
call fcn.14000a360
test ax, ax
je 0x14000c1e1
cwde
cmp eax, 0xfffffffc
je 0x14000c06b
cmp eax, 0xfffffffe
je 0x14000c0f4
cmp eax, 0xffffffff
je 0x14000c182
mov eax, 4
jmp 0x14000cc47
mov rcx, rdi
call fcn.14002a1e0
mov edi, 1
mov word [0x14003e1b4], di
mov word [0x14003e1b0], r15w
mov word [0x14003e16c], r13w
mov word [0x14003e170], r12w
mov word [0x14003e174], r13w
lea r8, str.Sorting
lea rsi, [0x14003e1d0]
mov rdx, rsi
mov al, 0x53
mov r9, qword [0x14003d328]
lea r14, [0x140000000]
cmp al, 0x20
jae 0x14000c248
movzx eax, al
movzx ecx, word [r14 + rax*2 + 0x307e0]
jmp 0x14000c25d
cmp al, 0x80
jae 0x14000c251
movzx ecx, al
jmp 0x14000c25d
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 0x14000c236
mov word [rdx], r15w
xor r8d, r8d
mov ecx, r13d
mov rdx, rsi
call qword [0x140041ab0]
test ax, ax
lea r14, str.tmpdic.itc
jne 0x14000c06b
lea rax, [rbp - 0x39]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x51]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x6d]
lea rbx, str.tmpdic.unq
mov rdx, rbx
mov rcx, r14
call fcn.140029640
test eax, eax
jne 0x14000c1a5
mov rcx, r14
call fcn.14001ae30
cmp dword [0x14003e168], 0
je 0x14000c1a5
mov word [0x14003f7f8], di
lea r8, [rbp - 0x39]
mov edx, dword [rbp - 0x6d]
lea rcx, [rbp - 0x51]
call fcn.140028810
test eax, eax
je 0x14000c305
cmp word [0x14003f7f8], 0xffff
jne 0x14000c1a5
jmp 0x14000c06b
mov word [0x14003f7f8], r15w
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], r15w
movzx r9d, r15w
lea rax, [rbp - 0x11]
mov ecx, r14d
nop word [rax + rax]
add r9w, word [rax]
lea rax, [rax + 2]
sub rcx, rdi
jne 0x14000c340
mov word [0x14003e16c], r9w
mov eax, 0x1e
mov word [0x14003e170], ax
mov word [0x14003e174], r9w
lea r8, str.Collecting_statistics
mov rdx, rsi
mov al, 0x43
mov r10, qword [0x14003d328]
lea r11, [0x140000000]
cmp al, 0x20
jae 0x14000c395
movzx eax, al
movzx ecx, word [r11 + rax*2 + 0x307e0]
jmp 0x14000c3aa
cmp al, 0x80
jae 0x14000c39e
movzx ecx, al
jmp 0x14000c3aa
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 0x14000c383
mov word [rdx], r15w
xor r8d, r8d
mov rdx, rsi
movzx ecx, r9w
call qword [0x140041ab0]
test ax, ax
jne 0x14000c06b
mov rdx, r15
nop dword [rax + rax]
movzx eax, byte [rdx + rbx]
mov byte [rbp + rdx - 9], al
lea rdx, [rdx + 1]
test al, al
jne 0x14000c3e0
mov ecx, 0x10
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonLinkCtrl::XElementButtonLinkCtrl]
mov rbx, rax
mov qword [rbp - 0x69], rax
test rax, rax
je 0x14000c43b
mov word [rax], r15w
mov qword [rax + 8], r15
lea rcx, [rbp - 9]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x14000c43e
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc140u.dll_operator_1]
mov qword [rbx + 8], rax
lea rdx, [rbp - 9]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x14000c43e
mov rbx, r15
mov edx, edi
mov rcx, rbx
call fcn.14002a380
mov rsi, rax
test rax, rax
jne 0x14000c458
movzx eax, di
jmp 0x14000cc47
mov rcx, rbx
call fcn.14002a780
lea rdx, [0x140030978]
lea rcx, str.tmp1cod.dat
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
mov r15, rax
test rax, rax
jne 0x14000c485
movzx eax, r14w
jmp 0x14000cc47
mov ecx, 0x800
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
je 0x14000c1d7
mov ecx, 0x800
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbx, rax
test rax, rax
je 0x14000c1d7
mov r12, rax
mov ecx, 0xfde8
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r13, rax
test rax, rax
je 0x14000c1d7
mov ecx, 0x1964
mov word [0x14003ee64], cx
add rax, 4
xor edx, edx
nop
mov qword [rax - 4], rdx
mov word [rax + 4], dx
lea rax, [rax + 0xa]
sub rcx, 1
jne 0x14000c4e0
mov dword [rbx], 0x20
mov rdx, rbx
call fcn.1400041b0
xor edx, edx
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [0x14003e168], eax
xor ecx, ecx
mov word [0x14003e1c0], cx
mov word [0x14003e1bc], cx
test eax, eax
je 0x14000c1a5
mov edx, 0x800
mov r8, rsi
mov rcx, rdi
call fcn.140029e70
test ax, ax
jle 0x14000c7be
mov r14, rbx
mov rcx, rsi
call fcn.14001af60
test ax, ax
je 0x14000c5a6
movzx r8d, word [0x14003e1bc]
mov word [0x14003e1b0], r8w
mov ecx, r8d
movzx eax, word [0x14003e170]
imul ecx, eax
mov eax, 0x51eb851f
imul ecx
mov ecx, edx
sar ecx, 5
mov eax, ecx
shr eax, 0x1f
add ecx, eax
add cx, word [0x14003e16c]
mov word [0x14003e174], cx
lea rdx, [0x14003e1d0]
call qword [0x140041ab0]
test ax, ax
jne 0x14000c06b
mov dword [rbx], 0x20
xor r11d, r11d
mov rdx, r14
mov rcx, rdi
call fcn.14002a7b0
mov rbx, rax
test rax, rax
je 0x14000c1d7
movzx ecx, r11w
mov r8, rax
sub r8, rdi
lea r9, [0x14003f8a0]
test r8, r8
jle 0x14000c5f4
mov edx, r11d
nop
movzx eax, byte [rdx + rdi]
mov byte [rdx + r9], al
inc cx
movsx rdx, cx
cmp rdx, r8
jl 0x14000c5e0
movsx rax, cx
cmp rax, 0x800
jae 0x14000c7b8
mov byte [rax + r9], r11b
lea eax, [rcx + 1]
movsx rax, ax
cmp rax, 0x800
jae 0x14000c7b2
mov byte [rax + r9], r11b
lea rdx, [rbp - 0x79]
mov rcx, rbx
call fcn.140029c70
test ax, ax
je 0x14000c795
movsx rax, ax
add rbx, rax
lea rdx, [rbp - 0x75]
mov rcx, rbx
call fcn.140029c70
test ax, ax
je 0x14000c1d7
movsx rax, ax
add rbx, rax
lea rdx, [rbp - 0x71]
mov rcx, rbx
call fcn.140029c70
test ax, ax
je 0x14000c1d7
movsx rcx, ax
add rcx, rbx
lea rdx, [rbp - 0x6d]
call fcn.140029c70
test ax, ax
je 0x14000c1d7
movzx eax, word [rbp - 0x79]
mov word [rbp - 0x67], ax
movzx eax, word [rbp - 0x75]
mov word [rbp - 0x69], ax
movzx eax, word [rbp - 0x71]
mov word [rbp - 0x65], ax
movzx eax, word [rbp - 0x6d]
mov word [rbp - 0x63], ax
mov r8, r15
mov rdx, r13
mov rcx, qword [rbp - 0x69]
call fcn.14000cd40
test ax, ax
jne 0x14000c0f4
xor ebx, ebx
movzx edx, bx
movzx eax, byte [0x14003f8a0]
lea r8, [0x14003f8a0]
cmp byte [0x14003eea0], al
jne 0x14000c70d
mov ecx, ebx
lea r9, [0x14003eea0]
movzx eax, byte [rcx + r8 + 1]
cmp byte [rcx + r9 + 1], al
jne 0x14000c70d
cmp byte [rcx + r9], bl
jne 0x14000c6fa
cmp byte [rcx + r8], bl
je 0x14000c70d
add rcx, 2
add dx, 2
movzx eax, byte [rcx + r8]
cmp byte [rcx + r9], al
je 0x14000c6e1
movzx edx, dx
add rdx, r8
call fcn.1400041b0
lea rax, [0x14003f8a0]
lea rcx, [0x14003eea0]
mov rdx, rcx
nop dword [rax]
movzx ecx, byte [rax]
test cl, cl
jne 0x14000c73c
cmp byte [rax + 1], bl
je 0x14000c74f
mov byte [rdx], cl
movzx ecx, byte [rax + 1]
mov byte [rdx + 1], cl
add rdx, 2
add rax, 2
jmp 0x14000c730
movzx ecx, byte [rax]
mov byte [rdx], cl
movzx ecx, byte [rax + 1]
mov byte [rdx + 1], cl
mov rcx, rdi
call fcn.14002a800
mov word [0x14003e1c4], ax
mov dword [r14], 0x20
mov rbx, r12
mov edx, 0x800
mov r8, rsi
mov rcx, rdi
call fcn.140029e70
test ax, ax
jg 0x14000c545
mov r14d, 2
jmp 0x14000c7be
movzx eax, byte [rbx]
sub al, 0x30
cmp al, 9
ja 0x14000c7a8
cmp byte [rbx + 1], 0
je 0x14000c1d7
mov eax, 7
jmp 0x14000cc47
call fcn.14002c590
int3
call fcn.14002c590
int3
mov rcx, rsi
call fcn.14002a1e0
mov rdx, r15
mov rcx, r13
call fcn.14000f9a0
test ax, ax
je 0x14000c7e0
mov eax, 5
jmp 0x14000cc47
mov dword [rbx], 0x2d007c
mov dword [rbx + 4], 0x20
xor r15d, r15d
mov rdx, r12
call fcn.1400041b0
lea r9, [0x14000cca0]
mov edx, 0xff
lea r8d, [r15 + 0xc]
lea rbx, [0x14003e270]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
movzx r10d, r15w
cmp dword [0x14003e274], r15d
je 0x14000c843
nop word [rax + rax]
inc r10w
movsx rax, r10w
lea rcx, [rax + rax*2]
cmp dword [rbx + rcx*4 + 4], r15d
jne 0x14000c830
movsx rax, r10w
lea rcx, [rax + rax*2]
lea r9, [rcx*4]
mov eax, dword [0x14003dee0]
mov dword [r9 + rbx + 4], eax
mov word [r9 + rbx], r15w
movzx ecx, r15w
call fcn.14002a820
mov byte [r9 + rbx + 8], al
inc r10w
movsx rax, r10w
lea rcx, [rax + rax*2]
mov esi, 1
mov dword [rbx + rcx*4 + 4], esi
mov word [rbx + rcx*4], r15w
mov byte [rbx + rcx*4 + 8], sil
inc r10w
mov word [0x14003e1b8], r10w
movsx rdx, r10w
lea r9, [0x14000cc70]
lea r8d, [rsi + 0xb]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
movsx rcx, word [0x14003e1b8]
shl ecx, 2
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rcx, rax
mov qword [0x14003e198], rax
test rax, rax
je 0x14000c1d7
lea r9, [0x14003f7d0]
movzx r11d, word [0x14003e1b8]
cmp r15w, r11w
jge 0x14000c952
mov rdx, r15
lea r8, [0x14003e271]
movzx r10d, r11w
nop dword [rax + rax]
movzx eax, byte [r8 - 1]
mov byte [rdx + rcx], al
movzx ecx, byte [r8]
mov rax, qword [0x14003e198]
mov byte [rdx + rax + 1], cl
movzx ecx, byte [r8 + 7]
mov rax, qword [0x14003e198]
mov byte [rdx + rax + 2], cl
mov rax, qword [0x14003e198]
mov byte [rdx + rax + 3], r15b
movzx eax, byte [r8]
inc word [r9 + rax*2]
add rdx, 4
lea r8, [r8 + 0xc]
sub r10, rsi
je 0x14000c952
mov rcx, qword [0x14003e198]
jmp 0x14000c900
movzx edx, r15w
mov byte [0x14003dee6], dl
movzx eax, r15w
movzx ecx, word [r9]
cmp cx, dx
jbe 0x14000c972
movzx edx, cx
mov byte [0x14003dee6], al
inc ax
add r9, 2
cmp ax, 0x10
jl 0x14000c960
movsx rdx, r11w
lea r9, [0x14000cca0]
mov r8d, 0xc
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
movsx rcx, word [0x14003e1b8]
mov ecx, ecx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [0x14003e1a0], rax
test rax, rax
je 0x14000c1d7
movzx r10d, r15w
movzx edx, word [0x14003e1b8]
cmp r15w, dx
jge 0x14000ca4b
nop
movzx ecx, r15w
movsx rbx, r10w
lea rax, [rbx + rbx*2]
lea r9, [rax*4]
lea rax, [0x14003e270]
movzx r11d, byte [r9 + rax]
mov r8, qword [0x14003e198]
lea r15, [0x14003e270]
nop
movsx rax, cx
cmp r11b, byte [r8 + rax*4]
jne 0x14000ca17
movzx eax, byte [r8 + rax*4 + 1]
cmp byte [r9 + r15 + 1], al
je 0x14000ca1f
inc cx
cmp cx, dx
jl 0x14000ca00
cmp cx, dx
mov r15d, 0
je 0x14000c1d7
movsx rax, cx
mov byte [r8 + rax*4 + 3], r10b
mov rax, qword [0x14003e1a0]
mov byte [rbx + rax], cl
inc r10w
cmp r10w, dx
jl 0x14000c9d0
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test r12, r12
je 0x14000ca65
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r12, r15
mov ebx, 3
mov word [0x14003e1b4], bx
mov word [0x14003e1b0], r15w
movzx r9d, r15w
lea rax, [rbp - 0x11]
mov ecx, ebx
add r9w, word [rax]
lea rax, [rax + 2]
sub rcx, rsi
jne 0x14000ca83
mov word [0x14003e16c], r9w
mov eax, 0x1e
mov word [0x14003e170], ax
mov word [0x14003e174], r9w
lea r8, str.Compressing
lea rdx, [0x14003e1d0]
mov al, 0x43
mov r10, qword [0x14003d328]
lea r15, [0x140000000]
nop word [rax + rax]
cmp al, 0x20
jae 0x14000cae2
movzx eax, al
movzx ecx, word [r15 + rax*2 + 0x307e0]
jmp 0x14000caf7
cmp al, 0x80
jae 0x14000caeb
movzx ecx, al
jmp 0x14000caf7
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 0x14000cad0
xor r15d, r15d
mov word [rdx], r15w
xor r8d, r8d
lea rdx, [0x14003e1d0]
movzx ecx, r9w
call qword [0x140041ab0]
test ax, ax
jne 0x14000c06b
lea rcx, str.tmpdic.unq
call fcn.14001ae30
cmp dword [0x14003e168], r15d
jne 0x14000cb4a
movzx eax, bx
jmp 0x14000cc47
mov rdx, r13
call fcn.140011450
test ax, ax
je 0x14000cb84
cwde
cmp eax, 0xfffffff9
je 0x14000c7a8
cmp eax, 0xfffffffc
je 0x14000c06b
cmp eax, 0xfffffffe
je 0x14000c47c
cmp eax, 0xffffffff
jne 0x14000c1d7
movzx eax, si
jmp 0x14000cc47
lea rcx, str.tmpdic.unq
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__unlink]
mov r9, r13
mov r8, qword [rbp - 0x61]
call fcn.14000cf60
test ax, ax
js 0x14000cb42
lea rcx, str.tmpdic.dat
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__unlink]
mov rcx, qword [0x14003e1c8]
test rcx, rcx
je 0x14000cbc8
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [0x14003e1c8], r15
mov rcx, qword [0x14003e178]
test rcx, rcx
je 0x14000cbe1
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [0x14003e178], r15
mov rcx, qword [0x14003e180]
test rcx, rcx
je 0x14000cbfa
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [0x14003e180], r15
test r12, r12
je 0x14000cc08
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [0x14003e198]
test rcx, rcx
je 0x14000cc21
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [0x14003e198], r15
mov rcx, qword [0x14003e1a0]
test rcx, rcx
je 0x14000cc3a
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [0x14003e1a0], r15
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
movzx eax, r15w
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.14002c160
mov rbx, qword [rsp + 0x120]
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret