Function at 0x140017d00
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 [section..data]
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 [0x1400419e4], 0x800
xor esi, esi
mov word [0x14003ee58], si
mov word [0x14003e1a4], si
mov word [0x14003ee48], si
mov word [0x14003ee60], ax
mov word [0x14003ee50], si
lea r8, str.Converting
lea rdx, [0x14003e1b0]
mov al, 0x43
lea r15, [0x140031200]
mov r9, qword [0x14003d2f8]
cmp al, 0x20
jae 0x140017dc6
movzx eax, al
movzx ecx, word [r15 + rax*2]
jmp 0x140017ddb
cmp al, 0x80
jae 0x140017dcf
movzx ecx, al
jmp 0x140017ddb
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 0x140017db8
mov word [rdx], si
xor r8d, r8d
xor ecx, ecx
lea rdx, [0x14003e1b0]
call qword [0x140041aa8]
test ax, ax
mov r15d, 4
je 0x140017e17
mov eax, 6
jmp 0x140018653
mov ecx, 0x110
call qword [sym.imp.MSVCR120.dll_malloc]
mov qword [0x1400404e0], rax
test rax, rax
jne 0x140017e37
movzx eax, r15w
jmp 0x140018653
mov ecx, dword [0x1400419e4]
call qword [sym.imp.MSVCR120.dll_malloc]
mov rbx, rax
test rax, rax
je 0x140017e2e
mov rdx, rdi
call fcn.140004720
mov word [0x1400401dc], ax
mov eax, 0x20
mov dword [rbx], eax
mov rdx, rbx
call fcn.140004860
mov rcx, rbx
call qword [sym.imp.MSVCR120.dll_free]
cmp qword [0x14003e0e8], rsi
je 0x140017e2e
cmp qword [0x14003e0f0], rsi
je 0x140017e2e
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 0x140017e90
mov ecx, 0x10
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov rbx, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x140017eec
mov word [rax], si
mov qword [rax + 8], rsi
lea rcx, [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x140017eef
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov qword [rbx + 8], rax
lea rdx, [rbp - 0x38]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x140017eef
mov rbx, rsi
mov edx, 0xa
mov rcx, rbx
call fcn.14002ab70
mov rdi, rax
test rax, rax
jne 0x140017f0e
mov eax, 2
jmp 0x140018653
test rbx, rbx
je 0x140017f2b
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140017f22
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 [r12]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [0x14003e1a8], eax
xor r8d, r8d
xor edx, edx
mov rcx, r12
call fcn.14002ad10
cmp eax, 0xffffffff
jne 0x140017f59
mov eax, 1
jmp 0x140018653
mov word [0x14003ee44], si
mov word [0x14003ee5c], si
cmp dword [0x14003e1a8], 0
jne 0x140017f7a
mov eax, 3
jmp 0x140018653
mov rdx, rdi
mov rcx, r12
call fcn.14000bee0
test ax, ax
je 0x140017fa7
cwde
cmp eax, 0xfffffffc
je 0x140017e0d
cmp eax, 0xfffffffe
je 0x140017f04
cmp eax, 0xffffffff
je 0x140017f4f
jmp 0x140017e2e
mov rcx, rdi
call fcn.14002a9e0
mov dword [r13], esi
mov r15d, 1
mov word [0x14003ee58], r15w
mov word [0x14003e1a4], si
mov r10d, 0xf
mov word [0x14003ee48], r10w
mov eax, 4
mov word [0x14003ee60], ax
mov word [0x14003ee50], r10w
lea r8, str.Sorting
lea rdi, [0x14003e1b0]
mov rdx, rdi
mov al, 0x53
mov r9, qword [0x14003d2f8]
lea r14, [0x140031200]
nop dword [rax + rax]
cmp al, 0x20
jae 0x14001801e
movzx eax, al
movzx ecx, word [r14 + rax*2]
jmp 0x140018033
cmp al, 0x80
jae 0x140018027
movzx ecx, al
jmp 0x140018033
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 0x140018010
mov word [rdx], si
xor r8d, r8d
mov ecx, r10d
mov rdx, rdi
call qword [0x140041aa8]
test ax, ax
lea r14, str.tmpcap.hlp
jne 0x140017e0d
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.140029e30
test eax, eax
jne 0x140017f70
mov rcx, r14
call fcn.14001bc00
cmp dword [0x14003e1a8], 0
je 0x140017f70
mov word [0x14003f794], r15w
lea r8, [rbp - 0x70]
mov edx, dword [rsp + 0x50]
lea rcx, [rsp + 0x78]
call fcn.140028fd0
test eax, eax
je 0x1400180df
cmp word [0x14003f794], 0xffff
jne 0x140017f70
jmp 0x140017e0d
mov word [0x14003f794], si
mov rcx, r14
call qword [sym.imp.MSVCR120.dll__unlink]
mov r14d, 2
mov word [0x14003ee58], r14w
mov word [0x14003e1a4], si
movzx r9d, si
lea rax, [rbp - 0x48]
mov ecx, r14d
nop
add r9w, word [rax]
lea rax, [rax + 2]
dec rcx
jne 0x140018110
mov word [0x14003ee48], r9w
mov eax, 9
mov word [0x14003ee60], ax
mov word [0x14003ee50], r9w
lea r8, str.Collecting_statistics
mov rdx, rdi
mov al, 0x43
mov r10, qword [0x14003d2f8]
lea r11, [0x140031200]
cmp al, 0x20
jae 0x140018161
movzx eax, al
movzx ecx, word [r11 + rax*2]
jmp 0x140018176
cmp al, 0x80
jae 0x14001816a
movzx ecx, al
jmp 0x140018176
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 0x140018153
mov word [rdx], si
xor r8d, r8d
mov rdx, rdi
movzx ecx, r9w
call qword [0x140041aa8]
test ax, ax
jne 0x140017e0d
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 0x1400181b0
lea rcx, [rbp - 0x38]
call fcn.14002ae90
mov rdi, rax
mov edx, r15d
mov rcx, rax
call fcn.14002ab70
mov rbx, rax
test rax, rax
jne 0x1400181e7
or eax, 0xffffffff
jmp 0x140018653
mov rcx, rdi
call fcn.14002af10
xor edx, edx
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [0x14003e1a8], eax
mov word [0x14003ee44], si
mov word [0x14003ee5c], si
test eax, eax
je 0x140017f70
mov rcx, rbx
call fcn.140018680
test ax, ax
jns 0x140018240
cwde
cmp eax, 0xfffffffc
je 0x140017e0d
cmp eax, 0xffffffff
jne 0x140017f70
mov eax, 4
jmp 0x140018653
mov rcx, rbx
call fcn.14002a9e0
mov rcx, qword [0x1400404e0]
movzx eax, word [rcx + 0x6c]
mov word [rsp + 0x20], ax
mov r9, qword [0x14003e108]
movzx edx, byte [rcx + 0x3d]
call fcn.140006540
mov ebx, 3
mov word [0x14003ee58], bx
mov word [0x14003e1a4], si
movzx r9d, si
lea rax, [rbp - 0x48]
mov ecx, ebx
nop word [rax + rax]
add r9w, word [rax]
lea rax, [rax + 2]
dec rcx
jne 0x140018290
mov word [0x14003ee48], r9w
mov eax, 0x10
mov word [0x14003ee60], ax
mov word [0x14003ee50], r9w
lea r8, str.Merging
lea rdx, [0x14003e1b0]
mov al, 0x4d
mov r10, qword [0x14003d2f8]
lea r12, [0x140031200]
cmp al, 0x20
jae 0x1400182e5
movzx eax, al
movzx ecx, word [r12 + rax*2]
jmp 0x1400182fa
cmp al, 0x80
jae 0x1400182ee
movzx ecx, al
jmp 0x1400182fa
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 0x1400182d7
mov word [rdx], si
xor r8d, r8d
lea rdx, [0x14003e1b0]
movzx ecx, r9w
call qword [0x140041aa8]
test ax, ax
mov r12, qword [rsp + 0x58]
jne 0x140017e0d
lea rsi, [0x140041a20]
mov rax, rsi
xor edx, edx
mov ecx, edx
nop
cmp byte [rax], dl
jne 0x140018349
cmp byte [rax + 1], dl
je 0x140018350
add rax, r14
inc ecx
jmp 0x140018340
add cx, cx
movzx edi, dx
cmp dx, cx
jge 0x1400183de
mov rax, qword [0x1400404e0]
movzx r15d, byte [rax + 0x3d]
dec cx
shr cx, 1
inc cx
movzx r14d, cx
mov r12, qword [0x14003e108]
movzx r13d, word [0x14003ee4c]
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.140006c20
movsx r9, di
movzx eax, word [rsp + 0x50]
mov word [rbp + r9 - 0x10], ax
lea rsi, [rsi + 2]
inc di
dec r14
jne 0x140018390
mov r14d, 2
lea r15d, [r14 - 1]
mov r12, qword [rsp + 0x58]
mov r13, qword [rsp + 0x60]
lea rcx, [rbp - 0x10]
call fcn.140006d50
test ax, ax
jns 0x1400183fe
cmp ax, 0xffff
je 0x140018236
movzx eax, bx
jmp 0x140018653
mov word [0x1400401b0], 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 0x140018410
lea rcx, [rbp - 0x38]
call fcn.14002ae90
mov rsi, rax
mov edx, ebx
mov rcx, rax
call fcn.14002ab70
mov rdi, rax
test rax, rax
je 0x1400181df
mov rcx, rsi
call fcn.14002af10
xor edx, edx
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [0x14003e1a8], eax
xor esi, esi
mov word [0x14003ee44], si
mov word [0x14003ee5c], si
test eax, eax
je 0x1400183f6
mov r9, r12
mov r8, r13
mov rdx, rdi
call fcn.140018cc0
test ax, ax
jns 0x14001849a
cwde
cmp eax, 0xfffffffc
je 0x140017e0d
cmp eax, 0xffffffff
je 0x1400183f6
jmp 0x140018236
mov rcx, rdi
call fcn.14002a9e0
lea rax, str.tmpcap.unq
mov rcx, rax
call qword [sym.imp.MSVCR120.dll__unlink]
cmp word [0x14003dee4], si
je 0x14001860b
mov edi, 4
mov word [0x14003ee58], di
mov word [0x14003e1a4], si
movzx r9d, si
lea rax, [rbp - 0x48]
mov ecx, edi
nop dword [rax]
add r9w, word [rax]
lea rax, [rax + 2]
dec rcx
jne 0x1400184e0
mov word [0x14003ee48], r9w
mov eax, 0x38
mov word [0x14003ee60], ax
mov word [0x14003ee50], r9w
lea r8, str.Compressing
lea rdx, [0x14003e1b0]
mov al, 0x43
mov r10, qword [0x14003d2f8]
lea rdi, [0x140031200]
cmp al, 0x20
jae 0x140018534
movzx eax, al
movzx ecx, word [rdi + rax*2]
jmp 0x140018549
cmp al, 0x80
jae 0x14001853d
movzx ecx, al
jmp 0x140018549
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 0x140018527
mov word [rdx], si
xor r8d, r8d
lea rdx, [0x14003e1b0]
movzx ecx, r9w
call qword [0x140041aa8]
test ax, ax
mov edi, 4
jne 0x140017e0d
lea rcx, str.tmpdic.hlp
call fcn.14001bc00
cmp dword [0x14003e1a8], esi
je 0x1400183f6
call fcn.140013770
test ax, ax
je 0x1400185d7
cwde
cmp eax, 0xfffffff9
je 0x1400185d0
cmp eax, 0xfffffffc
je 0x140017e0d
cmp eax, 0xfffffffe
je 0x1400185c7
cmp eax, 0xffffffff
je 0x140017e2e
movzx eax, di
jmp 0x140018653
movzx eax, r14w
jmp 0x140018653
mov eax, 7
jmp 0x140018653
lea rcx, str.tmpdic.hlp
call qword [sym.imp.MSVCR120.dll__unlink]
mov rcx, qword [rsp + 0x68]
call fcn.1400076e0
test ax, ax
je 0x140018602
cmp ax, 0xffff
je 0x1400183f6
movzx eax, di
jmp 0x140018653
lea rcx, str.tmpdic.dat
jmp 0x14001862c
lea rcx, str.tmpdic.hlp
call qword [sym.imp.MSVCR120.dll__unlink]
lea rcx, str.hlp1.hlp
call qword [sym.imp.MSVCR120.dll__unlink]
lea rcx, str.hlp2.hlp
call qword [sym.imp.MSVCR120.dll__unlink]
call fcn.1400049e0
mov rcx, qword [0x1400404e0]
test rcx, rcx
je 0x140018650
call qword [sym.imp.MSVCR120.dll_free]
mov qword [0x1400404e0], rsi
movzx eax, si
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.14002c960
mov rbx, qword [rsp + 0x1d8]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret