Function at 0x14007d580
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1c0
mov qword [rsp + 0x130], 0xfffffffffffffffe
mov qword [rsp + 0x210], rbx
mov rax, qword [0x140197b10]
xor rax, rsp
mov qword [rsp + 0x1b0], rax
mov r12, rcx
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0x58], rdx
mov byte [rsp + 0x60], 0
cmp word [rdx], 0x23
jne 0x14007d5e2
add rdx, 2
mov qword [rsp + 0x58], rdx
mov byte [rsp + 0x60], 1
movzx eax, word [rdx]
mov ebx, 9
lea r15d, [rbx + 0x17]
test ax, ax
je 0x14007d615
cmp bx, ax
ja 0x14007d5fe
cmp ax, 0xd
jbe 0x14007d615
cmp r15w, ax
je 0x14007d615
add rdx, 2
mov qword [rsp + 0x58], rdx
mov ax, word [rdx]
test ax, ax
jne 0x14007d5f3
lea rcx, [rsp + 0x58]
call fcn.14005b560
mov r14d, 1
mov edx, r14d
lea rcx, [rsp + 0xb8]
call fcn.140063580
nop
lea rcx, [rsp + 0x70]
call fcn.140063500
nop
mov edx, r14d
lea rcx, [rsp + 0xa8]
call fcn.140063580
nop
mov edx, r14d
lea rcx, [rsp + 0x80]
call fcn.140063580
nop
lea rcx, [rsp + 0x90]
call fcn.140063500
nop
xor ebp, ebp
mov qword [rsp + 0xc8], rbp
mov rax, rbp
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x68], rbp
lea r8d, [r14 + 4]
lea rdx, [rsp + 0x58]
lea rcx, str._find
call fcn.140065780
movzx esi, al
mov byte [rsp + 0xa0], al
mov dword [rsp + 0xe0], ebp
mov dword [rsp + 0xc0], ebp
xor r13b, r13b
lea rcx, [rsp + 0x98]
call fcn.140063500
nop
lea rcx, [rsp + 0xb0]
call fcn.140063500
nop
lea r8d, [r14 + 2]
mov r10, qword [rsp + 0x58]
mov rdx, r10
lea rcx, [0x140150814]
call fcn.14005c510
lea edi, [rbp + 0x40]
test al, al
je 0x14007d7de
add r10, 6
mov qword [rsp + 0x58], r10
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x58]
call fcn.140066e40
mov rax, qword [rsp + 0x58]
cmp di, word [rax]
jne 0x14007d7c5
add rax, 2
mov qword [rsp + 0x58], rax
mov r11, rax
movzx ecx, word [rax]
test cx, cx
je 0x14007d762
nop dword [rax]
cmp bx, cx
ja 0x14007d74b
cmp cx, 0xd
jbe 0x14007d762
cmp r15w, cx
je 0x14007d762
add rax, 2
mov qword [rsp + 0x58], rax
mov cx, word [rax]
test cx, cx
jne 0x14007d740
movzx r10d, word [rax]
lea rcx, [rsp + 0x58]
call fcn.14005b560
test r10w, r10w
je 0x14007d78d
mov rax, qword [rsp + 0x58]
sub rax, 2
mov qword [rsp + 0x58], rax
mov word [rax], bp
add qword [rsp + 0x58], 2
mov byte [rsp + 0x20], 1
xor r9d, r9d
lea r8, [rsp + 0x98]
mov rdx, r11
mov rcx, r12
call fcn.14006d870
mov rdi, qword [rsp + 0x98]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea ebx, [rax + 8]
mov dword [rsp + 0xc0], ebx
jmp 0x14007d7cd
mov rdi, qword [rsp + 0x98]
lea rcx, [rsp + 0x58]
call fcn.14005b560
mov r10, qword [rsp + 0x58]
jmp 0x14007d7e6
mov rdi, qword [rsp + 0x98]
mov byte [rsp + 0x20], 1
xor r9d, r9d
lea r8, [rsp + 0xb0]
mov rdx, r10
mov rcx, r12
call fcn.14006d870
mov r11, qword [rsp + 0xb0]
mov qword [rsp + 0x58], r11
mov r8d, 4
lea rdx, [rsp + 0x58]
lea rcx, str._bin
call fcn.140065780
movzx ebx, r13b
test al, al
cmovne ebx, r14d
mov r9d, 0x2c
mov word [rsp + 0x20], bp
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x58]
mov rcx, r12
call fcn.1400554c0
mov r11, qword [rsp + 0x70]
movzx eax, word [r11]
test ax, ax
jne 0x14007d8c0
lea rcx, [rsp + 0xb0]
call fcn.14005b520
nop
lea rcx, [rsp + 0x98]
call fcn.14005b520
nop
lea rcx, [rsp + 0x90]
call fcn.14005b520
nop
lea rcx, [rsp + 0x80]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb8]
call fcn.14005b520
mov eax, r14d
jmp 0x14007ec2f
movzx r13d, bl
mov ecx, 0x26
cmp cx, ax
cmove r13d, r14d
xor r9d, r9d
lea r8d, [rcx + 6]
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0x58]
call fcn.140055550
mov r11, qword [rsp + 0xa8]
cmp word [r11], 0
jne 0x14007d95e
lea rcx, [rsp + 0xb0]
call fcn.14005b520
nop
lea rcx, [rsp + 0x98]
call fcn.14005b520
nop
lea rcx, [rsp + 0x90]
call fcn.14005b520
nop
lea rcx, [rsp + 0x80]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb8]
call fcn.14005b520
mov eax, r14d
jmp 0x14007ec2f
mov r9d, 0x2c
mov word [rsp + 0x20], bp
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0x58]
mov rcx, r12
call fcn.1400554c0
mov r11, qword [rsp + 0x80]
cmp word [r11], 0
jne 0x14007d9f3
lea rcx, [rsp + 0xb0]
call fcn.14005b520
nop
lea rcx, [rsp + 0x98]
call fcn.14005b520
nop
lea rcx, [rsp + 0x90]
call fcn.14005b520
nop
lea rcx, [rsp + 0x80]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb8]
call fcn.14005b520
mov eax, r14d
jmp 0x14007ec2f
mov r9d, 0x2c
mov word [rsp + 0x20], bp
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0x58]
mov rcx, r12
call fcn.1400554c0
test sil, sil
je 0x14007da8c
mov rax, qword [rsp + 0x90]
cmp word [rax], 0
jne 0x14007da8c
lea rcx, [rsp + 0xb0]
call fcn.14005b520
nop
lea rcx, [rsp + 0x98]
call fcn.14005b520
nop
lea rcx, [rsp + 0x90]
call fcn.14005b520
nop
lea rcx, [rsp + 0x80]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb8]
call fcn.14005b520
mov eax, r14d
jmp 0x14007ec2f
lea rcx, [rsp + 0xf0]
call fcn.140063230
mov dword [rsp + 0xf8], ebp
mov dword [rsp + 0xfc], ebp
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x88], rax
test r13b, r13b
jne 0x14007dbcb
mov edx, r14d
lea rcx, [rsp + 0x88]
call fcn.14007d450
mov rbx, rax
test rax, rax
je 0x14007dbcb
mov edx, 0x23
cmp dx, word [rax]
jne 0x14007dbcb
mov rbp, qword [0x14019c040]
xor r14d, r14d
mov rsi, r14
movzx r12d, word [rax]
mov word [rax], r14w
mov rcx, qword [rsp + 0x88]
cmp word [rcx], si
je 0x14007db1f
xor edx, edx
lea r8d, [r14 + 2]
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov rsi, rax
mov rbp, rax
lea edx, [r14 + 0x23]
mov word [rbx], r12w
add rbx, 2
mov qword [rsp + 0x88], rbx
mov dword [rsp + 0xa4], r15d
mov qword [rsp + 0xd8], r14
mov eax, 0x2e
cmp ax, word [rbx]
jne 0x14007db63
mov word [rbx], dx
add rbx, 2
mov qword [rsp + 0x88], rbx
mov dword [rsp + 0xa4], 0x40
test rbp, rbp
je 0x14007dbb7
lea rdx, [rsp + 0xd8]
lea rcx, [rsp + 0x88]
call fcn.14007d340
movzx ecx, byte [rsp + 0xa4]
mov dword [rsp + 0xa4], ecx
lea rcx, [rsp + 0xa4]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0xf0]
mov r8, rax
mov rdx, qword [rsp + 0xd8]
mov rcx, rbp
call fcn.140030854
mov r13b, 2
test rsi, rsi
je 0x14007dbc9
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor ebp, ebp
jmp 0x14007dbcb
xor ebp, ebp
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x70], rbp
call fcn.14002e004
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140071360
nop
lea rcx, [rsp + 0x88]
call fcn.14005b520
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rbp
call fcn.14002e004
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.140071360
nop
lea rcx, [rsp + 0x88]
call fcn.14005b520
mov r15d, ebp
mov r14d, ebp
mov ebx, ebp
mov dword [rsp + 0x100], ebx
mov esi, ebp
mov dword [rsp + 0xd0], ebp
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0x58]
call fcn.140068f80
mov eax, 0x2a
movabs rdx, 0x7fffffffffffffff
mov rcx, qword [rsp + 0x58]
cmp word [rcx], 0x23
jne 0x14007dd8f
add rcx, 2
mov qword [rsp + 0x58], rcx
cmp ax, word [rcx]
sete al
test al, al
je 0x14007dcb0
mov qword [rsp + 0x78], rdx
add rcx, 2
mov qword [rsp + 0x58], rcx
jmp 0x14007dcd4
lea rdx, [rsp + 0x108]
lea rcx, [rsp + 0x58]
call fcn.140068f80
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0x58]
cmp word [rcx], 0x23
jne 0x14007dd8f
add rcx, 2
mov qword [rsp + 0x58], rcx
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x58]
call fcn.140068f80
test eax, eax
cmovg r15d, dword [rsp + 0x68]
mov rax, qword [rsp + 0x58]
cmp word [rax], 0x23
jne 0x14007dd8f
add rax, 2
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x58]
call fcn.140068f80
test eax, eax
cmovg r14d, dword [rsp + 0x68]
mov rax, qword [rsp + 0x58]
cmp word [rax], 0x23
jne 0x14007dd8f
add rax, 2
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x58]
call fcn.140068f80
test eax, eax
cmovg ebx, dword [rsp + 0x68]
mov dword [rsp + 0x100], ebx
mov rax, qword [rsp + 0x58]
cmp word [rax], 0x23
jne 0x14007dd8f
add rax, 2
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x58]
call fcn.140068f80
test eax, eax
cmovg esi, dword [rsp + 0x68]
mov dword [rsp + 0xd0], esi
lea rcx, [rsp + 0x58]
call fcn.14005b560
mov r12, rbp
mov ebx, ebp
mov ecx, 0x75
mov rax, qword [rsp + 0x70]
cmp cx, word [rax]
jne 0x14007deb9
mov ecx, 0x64
cmp cx, word [rax + 2]
jne 0x14007deb9
mov edx, 0x3a
cmp dx, word [rax + 4]
jne 0x14007deb9
lea r10, [rax + 6]
mov qword [rsp + 0x68], r10
mov r13b, 4
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x108], rax
mov r14, qword [rsp + 0x78]
mov qword [rsp + 0x110], r14
mov rsi, rbp
mov r9d, 0x22
cmp r9w, word [r10]
jne 0x14007de10
add r10, 2
mov qword [rsp + 0x68], r10
lea rcx, [rsp + 0x68]
call fcn.1400cc7d0
mov rcx, qword [rsp + 0x68]
cmp rcx, r10
je 0x14007de34
cmp word [rcx - 2], r9w
jne 0x14007de34
mov word [rcx - 2], bp
mov rcx, qword [rsp + 0x68]
cmp dx, word [rcx]
jne 0x14007de4a
mov word [rcx], bp
mov rcx, qword [rsp + 0x68]
add rcx, 2
mov qword [rsp + 0x68], rcx
mov r8, rcx
cmp r9w, word [rcx]
jne 0x14007de7d
lea r8, [rcx + 2]
nop word [rax + rax]
add rcx, 2
mov qword [rsp + 0x68], rcx
cmp r9w, word [rcx]
jne 0x14007de77
mov word [rcx], bp
mov rcx, qword [rsp + 0x68]
cmp word [rcx], 0
jne 0x14007de60
lea rax, [rsp + 0x108]
mov qword [rsp + 0x20], rax
mov r9d, 0x10000
lea rdx, [rsp + 0xf0]
mov rcx, r10
call fcn.140056980
mov ebx, dword [rsp + 0xf8]
movsxd r12, dword [rsp + 0xfc]
add r12, qword [rsp + 0xf0]
jmp 0x14007decf
test r13b, r13b
je 0x14007e247
mov rsi, qword [rsp + 0xc8]
mov r14, qword [rsp + 0x78]
lea r15, [0x14019cf50]
mov qword [rsp + 0x118], r15
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
lea rcx, [rsp + 0x78]
call fcn.140063500
nop
cmp r13b, 1
jne 0x14007dfd6
mov rbx, qword [rsp + 0x70]
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x70], rbp
mov r13, qword [rsp + 0xe8]
cmp byte [r13 + 0xba], 0
jne 0x14007df50
test byte [r13 + 0xf], 0xf
jne 0x14007df50
mov byte [rsp + 0x20], 0
xor r9d, r9d
lea r8, [rsp + 0x70]
mov rdx, rbx
mov rcx, r13
call fcn.14006d6c0
nop
lea rcx, [rsp + 0x88]
call fcn.14005b520
jmp 0x14007df9d
mov byte [rsp + 0x20], 0
xor r9d, r9d
lea r8, [rsp + 0x70]
mov rdx, rbx
mov rcx, r13
call fcn.14006bc40
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x70], rbx
mov byte [rsp + 0x20], 0
xor r9d, r9d
lea r8, [rsp + 0x70]
mov rcx, r13
call fcn.14006bc40
nop
lea rcx, [rsp + 0x88]
call fcn.14005b520
or r9d, 0xffffffff
xor r8d, r8d
mov rdx, qword [rsp + 0x70]
mov rcx, r13
call fcn.14002b14c
test rax, rax
je 0x14007dfcc
mov r12, qword [rax + 8]
mov ebx, dword [rax + 0x18]
and ebx, 0x3fffffff
lea r15, [0x14019cf50]
jmp 0x14007dffd
mov rbx, qword [rsp + 0x78]
jmp 0x14007e1a7
cmp r13b, 2
jne 0x14007dff5
mov ebx, dword [rsp + 0xf8]
mov r12, qword [rsp + 0xf0]
mov r13, qword [rsp + 0xe8]
jmp 0x14007dffd
mov r13, qword [rsp + 0xe8]
cmp esi, ebx
cmovg esi, ebx
movsxd rax, esi
add r12, rax
sub ebx, esi
movsxd rax, ebx
cmp r14, rax
cmovg r14d, ebx
cmp byte [rsp + 0x60], 0
je 0x14007e0c8
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], rbp
mov r9d, r14d
mov r8, r12
mov rdx, qword [rsp + 0x80]
mov rcx, r13
call fcn.1400779e0
nop
lea rcx, [rsp + 0x78]
call fcn.14005b520
nop
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
lea rcx, [rsp + 0xf0]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb0]
call fcn.14005b520
nop
lea rcx, [rsp + 0x98]
call fcn.14005b520
nop
lea rcx, [rsp + 0x90]
call fcn.14005b520
nop
lea rcx, [rsp + 0x80]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb8]
call fcn.14005b520
xor eax, eax
jmp 0x14007ec2f
lea r8d, [r14 + r14*4 + 0xa]
mov r13d, dword [rsp + 0xe0]
test r13d, r13d
jle 0x14007e0f7
mov eax, r14d
cdq
idiv r13d
inc eax
mov r15d, dword [rsp + 0xc0]
lea ecx, [r15 + 2]
imul eax, ecx
add r8d, eax
jmp 0x14007e0ff
mov r15d, dword [rsp + 0xc0]
lea edx, [r8 + 6]
lea rcx, [rsp + 0x78]
call fcn.1400635c0
mov rbx, qword [rsp + 0x78]
mov rsi, rbx
mov rax, rbx
sub r14d, 1
js 0x14007e198
mov ebx, 0xd
lea ecx, [rbx - 3]
test r13d, r13d
jle 0x14007e166
mov eax, ebp
cdq
idiv r13d
test edx, edx
jne 0x14007e166
test ebp, ebp
jle 0x14007e144
mov word [rsi], bx
mov word [rsi + 2], cx
add rsi, 4
test r15d, r15d
je 0x14007e166
mov r9, rdi
mov r8d, ebp
lea rdx, str._8X_s
mov rcx, rsi
call qword [sym.imp.USER32.dll_wsprintfW]
movsxd r11, r15d
lea rsi, [rsi + r11*2]
movzx r8d, byte [r12]
lea rdx, [0x14014b2f0]
mov rcx, rsi
call qword [sym.imp.USER32.dll_wsprintfW]
inc r12
add rsi, 0xa
lea rax, [rsi - 2]
inc ebp
sub r14d, 1
mov ecx, 0xa
jns 0x14007e126
mov rbx, qword [rsp + 0x78]
xor r14d, r14d
mov word [rax], r14w
mov r13, qword [rsp + 0xe8]
mov r8, rbx
mov rdx, qword [rsp + 0x80]
mov rcx, r13
call fcn.140061290
nop
lea rcx, [rsp + 0x78]
call fcn.14005b520
nop
lea rcx, [0x14019cf50]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
lea rcx, [rsp + 0xf0]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb0]
call fcn.14005b520
nop
lea rcx, [rsp + 0x98]
call fcn.14005b520
nop
lea rcx, [rsp + 0x90]
call fcn.14005b520
nop
lea rcx, [rsp + 0x80]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb8]
call fcn.14005b520
xor eax, eax
jmp 0x14007ec2f
mov edx, 0x3c
lea rcx, [rsp + 0x68]
call fcn.140063580
nop
mov dword [rsp + 0xa4], ebp
lea rdx, [rsp + 0xa4]
lea rcx, [rsp + 0x70]
call fcn.14007d150
mov byte [rsp + 0x50], al
test al, al
jns 0x14007e2fd
lea rcx, [rsp + 0x68]
call fcn.14005b520
nop
lea rcx, [rsp + 0xf0]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb0]
call fcn.14005b520
nop
lea rcx, [rsp + 0x98]
call fcn.14005b520
nop
lea rcx, [rsp + 0x90]
call fcn.14005b520
nop
lea rcx, [rsp + 0x80]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb8]
call fcn.14005b520
mov eax, 0x80070057
jmp 0x14007ec2f
mov qword [rsp + 0x120], rbp
mov qword [rsp + 0x128], rbp
mov qword [rsp + 0xd8], rbp
mov rbx, rbp
mov qword [rsp + 0x118], rbx
or rsi, 0xffffffffffffffff
mov qword [rsp + 0x108], rsi
mov r12, rbp
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [rsi + 4]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r13, rax
cmp rax, rsi
cmove r13, rbp
mov qword [rsp + 0x88], r13
movzx eax, byte [rsp + 0x50]
cmp al, 0x11
jne 0x14007e44a
lea r8, [rsp + 0x108]
mov edx, dword [rsp + 0xa4]
mov rcx, r13
call fcn.14006b410
mov r12, rax
test rax, rax
jns 0x14007e43c
test r13, r13
je 0x14007e3ad
cmp r13, rsi
je 0x14007e3ad
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rcx, [rsp + 0xd8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x68]
call fcn.14005b520
nop
lea rcx, [rsp + 0xf0]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb0]
call fcn.14005b520
nop
lea rcx, [rsp + 0x98]
call fcn.14005b520
nop
lea rcx, [rsp + 0x90]
call fcn.14005b520
nop
lea rcx, [rsp + 0x80]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb8]
call fcn.14005b520
mov eax, 1
jmp 0x14007ec2f
mov rsi, qword [rsp + 0x108]
mov al, byte [rsp + 0x50]
jmp 0x14007e47c
test r13, r13
je 0x14007e47c
test al, al
jne 0x14007e46a
xor edx, edx
lea r8d, [rdx + 2]
mov rcx, r13
call fcn.14005c450
mov rsi, rax
mov al, byte [rsp + 0x50]
jmp 0x14007e47c
movzx edx, al
mov rcx, r13
call fcn.14005fe50
mov rsi, rax
mov al, byte [rsp + 0x50]
cmp byte [rsp + 0xa0], 0
je 0x14007e6d3
mov edi, ebp
mov rcx, qword [rsp + 0x90]
mov eax, 0x2a
cmp ax, word [rcx]
jne 0x14007e4d4
lea rdx, [rcx + 2]
xor r9d, r9d
lea r8, [rsp + 0xd8]
mov rcx, qword [rsp + 0xe8]
call fcn.14006c7b0
mov rbp, qword [rsp + 0xd8]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
add edi, edi
xor r12d, r12d
jmp 0x14007e553
xor r12d, r12d
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r12 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
cmove rbx, r12
mov qword [rsp + 0x118], rbx
test rbx, rbx
je 0x14007e553
xor edx, edx
lea r8d, [r12 + 2]
mov rcx, rbx
call fcn.14005c450
mov rdi, rax
mov eax, 0x20000000
cmp rdi, rax
cmovg rdi, rax
movsxd rdx, edi
xor r9d, r9d
lea r8d, [r12 + 2]
mov rcx, rbx
call fcn.140061a40
mov r12, rax
mov qword [rsp + 0x128], rax
mov rbp, rax
test r14d, r14d
jle 0x14007e561
movsxd rcx, r14d
add rbp, rcx
sub edi, r14d
test r15d, r15d
jle 0x14007e56d
cmp edi, r15d
cmovg edi, r15d
test r13, r13
je 0x14007e5dc
test rbp, rbp
je 0x14007e5d6
test edi, edi
jle 0x14007e5d0
mov eax, dword [rsp + 0x100]
test eax, eax
js 0x14007e5ca
mov ecx, dword [rsp + 0xd0]
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x28], rax
mov al, byte [rsp + 0x50]
mov byte [rsp + 0x20], al
mov r9d, edi
mov r8, rbp
mov rdx, rsi
mov rcx, r13
call fcn.14006b660
mov r15, rax
jmp 0x14007e5e0
or r15, 0xffffffffffffffff
jmp 0x14007e5e0
or r15, 0xffffffffffffffff
jmp 0x14007e5e0
or r15, 0xffffffffffffffff
jmp 0x14007e5e0
or r15, 0xffffffffffffffff
mov rdx, r15
lea rcx, [rsp + 0x140]
call fcn.140062c70
lea r8, [rsp + 0x140]
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xe8]
call fcn.140061290
nop
test r13, r13
je 0x14007e623
cmp r13, 0xffffffffffffffff
je 0x14007e623
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
test rbx, rbx
je 0x14007e638
cmp rbx, 0xffffffffffffffff
je 0x14007e638
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rcx, [rsp + 0xd8]
call fcn.14005b520
nop
test r12, r12
je 0x14007e655
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
nop
lea rcx, [rsp + 0x68]
call fcn.14005b520
nop
lea rcx, [rsp + 0xf0]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb0]
call fcn.14005b520
nop
lea rcx, [rsp + 0x98]
call fcn.14005b520
nop
lea rcx, [rsp + 0x90]
call fcn.14005b520
nop
lea rcx, [rsp + 0x80]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb8]
call fcn.14005b520
xor eax, eax
jmp 0x14007ec2f
test r13, r13
je 0x14007eb3e
mov rbp, qword [rsp + 0xc8]
test rbp, rbp
js 0x14007eb3e
cmp rbp, rsi
jg 0x14007eb3e
test al, al
jne 0x14007e714
test rsi, rsi
jg 0x14007e72a
mov rbx, qword [rsp + 0x68]
xor r13d, r13d
mov r14, qword [rsp + 0x88]
jmp 0x14007eb79
test rsi, rsi
jns 0x14007e725
movabs rsi, 0x7fffffffffffffff
jmp 0x14007e72a
test rsi, rsi
jle 0x14007e746
mov rax, rsi
sub rax, rbp
mov r14, qword [rsp + 0x78]
cmp rax, r14
jge 0x14007e74b
sub esi, ebp
movsxd r14, esi
mov qword [rsp + 0x78], r14
jmp 0x14007e74b
mov r14, qword [rsp + 0x78]
lea eax, [r14 + 2]
lea esi, [rax + rax*4]
mov ecx, dword [rsp + 0xe0]
test ecx, ecx
jle 0x14007e774
mov eax, r14d
cdq
idiv ecx
inc eax
mov ecx, dword [rsp + 0xc0]
add ecx, 2
imul eax, ecx
add esi, eax
movzx r15d, byte [rsp + 0x60]
test r15b, r15b
je 0x14007e78a
lea eax, [r14 + 1]
cdq
sub eax, edx
sar eax, 1
mov esi, eax
lea edx, [rsi + 4]
lea rcx, [rsp + 0x68]
call fcn.1400635c0
mov rbx, qword [rsp + 0x68]
test rbx, rbx
jne 0x14007e844
cmp r13, 0xffffffffffffffff
je 0x14007e7b5
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rcx, [rsp + 0xd8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x68]
call fcn.14005b520
nop
lea rcx, [rsp + 0xf0]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb0]
call fcn.14005b520
nop
lea rcx, [rsp + 0x98]
call fcn.14005b520
nop
lea rcx, [rsp + 0x90]
call fcn.14005b520
nop
lea rcx, [rsp + 0x80]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb8]
call fcn.14005b520
mov eax, 1
jmp 0x14007ec2f
mov qword [rsp + 0x58], rbx
xor r13d, r13d
mov word [rbx], r13w
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xc8], rcx
test r15b, r15b
je 0x14007e876
movsxd rax, r14d
mov byte [rax + rcx], r13b
movsxd rcx, esi
mov rax, qword [rsp + 0x58]
mov word [rax + rcx*2], r13w
add rbp, r12
mov r12w, r13w
cmp byte [rsp + 0x50], r12b
je 0x14007e89d
mov rax, rbp
cqo
and edx, 0x1ff
add rax, rdx
and eax, 0x1ff
sub rax, rdx
mov r12, rax
movzx ecx, r12w
sub rbp, rcx
xor r8d, r8d
mov rdx, rbp
mov r14, qword [rsp + 0x88]
mov rcx, r14
call fcn.14005c450
mov edx, 0x101800
lea rcx, [rsp + 0x108]
call fcn.1400632b0
mov r10, qword [rsp + 0x108]
add r10, 0x1000
and r10, 0xfffffffffffff000
mov qword [rsp + 0x100], r10
mov dword [rsp + 0xd0], r13d
mov rbp, r13
mov r15d, r13d
mov rdx, qword [rsp + 0x78]
test rdx, rdx
jle 0x14007eaae
movsxd rbx, dword [rsp + 0xe0]
jmp 0x14007e918
mov r10, qword [rsp + 0x100]
movzx ecx, r12w
mov esi, 0x100000
sub esi, ecx
movsxd rax, esi
cmp rax, rdx
cmovg esi, edx
lea eax, [rcx + rsi]
cmp byte [rsp + 0x50], 0
je 0x14007e949
add eax, 0x1ff
cdq
and edx, 0x1ff
add eax, edx
and eax, 0xfffffe00
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0xd0]
mov r8d, eax
mov rdx, r10
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [rsp + 0x60], 0
je 0x14007e9b0
movsxd rsi, esi
movzx edx, r12w
add rdx, qword [rsp + 0x100]
mov r8, rsi
mov r12, qword [rsp + 0xc8]
mov rcx, r12
call fcn.14010cd30
add r12, rsi
mov qword [rsp + 0xc8], r12
mov rdx, qword [rsp + 0x78]
sub rdx, rsi
mov qword [rsp + 0x78], rdx
mov r10, qword [rsp + 0x58]
jmp 0x14007ea9a
sub esi, 1
js 0x14007ea90
movzx r12d, r12w
add r12, qword [rsp + 0x100]
lea eax, [rsi + 1]
mov ecx, eax
sub qword [rsp + 0x78], rcx
mov r10, qword [rsp + 0x58]
movsxd r14, dword [rsp + 0xc0]
mov r13d, 0xd
test ebx, ebx
jle 0x14007ea49
mov rax, rbp
cqo
idiv rbx
test rdx, rdx
jne 0x14007ea49
test rbp, rbp
jle 0x14007ea20
mov word [r10], r13w
mov rax, qword [rsp + 0x58]
add rax, 2
mov qword [rsp + 0x58], rax
mov ecx, 0xa
mov word [rax], cx
mov r10, qword [rsp + 0x58]
add r10, 2
mov qword [rsp + 0x58], r10
test r14d, r14d
je 0x14007ea49
mov r9, rdi
mov r8d, r15d
lea rdx, str._8X_s
mov rcx, r10
call qword [sym.imp.USER32.dll_wsprintfW]
mov rax, qword [rsp + 0x58]
lea r10, [rax + r14*2]
mov qword [rsp + 0x58], r10
movzx r8d, byte [r12]
lea rdx, [0x14014b2f0]
mov rcx, r10
call qword [sym.imp.USER32.dll_wsprintfW]
mov r10, qword [rsp + 0x58]
add r10, 0xa
mov qword [rsp + 0x58], r10
inc r15d
inc rbp
inc r12
sub esi, 1
jns 0x14007e9e2
xor r13d, r13d
mov r14, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x78]
jmp 0x14007ea9a
mov r10, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x78]
mov r12w, r13w
test rdx, rdx
jg 0x14007e910
mov rbx, qword [rsp + 0x68]
jmp 0x14007eab3
mov r10, qword [rsp + 0x58]
cmp r10, rbx
je 0x14007eae0
mov al, byte [rsp + 0x60]
test al, al
je 0x14007eacd
mov rcx, qword [rsp + 0xc8]
mov byte [rcx], 0
jmp 0x14007eaec
sub r10, 2
mov qword [rsp + 0x58], r10
mov word [r10], r13w
or r15, 0xffffffffffffffff
jmp 0x14007eb00
mov rcx, qword [rsp + 0xc8]
mov al, byte [rsp + 0x60]
test al, al
je 0x14007eafc
mov r15d, ecx
sub r15d, ebx
xor eax, eax
mov dword [rcx], eax
jmp 0x14007eb00
or r15, 0xffffffffffffffff
lea rcx, [rsp + 0x108]
call fcn.14005b520
test r15d, r15d
js 0x14007eb79
mov byte [rsp + 0x28], 1
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9d, r15d
mov r8, rbx
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xe8]
call fcn.1400779e0
jmp 0x14007eb92
test rsi, rsi
jns 0x14007eb5b
lea rdx, str.0xFFFFFFFF
lea rcx, [rsp + 0x68]
call fcn.140071360
mov rbx, qword [rsp + 0x68]
jmp 0x14007eb6b
mov rdx, rsi
mov rbx, qword [rsp + 0x68]
mov rcx, rbx
call fcn.140062c70
mov r13d, 1
mov r14, qword [rsp + 0x88]
mov r8, rbx
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xe8]
call fcn.140061290
nop
test r14, r14
je 0x14007eba7
cmp r14, 0xffffffffffffffff
je 0x14007eba7
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rcx, [rsp + 0xd8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x68]
call fcn.14005b520
nop
lea rcx, [rsp + 0xf0]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb0]
call fcn.14005b520
nop
lea rcx, [rsp + 0x98]
call fcn.14005b520
nop
lea rcx, [rsp + 0x90]
call fcn.14005b520
nop
lea rcx, [rsp + 0x80]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xb8]
call fcn.14005b520
mov eax, r13d
mov rcx, qword [rsp + 0x1b0]
xor rcx, rsp
call fcn.14010bcc0
mov rbx, qword [rsp + 0x210]
add rsp, 0x1c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret