Function at 0x1400155a0
Capabilities:
Get file size

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x60]
sub rsp, 0x160
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x1b8], rbx
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x50], rax
mov rsi, r8
mov qword [rsp + 0x40], r8
mov rbx, rdx
mov qword [rsp + 0x50], rdx
mov r12, rcx
mov qword [rsp + 0x38], rcx
mov ecx, 0xf
mov dword [rbp - 0x60], 0x4000f
lea r14d, [rcx - 0xb]
mov dword [rbp - 0x5c], 0x100009
lea edi, [rcx + 1]
mov eax, 0x38
mov word [rbp - 0x58], ax
mov dword [0x1400419e4], 0x800
xor r13d, r13d
mov word [0x14003ee58], r13w
mov word [0x14003e1a4], r13w
mov word [0x14003ee48], r13w
mov word [0x14003ee60], cx
mov word [0x14003ee50], r13w
lea r8, str.Converting
lea rdx, [0x14003e1b0]
mov al, 0x43
lea r13, [0x140031200]
mov r9, qword [0x14003d2f8]
cmp al, 0x20
jae 0x140015673
movzx eax, al
movzx ecx, word [r13 + rax*2]
jmp 0x140015688
cmp al, 0x80
jae 0x14001567c
movzx ecx, al
jmp 0x140015688
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 0x140015664
xor r13d, r13d
mov word [rdx], r13w
xor r8d, r8d
xor ecx, ecx
lea rdx, [0x14003e1b0]
call qword [0x140041aa8]
test ax, ax
je 0x1400156c2
mov eax, 6
jmp 0x140015db8
mov ecx, 0x110
call qword [sym.imp.MSVCR120.dll_malloc]
mov qword [0x1400404e0], rax
test rax, rax
jne 0x1400156e2
movzx eax, r14w
jmp 0x140015db8
mov ecx, dword [0x1400419e4]
call qword [sym.imp.MSVCR120.dll_malloc]
mov r15, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x1400156d9
mov rdx, rbx
call fcn.140004720
mov word [0x1400401dc], ax
mov dword [r15], 0x20
mov rdx, r15
call fcn.140004860
mov rcx, r13
lea r13, str.tmpcap.hlp
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + r13]
mov byte [rbp + rcx - 0x50], al
lea rcx, [rcx + 1]
test al, al
jne 0x140015730
mov rcx, rdi
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov rbx, rax
mov qword [rsp + 0x30], rax
test rax, rax
mov r13d, 0
je 0x140015791
mov word [rax], r13w
mov qword [rax + 8], r13
lea rcx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x140015794
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov qword [rbx + 8], rax
lea rdx, [rbp - 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x140015794
mov rbx, r13
mov edx, 0xa
mov rcx, rbx
call fcn.14002ab70
mov rdi, rax
test rax, rax
jne 0x1400157b3
mov eax, 2
jmp 0x140015db8
test rbx, rbx
je 0x1400157d0
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1400157c7
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 0x1400157fe
mov eax, 1
jmp 0x140015db8
mov word [0x14003ee44], r13w
mov word [0x14003ee5c], r13w
cmp dword [0x14003e1a8], 0
jne 0x140015821
mov eax, 3
jmp 0x140015db8
mov rdx, rdi
mov rcx, r12
call fcn.14000bee0
test ax, ax
je 0x14001584e
cwde
cmp eax, 0xfffffffc
je 0x1400156b8
cmp eax, 0xfffffffe
je 0x1400157a9
cmp eax, 0xffffffff
je 0x1400157f4
jmp 0x1400156d9
mov rcx, rdi
call fcn.14002a9e0
mov dword [rsi], r13d
mov r14d, 1
mov word [0x14003ee58], r14w
mov word [0x14003e1a4], r13w
mov r10d, 0xf
mov word [0x14003ee48], r10w
mov eax, 4
mov word [0x14003ee60], ax
mov word [0x14003ee50], r10w
lea r8, str.Sorting
lea rbx, [0x14003e1b0]
mov rdx, rbx
mov al, 0x53
mov r9, qword [0x14003d2f8]
lea r13, [0x140031200]
cmp al, 0x20
jae 0x1400158c1
movzx eax, al
movzx ecx, word [r13 + rax*2]
jmp 0x1400158d6
cmp al, 0x80
jae 0x1400158ca
movzx ecx, al
jmp 0x1400158d6
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 0x1400158b2
xor r13d, r13d
mov word [rdx], r13w
xor r8d, r8d
mov ecx, r10d
mov rdx, rbx
call qword [0x140041aa8]
test ax, ax
jne 0x1400156b8
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x30]
lea rdx, str.tmpcap.unq
lea rcx, str.tmpcap.hlp
call fcn.140029e30
test eax, eax
jne 0x140015817
lea rcx, str.tmpcap.hlp
call fcn.14001bc00
cmp dword [0x14003e1a8], r13d
je 0x140015817
mov word [0x14003f794], r14w
lea r8, [rsp + 0x78]
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0x60]
call fcn.140028fd0
test eax, eax
je 0x140015986
cmp word [0x14003f794], 0xffff
jne 0x140015817
jmp 0x1400156b8
mov word [0x14003f794], r13w
lea rcx, str.tmpcap.hlp
call qword [sym.imp.MSVCR120.dll__unlink]
mov r13d, 2
mov word [0x14003ee58], r13w
xor esi, esi
mov word [0x14003e1a4], si
movzx r9d, si
lea rax, [rbp - 0x60]
mov ecx, r13d
nop dword [rax]
add r9w, word [rax]
lea rax, [rax + 2]
dec rcx
jne 0x1400159c0
mov word [0x14003ee48], r9w
mov eax, 9
mov word [0x14003ee60], ax
mov word [0x14003ee50], r9w
lea r8, str.Extracting
mov rdx, rbx
mov al, 0x45
mov r10, qword [0x14003d2f8]
lea r11, [0x140031200]
cmp al, 0x20
jae 0x140015a11
movzx eax, al
movzx ecx, word [r11 + rax*2]
jmp 0x140015a26
cmp al, 0x80
jae 0x140015a1a
movzx ecx, al
jmp 0x140015a26
movzx eax, al
movzx ecx, word [r10 + rax*2 - 0x100]
mov word [rdx], cx
add rdx, r13
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140015a03
mov word [rdx], si
xor r8d, r8d
mov rdx, rbx
movzx ecx, r9w
call qword [0x140041aa8]
test ax, ax
jne 0x1400156b8
lea rdi, [0x140041a20]
mov rax, rdi
mov ecx, esi
nop
cmp byte [rax], sil
jne 0x140015a6b
cmp byte [rax + 1], sil
je 0x140015a72
add rax, r13
inc ecx
jmp 0x140015a60
add cx, cx
movzx ebx, si
cmp si, cx
jge 0x140015af8
mov rax, qword [0x1400404e0]
movzx r14d, byte [rax + 0x3d]
dec cx
shr cx, 1
inc cx
movzx esi, cx
movzx r15d, word [0x14003ee4c]
mov r12, qword [0x14003e108]
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [rdi]
mov word [rsp + 0x30], ax
mov word [rsp + 0x20], r15w
mov r9, r12
movzx edx, r14b
lea rcx, [rsp + 0x30]
call fcn.140006c20
movsx r9, bx
movzx eax, word [rsp + 0x30]
mov word [rbp + r9 - 0x30], ax
lea rdi, [rdi + 2]
inc bx
dec rsi
jne 0x140015ab0
lea r14d, [rsi + 1]
mov r15, qword [rsp + 0x48]
mov r12, qword [rsp + 0x38]
lea rcx, [rbp - 0x30]
call fcn.140006d50
test ax, ax
jns 0x140015b15
cmp ax, 0xffff
je 0x140015ceb
jmp 0x140015817
mov word [0x1400401b0], ax
mov rcx, rsi
lea rdx, str.tmpcap.unq
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
mov byte [rbp + rcx - 0x50], al
lea rcx, [rcx + 1]
test al, al
jne 0x140015b30
lea rcx, [rbp - 0x50]
call fcn.14002ae90
mov rsi, rax
mov ebx, 3
mov edx, ebx
mov rcx, rax
call fcn.14002ab70
mov rdi, rax
test rax, rax
jne 0x140015b6b
or eax, 0xffffffff
jmp 0x140015db8
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
jne 0x140015ba0
movzx eax, bx
jmp 0x140015db8
mov r9, r12
mov r8, qword [rsp + 0x40]
mov rdx, rdi
call fcn.140015de0
test ax, ax
jns 0x140015bc9
cwde
cmp eax, 0xfffffffc
je 0x1400156b8
cmp eax, 0xffffffff
je 0x140015b98
jmp 0x140015ceb
mov rcx, r15
call qword [sym.imp.MSVCR120.dll_free]
mov rcx, rdi
call fcn.14002a9e0
lea rax, str.tmpcap.unq
mov rcx, rax
call qword [sym.imp.MSVCR120.dll__unlink]
cmp word [0x1400419dc], si
je 0x140015d70
mov word [0x14003ee58], bx
mov word [0x14003e1a4], si
movzx r9d, si
lea rax, [rbp - 0x60]
mov rcx, rbx
add r9w, word [rax]
lea rax, [rax + 2]
dec rcx
jne 0x140015c10
mov word [0x14003ee48], r9w
mov eax, 0x10
mov word [0x14003ee60], ax
mov word [0x14003ee50], r9w
lea r8, str.Compressing
lea rdx, [0x14003e1b0]
mov al, 0x43
mov r10, qword [0x14003d2f8]
lea rsi, [0x140031200]
cmp al, 0x20
jae 0x140015c64
movzx eax, al
movzx ecx, word [rsi + rax*2]
jmp 0x140015c79
cmp al, 0x80
jae 0x140015c6d
movzx ecx, al
jmp 0x140015c79
movzx eax, al
movzx ecx, word [r10 + rax*2 - 0x100]
mov word [rdx], cx
add rdx, r13
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140015c57
xor esi, esi
mov word [rdx], si
xor r8d, r8d
lea rdx, [0x14003e1b0]
movzx ecx, r9w
call qword [0x140041aa8]
test ax, ax
jne 0x1400156b8
lea rcx, str.tmpdic.hlp
call fcn.14001bc00
cmp dword [0x14003e1a8], esi
je 0x140015b98
call fcn.140013770
test ax, ax
je 0x140015d08
cwde
cmp eax, 0xfffffff9
je 0x140015cfe
cmp eax, 0xfffffffc
je 0x1400156b8
cmp eax, 0xfffffffe
je 0x140015cf5
cmp eax, 0xffffffff
je 0x1400156d9
mov eax, 4
jmp 0x140015db8
movzx eax, r13w
jmp 0x140015db8
mov eax, 7
jmp 0x140015db8
lea rcx, str.tmpdic.hlp
call qword [sym.imp.MSVCR120.dll__unlink]
mov rcx, qword [0x14003e0e8]
test rcx, rcx
je 0x140015d2e
call qword [sym.imp.MSVCR120.dll_free]
mov qword [0x14003e0e8], rsi
mov rcx, qword [0x14003e0f0]
test rcx, rcx
je 0x140015d47
call qword [sym.imp.MSVCR120.dll_free]
mov qword [0x14003e0f0], rsi
mov rcx, qword [rsp + 0x50]
call fcn.1400076e0
test ax, ax
je 0x140015d67
cmp ax, 0xffff
je 0x140015b98
mov eax, 4
jmp 0x140015db8
lea rcx, str.tmpdic.dat
jmp 0x140015d91
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 0x140015db5
call qword [sym.imp.MSVCR120.dll_free]
mov qword [0x1400404e0], rsi
movzx eax, si
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.14002c960
mov rbx, qword [rsp + 0x1b8]
add rsp, 0x160
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret