Function at 0x14000c9b0
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 [section..data]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov qword [rbp - 0x61], rdx
mov rsi, rcx
mov eax, 0x20
mov dword [rbp - 0x11], 0x80020
lea ecx, [rax - 2]
mov dword [rbp - 0xd], 0x1e001e
xor r12d, r12d
mov word [0x14003ee58], r12w
mov word [0x14003e1a4], r12w
mov word [0x14003ee48], r12w
mov word [0x14003ee60], ax
mov word [0x14003ee50], r12w
lea r8, str.Converting
lea rdx, [0x14003e1b0]
mov al, 0x43
lea r13, [0x140000000]
mov r9, qword [0x14003d2f8]
nop dword [rax + rax]
cmp al, 0x20
jae 0x14000ca62
movzx eax, al
movzx ecx, word [r13 + rax*2 + 0x31200]
jmp 0x14000ca77
cmp al, 0x80
jae 0x14000ca6b
movzx ecx, al
jmp 0x14000ca77
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 0x14000ca50
mov word [rdx], r12w
xor r8d, r8d
xor ecx, ecx
lea rdx, [0x14003e1b0]
call qword [0x140041aa8]
test ax, ax
mov r13d, 8
je 0x14000cab4
mov eax, 6
jmp 0x14000d66f
mov rcx, r12
lea r15, str.tmpdic.itc
nop
movzx eax, byte [rcx + r15]
mov byte [rbp + rcx - 9], al
lea rcx, [rcx + 1]
test al, al
jne 0x14000cac0
mov ecx, 0x10
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov rbx, rax
mov qword [rbp - 0x69], rax
test rax, rax
je 0x14000cb1c
mov word [rax], r12w
mov qword [rax + 8], r12
lea rcx, [rbp - 9]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x14000cb1f
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov qword [rbx + 8], rax
lea rdx, [rbp - 9]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x14000cb1f
mov rbx, r12
mov edx, 0xa
mov rcx, rbx
call fcn.14002ab70
mov rdi, rax
test rax, rax
jne 0x14000cb3e
mov eax, 2
jmp 0x14000d66f
test rbx, rbx
je 0x14000cb5b
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14000cb52
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rcx, rbx
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
xor edx, edx
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [0x14003e1a8], 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]
mov r14d, 2
test ecx, 0xfffffffe
jne 0x14000cbc6
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x14000cbad
mov ecx, eax
lea rax, [0x140000000]
mov edx, dword [rax + rcx*4 + 0x310a0]
jmp 0x14000cbb2
mov edx, 0x106
mov dword [0x1400430b8], edx
mov dword [0x1400434c8], r14d
mov byte [0x1400433c0], 0
cmp ebx, 0xffffffff
jne 0x14000cbd5
mov eax, 1
jmp 0x14000d66f
mov word [0x14003ee44], r12w
mov word [0x14003ee5c], r12w
cmp dword [0x14003e1a8], 0
jne 0x14000cbf8
mov eax, 3
jmp 0x14000d66f
mov rdx, rdi
mov rcx, rsi
call fcn.14000aec0
test ax, ax
je 0x14000cc2f
cwde
cmp eax, 0xfffffffc
je 0x14000caaa
cmp eax, 0xfffffffe
je 0x14000cc26
cmp eax, 0xffffffff
je 0x14000cbcb
mov eax, 4
jmp 0x14000d66f
movzx eax, r14w
jmp 0x14000d66f
mov rcx, rdi
call fcn.14002a9e0
mov edi, 1
mov word [0x14003ee58], di
mov word [0x14003e1a4], r12w
mov r10d, 0x20
mov word [0x14003ee48], r10w
mov word [0x14003ee60], r13w
mov word [0x14003ee50], r10w
lea r8, str.Sorting
lea rsi, [0x14003e1b0]
mov rdx, rsi
mov al, 0x53
mov r9, qword [0x14003d2f8]
lea r15, [0x140000000]
nop word [rax + rax]
cmp al, r10b
jae 0x14000cca3
movzx eax, al
movzx ecx, word [r15 + rax*2 + 0x31200]
jmp 0x14000ccb8
cmp al, 0x80
jae 0x14000ccac
movzx ecx, al
jmp 0x14000ccb8
movzx eax, al
movzx ecx, word [r9 + rax*2 - 0x100]
mov word [rdx], cx
add rdx, r14
inc r8
movzx eax, byte [r8]
test al, al
jne 0x14000cc90
mov word [rdx], r12w
xor r8d, r8d
mov ecx, r10d
mov rdx, rsi
call qword [0x140041aa8]
test ax, ax
lea r15, str.tmpdic.itc
jne 0x14000caaa
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, r15
call fcn.140029e30
test eax, eax
jne 0x14000cbee
mov rcx, r15
call fcn.14001bc00
cmp dword [0x14003e1a8], 0
je 0x14000cbee
mov word [0x14003f794], di
lea r8, [rbp - 0x39]
mov edx, dword [rbp - 0x6d]
lea rcx, [rbp - 0x51]
call fcn.140028fd0
test eax, eax
je 0x14000cd5f
cmp word [0x14003f794], 0xffff
jne 0x14000cbee
jmp 0x14000caaa
mov word [0x14003f794], r12w
mov rcx, r15
call qword [sym.imp.MSVCR120.dll__unlink]
mov word [0x14003ee58], r14w
mov word [0x14003e1a4], r12w
movzx r9d, r12w
lea rax, [rbp - 0x11]
mov rcx, r14
nop dword [rax + rax]
add r9w, word [rax]
lea rax, [rax + 2]
dec rcx
jne 0x14000cd90
mov word [0x14003ee48], r9w
mov eax, 0x1e
mov word [0x14003ee60], ax
mov word [0x14003ee50], r9w
lea r8, str.Collecting_statistics
mov rdx, rsi
mov al, 0x43
mov r10, qword [0x14003d2f8]
lea r11, [0x140000000]
cmp al, 0x20
jae 0x14000cde5
movzx eax, al
movzx ecx, word [r11 + rax*2 + 0x31200]
jmp 0x14000cdfa
cmp al, 0x80
jae 0x14000cdee
movzx ecx, al
jmp 0x14000cdfa
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 0x14000cdd3
mov word [rdx], r12w
xor r8d, r8d
mov rdx, rsi
movzx ecx, r9w
call qword [0x140041aa8]
test ax, ax
jne 0x14000caaa
mov rdx, r12
nop dword [rax + rax]
movzx eax, byte [rdx + rbx]
mov byte [rbp + rdx - 9], al
lea rdx, [rdx + 1]
test al, al
jne 0x14000ce30
mov ecx, 0x10
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov rbx, rax
mov qword [rbp - 0x69], rax
test rax, rax
je 0x14000ce8b
mov word [rax], r12w
mov qword [rax + 8], r12
lea rcx, [rbp - 9]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x14000ce8e
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov qword [rbx + 8], rax
lea rdx, [rbp - 9]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x14000ce8e
mov rbx, r12
mov edx, edi
mov rcx, rbx
call fcn.14002ab70
mov rsi, rax
test rax, rax
jne 0x14000cea8
movzx eax, di
jmp 0x14000d66f
mov rcx, rbx
call fcn.14002af10
lea rdx, [0x1400313f8]
lea rcx, str.tmp1cod.dat
call qword [sym.imp.MSVCR120.dll_fopen]
mov r15, rax
test rax, rax
je 0x14000cc26
mov ecx, 0x800
call qword [sym.imp.MSVCR120.dll_malloc]
mov rdi, rax
test rax, rax
je 0x14000cc1c
mov ecx, 0x800
call qword [sym.imp.MSVCR120.dll_malloc]
mov rbx, rax
test rax, rax
je 0x14000cc1c
mov r14, rax
mov ecx, 0xfde8
call qword [sym.imp.MSVCR120.dll_malloc]
mov r13, rax
test rax, rax
je 0x14000cc1c
mov ecx, 0x1964
mov word [0x14003ee64], cx
add rax, 4
nop dword [rax + rax]
mov qword [rax - 4], r12
mov word [rax + 4], r12w
lea rax, [rax + 0xa]
dec rcx
jne 0x14000cf30
mov eax, 0x20
mov word [rbx], ax
lea r12, [rbx + 2]
xor eax, eax
mov word [r12], ax
mov rdx, rbx
call fcn.140004860
xor edx, edx
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [0x14003e1a8], eax
xor ecx, ecx
mov word [0x14003ee44], cx
mov word [0x14003ee5c], cx
test eax, eax
je 0x14000cbee
mov r8, rsi
mov edx, 0x800
mov rcx, rdi
call fcn.14002a640
mov rcx, rsi
test ax, ax
jle 0x14000d209
call fcn.14001bd30
test ax, ax
je 0x14000d000
movzx r8d, word [0x14003ee5c]
mov word [0x14003e1a4], r8w
mov ecx, r8d
movzx eax, word [0x14003ee60]
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 [0x14003ee48]
mov word [0x14003ee50], cx
lea rdx, [0x14003e1b0]
call qword [0x140041aa8]
test ax, ax
jne 0x14000caaa
mov dword [rbx], 0x20
xor r11d, r11d
mov rdx, r14
mov rcx, rdi
call fcn.14002af40
mov rbx, rax
test rax, rax
je 0x14000cc1c
movzx ecx, r11w
mov r8, rax
sub r8, rdi
lea r9, [0x14003ee80]
test r8, r8
jle 0x14000d054
mov edx, r11d
nop dword [rax]
movzx eax, byte [rdx + rdi]
mov byte [rdx + r9], al
inc cx
movsx rdx, cx
cmp rdx, r8
jl 0x14000d040
movsx rax, cx
cmp rax, 0x800
jae 0x14000d203
mov byte [rax + r9], r11b
lea eax, [rcx + 1]
movsx rax, ax
cmp rax, 0x800
jae 0x14000d1fd
mov byte [rax + r9], r11b
lea rdx, [rbp - 0x71]
mov rcx, rbx
call fcn.14002a440
test ax, ax
je 0x14000d1e0
movsx rax, ax
add rbx, rax
lea rdx, [rbp - 0x79]
mov rcx, rbx
call fcn.14002a440
test ax, ax
je 0x14000cc1c
movsx rax, ax
add rbx, rax
lea rdx, [rbp - 0x75]
mov rcx, rbx
call fcn.14002a440
test ax, ax
je 0x14000cc1c
movsx rcx, ax
add rcx, rbx
lea rdx, [rbp - 0x6d]
call fcn.14002a440
test ax, ax
je 0x14000cc1c
movzx eax, word [rbp - 0x71]
mov word [rbp - 0x67], ax
movzx eax, word [rbp - 0x79]
mov word [rbp - 0x69], ax
movzx eax, word [rbp - 0x75]
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.14000d770
test ax, ax
jne 0x14000cb34
xor ebx, ebx
movzx edx, bx
movzx eax, byte [0x14003ee80]
lea r8, [0x14003ee80]
cmp byte [0x14003f800], al
jne 0x14000d16d
mov ecx, ebx
lea r9, [0x14003f800]
movzx eax, byte [rcx + r8 + 1]
cmp byte [rcx + r9 + 1], al
jne 0x14000d16d
cmp byte [rcx + r9], bl
jne 0x14000d15a
cmp byte [rcx + r8], bl
je 0x14000d16d
add rcx, 2
add dx, 2
movzx eax, byte [rcx + r8]
cmp byte [rcx + r9], al
je 0x14000d141
movzx edx, dx
add rdx, r8
call fcn.140004860
lea rax, [0x14003ee80]
lea rcx, [0x14003f800]
mov rdx, rcx
nop dword [rax]
movzx ecx, byte [rax]
test cl, cl
jne 0x14000d19c
cmp byte [rax + 1], bl
je 0x14000d1af
mov byte [rdx], cl
movzx ecx, byte [rax + 1]
mov byte [rdx + 1], cl
add rdx, 2
add rax, 2
jmp 0x14000d190
movzx ecx, byte [rax]
mov byte [rdx], cl
movzx ecx, byte [rax + 1]
mov byte [rdx + 1], cl
mov rcx, rdi
call fcn.14002af90
mov word [0x14003ee54], ax
mov eax, 0x20
mov word [r14], ax
mov word [r12], bx
mov rbx, r14
jmp 0x14000cf86
movzx eax, byte [rbx]
sub al, 0x30
cmp al, 9
ja 0x14000d1f3
cmp byte [rbx + 1], 0
je 0x14000cc1c
mov eax, 7
jmp 0x14000d66f
call fcn.14002cbc8
int3
call fcn.14002cbc8
int3
call fcn.14002a9e0
mov rdx, r15
mov rcx, r13
call fcn.140010710
test ax, ax
je 0x14000d228
mov eax, 5
jmp 0x14000d66f
mov dword [rbx], 0x2d007c
mov dword [rbx + 4], 0x20
xor r12d, r12d
mov rdx, r14
call fcn.140004860
lea r9, [0x14000d6d0]
mov edx, 0xff
lea r8d, [r12 + 0xc]
lea rbx, [0x14003e250]
mov rcx, rbx
call qword [sym.imp.MSVCR120.dll_qsort]
movzx r10d, r12w
cmp dword [0x14003e254], r12d
je 0x14000d283
nop
inc r10w
movsx rax, r10w
lea rcx, [rax + rax*2]
cmp dword [rbx + rcx*4 + 4], r12d
jne 0x14000d270
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], r12w
movzx ecx, r12w
call fcn.14002afb0
mov byte [r9 + rbx + 8], al
inc r10w
movsx rax, r10w
lea rcx, [rax + rax*2]
mov r15d, 1
mov dword [rbx + rcx*4 + 4], r15d
mov word [rbx + rcx*4], r12w
mov byte [rbx + rcx*4 + 8], r15b
inc r10w
mov word [0x14003ee4c], r10w
movsx rdx, r10w
lea r9, [0x14000d6a0]
lea r8d, [r15 + 0xb]
mov rcx, rbx
call qword [sym.imp.MSVCR120.dll_qsort]
movsx rbx, word [0x14003ee4c]
mov rsi, rbx
lea ecx, [rbx*4]
call qword [sym.imp.MSVCR120.dll_malloc]
mov rcx, rax
mov qword [0x14003e108], rax
test rax, rax
je 0x14000cc1c
lea r9, [0x14003f7c0]
cmp r12w, bx
jge 0x14000d392
mov rdx, r12
lea r8, [0x14003e251]
movzx r10d, bx
nop dword [rax]
movzx eax, byte [r8 - 1]
mov byte [rdx + rcx], al
movzx ecx, byte [r8]
mov rax, qword [0x14003e108]
mov byte [rdx + rax + 1], cl
movzx ecx, byte [r8 + 7]
mov rax, qword [0x14003e108]
mov byte [rdx + rax + 2], cl
mov rax, qword [0x14003e108]
mov byte [rdx + rax + 3], r12b
movzx eax, byte [r8]
inc word [r9 + rax*2]
lea rdx, [rdx + 4]
lea r8, [r8 + 0xc]
dec r10
je 0x14000d392
mov rcx, qword [0x14003e108]
jmp 0x14000d340
movzx r10d, r12w
mov byte [0x14003dee6], r10b
movzx eax, r12w
movzx ecx, word [r9]
cmp cx, r10w
jbe 0x14000d3b5
movzx r10d, cx
mov byte [0x14003dee6], al
inc ax
add r9, 2
cmp ax, 0x10
jl 0x14000d3a1
lea r9, [0x14000d6d0]
mov r8d, 0xc
mov rdx, rsi
lea rsi, [0x14003e250]
mov rcx, rsi
call qword [sym.imp.MSVCR120.dll_qsort]
movsx rbx, word [0x14003ee4c]
mov ecx, ebx
call qword [sym.imp.MSVCR120.dll_malloc]
mov qword [0x14003e110], rax
test rax, rax
je 0x14000cc1c
movzx r9d, r12w
cmp r12w, bx
jge 0x14000d475
nop dword [rax]
movzx ecx, r12w
movsx r11, r9w
lea rax, [r11 + r11*2]
lea r8, [rax*4]
movzx r10d, byte [r8 + rsi]
mov rdx, qword [0x14003e108]
movsx rax, cx
cmp r10b, byte [rdx + rax*4]
jne 0x14000d446
movzx eax, byte [rdx + rax*4 + 1]
cmp byte [r8 + rsi + 1], al
je 0x14000d44e
inc cx
cmp cx, bx
jl 0x14000d430
cmp cx, bx
je 0x14000cc1c
movsx rax, cx
mov byte [rdx + rax*4 + 3], r9b
mov rax, qword [0x14003e110]
mov byte [r11 + rax], cl
inc r9w
cmp r9w, bx
jl 0x14000d410
mov rcx, rdi
call qword [sym.imp.MSVCR120.dll_free]
test r14, r14
je 0x14000d48f
mov rcx, r14
call qword [sym.imp.MSVCR120.dll_free]
mov r14, r12
mov ebx, 3
mov word [0x14003ee58], bx
mov word [0x14003e1a4], r12w
movzx r9d, r12w
lea rax, [rbp - 0x11]
mov ecx, ebx
nop dword [rax]
add r9w, word [rax]
lea rax, [rax + 2]
dec rcx
jne 0x14000d4b0
mov word [0x14003ee48], r9w
mov eax, 0x1e
mov word [0x14003ee60], ax
mov word [0x14003ee50], r9w
lea r8, str.Compressing
lea rdx, [0x14003e1b0]
mov al, 0x43
mov r10, qword [0x14003d2f8]
lea r12, [0x140000000]
cmp al, 0x20
jae 0x14000d509
movzx eax, al
movzx ecx, word [r12 + rax*2 + 0x31200]
jmp 0x14000d51e
cmp al, 0x80
jae 0x14000d512
movzx ecx, al
jmp 0x14000d51e
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 0x14000d4f7
xor r12d, r12d
mov word [rdx], r12w
xor r8d, r8d
lea rdx, [0x14003e1b0]
movzx ecx, r9w
call qword [0x140041aa8]
test ax, ax
jne 0x14000caaa
lea rcx, str.tmpdic.unq
call fcn.14001bc00
cmp dword [0x14003e1a8], r12d
jne 0x14000d571
movzx eax, bx
jmp 0x14000d66f
mov rdx, r13
call fcn.1400121f0
test ax, ax
je 0x14000d5ac
cwde
cmp eax, 0xfffffff9
je 0x14000d1f3
cmp eax, 0xfffffffc
je 0x14000caaa
cmp eax, 0xfffffffe
je 0x14000cb34
cmp eax, 0xffffffff
jne 0x14000cc1c
movzx eax, r15w
jmp 0x14000d66f
lea rcx, str.tmpdic.unq
call qword [sym.imp.MSVCR120.dll__unlink]
mov r9, r13
mov r8, qword [rbp - 0x61]
call fcn.14000d990
test ax, ax
js 0x14000d569
lea rcx, str.tmpdic.dat
call qword [sym.imp.MSVCR120.dll__unlink]
mov rcx, qword [0x14003ee70]
test rcx, rcx
je 0x14000d5f0
call qword [sym.imp.MSVCR120.dll_free]
mov qword [0x14003ee70], r12
mov rcx, qword [0x14003e0e8]
test rcx, rcx
je 0x14000d609
call qword [sym.imp.MSVCR120.dll_free]
mov qword [0x14003e0e8], r12
mov rcx, qword [0x14003e0f0]
test rcx, rcx
je 0x14000d622
call qword [sym.imp.MSVCR120.dll_free]
mov qword [0x14003e0f0], r12
test r14, r14
je 0x14000d630
mov rcx, r14
call qword [sym.imp.MSVCR120.dll_free]
mov rcx, qword [0x14003e108]
test rcx, rcx
je 0x14000d649
call qword [sym.imp.MSVCR120.dll_free]
mov qword [0x14003e108], r12
mov rcx, qword [0x14003e110]
test rcx, rcx
je 0x14000d662
call qword [sym.imp.MSVCR120.dll_free]
mov qword [0x14003e110], r12
mov rcx, r13
call qword [sym.imp.MSVCR120.dll_free]
movzx eax, r12w
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.14002c960
mov rbx, qword [rsp + 0x120]
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret