Function at 0x140016940
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Copy file
Delete file
Get file attributes
Get file size
Read file on windows
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x406f0]
mov eax, 0x407f0
call fcn.1400496c0
sub rsp, rax
mov rax, qword [0x1404b0028]
xor rax, rsp
mov qword [rbp + 0x406e0], rax
mov rax, r9
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x1a8], rcx
mov qword [rbp + 0x1b0], rax
mov rax, qword [rbp + 0x40750]
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x1c8], rax
mov r14, qword [rbp + 0x40758]
mov qword [rbp - 0x10], r14
mov qword [rbp + 0x1b8], r14
mov rdi, qword [rbp + 0x40768]
mov qword [rbp + 0x78], rdi
mov qword [rbp + 0x1c0], rdi
mov rdx, qword [r14]
lea rcx, [rbp + 0x70]
call fcn.140021bf0
nop
mov r12d, 1
mov edx, r12d
lea ecx, [r12 + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x120], rax
lea edx, [r12 + 9]
lea rcx, [rbp + 0x120]
call fcn.14001e440
mov r15, qword [rbp + 0x120]
lea rax, [r15 - 8]
mov qword [rbp + 0xa0], rax
mov eax, dword [rax]
lea eax, [rax*2 + 2]
movsxd r8, eax
lea rdx, str..Texture2D
mov rcx, r15
call fcn.1402d15b0
nop
lea rcx, [rbp + 0xf8]
call fcn.14001f530
nop
mov r13, qword [rbp + 0xf8]
mov r8, r13
mov rdx, qword [r14]
lea rcx, [rbp - 0x68]
call fcn.140022100
mov rbx, rax
mov rcx, qword [rax]
mov edx, dword [rcx - 8]
mov rcx, r14
call fcn.14001e440
mov rdx, qword [rbx]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rcx, qword [r14]
call fcn.1402d15b0
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x140016a88
lea rcx, [rax - 8]
call fcn.1402d83b4
mov rdx, r12
mov ecx, 0xa
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x98], rax
mov rax, qword [rdi]
mov edx, dword [rax - 8]
lea rcx, [rbp + 0x98]
call fcn.14001e440
mov rdx, qword [rdi]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rcx, qword [rbp + 0x98]
call fcn.1402d15b0
nop
mov rdx, r12
mov ecx, 0xa
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x18], rax
mov rax, qword [0x1406534c0]
mov edx, dword [rax - 8]
mov rax, qword [0x1406534d0]
add edx, dword [rax - 8]
lea rcx, [rbp - 0x18]
call fcn.14001e440
mov rdx, qword [0x1406534c0]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rbx, qword [rbp - 0x18]
mov rcx, rbx
call fcn.1402d15b0
mov rdx, qword [0x1406534d0]
mov ecx, dword [rdx - 8]
mov rax, qword [0x1406534c0]
movsxd r9, dword [rax - 8]
lea eax, [rcx + rcx]
movsxd r8, eax
lea rcx, [rbx + r9*2]
call fcn.1402d15b0
mov r8, rbx
mov rdx, qword [r14]
lea rcx, [rbp + 0x88]
call fcn.1400223d0
nop
test rbx, rbx
je 0x140016b5c
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov rdx, qword [rbp + 0x88]
lea rcx, [rbp - 0x68]
call fcn.140021d70
mov rbx, rax
mov rcx, qword [rax]
mov edx, dword [rcx - 8]
lea rcx, [rbp + 0x88]
call fcn.14001e440
mov rdx, qword [rbx]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rcx, qword [rbp + 0x88]
call fcn.1402d15b0
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x140016baa
lea rcx, [rax - 8]
call fcn.1402d83b4
lea r8, [0x14047079c]
lea rdx, str._OUT
lea rcx, [rbp + 0x88]
call fcn.14001e530
mov rdx, r12
mov ecx, 0xa
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x18], rax
mov rax, qword [0x1406534c8]
mov rbx, qword [rbp + 0x88]
lea rsi, [rbx - 8]
mov qword [rbp + 0x68], rsi
mov edx, dword [rsi]
add edx, dword [rax - 8]
lea rcx, [rbp - 0x18]
call fcn.14001e440
mov rdx, qword [0x1406534c8]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rdi, qword [rbp - 0x18]
mov rcx, rdi
call fcn.1402d15b0
mov ecx, dword [rsi]
mov rax, qword [0x1406534c8]
movsxd rdx, dword [rax - 8]
lea eax, [rcx + rcx]
movsxd r8, eax
lea rcx, [rdi + rdx*2]
mov rdx, rbx
call fcn.1402d15b0
mov edx, dword [rdi - 8]
lea rcx, [rbp + 0x98]
call fcn.14001e440
mov eax, dword [rdi - 8]
add eax, eax
movsxd r8, eax
mov rdx, rdi
mov rsi, qword [rbp + 0x98]
mov rcx, rsi
call fcn.1402d15b0
test rdi, rdi
je 0x140016c6e
lea rcx, [rdi - 8]
call fcn.1402d83b4
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140016c84
mov rcx, rsi
call fcn.14001de70
lea rax, vtable.SFile.0
mov qword [rbp - 0x38], rax
mov rdx, r12
mov ecx, 0xa
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x28], rax
xor eax, eax
mov qword [rbp - 0x30], rax
mov rdx, r12
lea ecx, [rax + 0xa]
call fcn.1402deebc
lea rbx, [rax + 8]
mov qword [rbp + 0xc8], rbx
mov rdi, qword [r14]
mov rdx, r12
mov ecx, 0xa
call fcn.1402deebc
add rax, 8
mov qword [rbp - 8], rax
mov rdx, 0xffffffffffffffff
nop
inc rdx
cmp word [rdi + rdx*2], 0
jne 0x140016ce0
lea rcx, [rbp - 8]
call fcn.14001e440
mov rcx, qword [rbp - 8]
mov eax, dword [rcx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdx, rdi
call fcn.1402d15b0
lea rdx, [rbp - 8]
lea rcx, [rbp - 0x68]
call fcn.14001da90
mov rdi, rax
mov rcx, qword [rax]
mov edx, dword [rcx - 8]
lea rcx, [rbp - 0x28]
call fcn.14001e440
mov rdx, qword [rdi]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov r12, qword [rbp - 0x28]
mov rcx, r12
call fcn.1402d15b0
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x140016d54
lea rcx, [rax - 8]
call fcn.1402d83b4
xor ecx, ecx
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
mov qword [rbp - 0x30], rax
cmp rax, 0xffffffffffffffff
jne 0x140016d9a
xor eax, eax
mov edi, eax
mov qword [rbp - 0x30], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
mov dword [rsp + 0x70], eax
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x70]
mov r8d, 0x100
lea rdx, [rbp + 0x2e0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test rdi, rdi
je 0x140016dd6
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov edi, eax
mov qword [rbp - 0x30], rax
mov eax, dword [rbp + 0x300]
cmp eax, 0x30373233
je 0x140016eb1
cmp eax, 0x6562694c
je 0x140016eb1
test rbx, rbx
je 0x140016e01
lea rcx, [rbx - 8]
call fcn.1402d83b4
nop
test rdi, rdi
je 0x140016e0f
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r12, r12
je 0x140016e1f
lea rcx, [r12 - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0x68]
call fcn.1402d83b4
nop
test rsi, rsi
je 0x140016e38
lea rcx, [rsi - 8]
call fcn.1402d83b4
nop
test r13, r13
je 0x140016e47
lea rcx, [r13 - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0xa0]
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x70]
test rax, rax
je 0x140016e67
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x30]
mov rcx, qword [rax]
test rcx, rcx
je 0x140016e7d
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x28]
mov rcx, qword [rax]
test rcx, rcx
je 0x140016e93
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rdi, qword [rbp + 0x20]
mov rcx, qword [rdi]
test rcx, rcx
je 0x140016ea9
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rcx, qword [r14]
jmp 0x140018117
mov r14d, dword [rbp + 0x2fc]
xor edx, edx
mov r8d, 0x200
lea rcx, [rbp + 0x4e0]
call fcn.1402d1c50
mov r8d, r14d
lea rdx, [rbp + 0x300]
lea rcx, [rbp + 0x4e0]
call fcn.1402d15b0
lea rcx, [rbp + 0x4e0]
call fcn.14001f8a0
mov rbx, rax
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x128], rax
mov rdx, 0xffffffffffffffff
inc rdx
cmp word [rbx + rdx*2], 0
jne 0x140016f10
lea rcx, [rbp + 0x128]
call fcn.14001e440
mov rcx, qword [rbp + 0x128]
lea rax, [rcx - 8]
mov qword [rbp - 8], rax
mov eax, dword [rax]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdx, rbx
call fcn.1402d15b0
nop
add r14d, 0x20
test r14b, 3
je 0x140016f5c
and r14d, 0xfffffffc
add r14d, 4
movzx ebx, word [rbp + r14 + 0x2e8]
mov rdx, qword [rbp - 0x10]
mov rdx, qword [rdx]
lea rcx, [rbp - 0x68]
call fcn.140021d70
mov r9d, ebx
mov r8, qword [rax]
lea rdx, str._s_.8X.Material
lea rcx, [rbp + 0xc8]
call fcn.14001ee70
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x140016fa0
lea rcx, [rax - 8]
call fcn.1402d83b4
mov rbx, qword [rbp + 0xc8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140017091
mov word [rsp + 0x20], 0x409
xor r9d, r9d
lea r8, str.Warning_
lea rdx, [0x1404715a8]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxExW]
nop
mov rcx, qword [rbp - 8]
call fcn.1402d83b4
nop
test rbx, rbx
je 0x140016ff3
lea rcx, [rbx - 8]
call fcn.1402d83b4
nop
test rdi, rdi
je 0x140017001
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r12, r12
je 0x140017011
lea rcx, [r12 - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0x68]
call fcn.1402d83b4
nop
test rsi, rsi
je 0x14001702a
lea rcx, [rsi - 8]
call fcn.1402d83b4
nop
test r13, r13
je 0x140017039
lea rcx, [r13 - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0xa0]
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x70]
test rax, rax
je 0x140017059
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x30]
mov rcx, qword [rax]
test rcx, rcx
je 0x14001706f
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x28]
mov rcx, qword [rax]
test rcx, rcx
je 0x140017085
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rdi, qword [rbp + 0x20]
mov rcx, qword [rdi]
jmp 0x140018101
lea edx, [r14 + 0x14]
mov r8d, dword [rbp + rdx + 0x2e0]
add r8d, 4
add r8d, edx
test r8b, 3
je 0x1400170b2
and r8d, 0xfffffffc
add r8d, 4
mov edx, dword [rbp + r8 + 0x2e0]
add edx, 4
add edx, r8d
test dl, 3
je 0x1400170cb
and edx, 0xfffffffc
add edx, 4
add edx, 0x14
mov r8d, dword [rbp + rdx + 0x2e0]
add r8d, 4
add r8d, edx
test r8b, 3
je 0x1400170eb
and r8d, 0xfffffffc
add r8d, 4
mov eax, dword [rbp + r8 + 0x2e0]
add eax, 4
add eax, r8d
mov dword [rbp - 0x60], eax
test al, 3
je 0x140017109
and eax, 0xfffffffc
add eax, 4
mov dword [rbp - 0x60], eax
mov r12d, 1
mov edx, r12d
lea ecx, [r12 + 9]
call fcn.1402deebc
lea r14, [rax + 8]
mov qword [rbp + 0x90], r14
mov rdx, rbx
lea rcx, [rbp - 0x68]
call fcn.140021bf0
mov rdi, rax
mov edx, r12d
lea ecx, [r12 + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x58], rax
lea r12, [rsi - 8]
mov qword [rbp - 0x18], r12
mov rcx, qword [rdi]
mov edx, dword [rcx - 8]
add edx, dword [r12]
lea rcx, [rbp + 0x58]
call fcn.14001e440
mov eax, dword [r12]
add eax, eax
movsxd r8, eax
mov rdx, rsi
mov r12, qword [rbp + 0x58]
mov rcx, r12
call fcn.1402d15b0
mov rdx, qword [rdi]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
movsxd rax, dword [rsi - 8]
lea rcx, [r12 + rax*2]
call fcn.1402d15b0
nop
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x1400171a9
lea rcx, [rax - 8]
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x58], rax
mov rdx, 0xffffffffffffffff
inc rdx
cmp word [rbx + rdx*2], 0
jne 0x1400171c5
lea rcx, [rbp - 0x58]
call fcn.14001e440
mov rcx, qword [rbp - 0x58]
mov eax, dword [rcx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdx, rbx
call fcn.1402d15b0
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x68]
call fcn.14001da90
mov rbx, rax
mov rcx, qword [rax]
mov edx, dword [rcx - 8]
lea rcx, [rbp - 0x28]
call fcn.14001e440
mov rdx, qword [rbx]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rbx, qword [rbp - 0x28]
mov rcx, rbx
call fcn.1402d15b0
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x140017239
lea rcx, [rax - 8]
call fcn.1402d83b4
xor edi, edi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rbp - 0x30], rax
cmp rax, 0xffffffffffffffff
jne 0x14001727d
mov ebx, edi
mov qword [rbp - 0x30], rbx
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0x70]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, dword [rsp + 0x70]
shl rcx, 0x20
mov eax, eax
add rcx, rax
mov qword [rbp - 0x50], rcx
add ecx, 0x1000
call fcn.1402d83ac
mov rdi, rax
mov qword [rbp + 0xa8], rax
xor ecx, ecx
mov dword [rsp + 0x70], ecx
mov rax, qword [rbp - 0x50]
test eax, eax
je 0x1400172da
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x70]
mov r8d, eax
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor ecx, ecx
test rbx, rbx
je 0x1400172ee
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor ecx, ecx
mov qword [rbp - 0x30], rcx
mov edx, ecx
mov dword [rbp + 0x288], 0x69614d5f
mov dword [rbp + 0x28c], 0x7865546e
mov rax, qword [rbp + 0x288]
cmp qword [rdi], rax
je 0x14001731b
inc edx
movsxd rcx, edx
cmp qword [rcx + rdi], rax
jne 0x140017310
movsxd rax, edx
movzx eax, word [rax + rdi + 0xc]
mov dword [rsp + 0x70], eax
mov rax, qword [rbp - 0x10]
mov rdx, qword [rax]
lea rcx, [rbp - 0x68]
call fcn.140021d70
mov rbx, qword [rax]
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x78], rax
mov edx, dword [r15 - 8]
add edx, 6
lea rcx, [rbp - 0x78]
call fcn.14001e440
mov rdi, qword [rbp - 0x78]
movsd xmm0, qword [str._s_.8X]
movsd qword [rdi], xmm0
mov eax, dword [0x1404715c0]
mov dword [rdi + 8], eax
mov eax, dword [r15 - 8]
add eax, eax
movsxd r8, eax
lea rcx, [rdi + 0xc]
mov rdx, r15
call fcn.1402d15b0
mov r9d, dword [rsp + 0x70]
mov r8, rbx
mov rdx, rdi
lea rcx, [rbp + 0xc8]
call fcn.14001ee70
test rdi, rdi
je 0x1400173b2
lea rcx, [rdi - 8]
call fcn.1402d83b4
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x1400173c4
lea rcx, [rax - 8]
call fcn.1402d83b4
mov rbx, qword [rbp + 0xc8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140017484
mov word [rsp + 0x20], 0x409
xor r9d, r9d
lea r8, str.Warning_
lea rdx, [0x1404715c8]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxExW]
nop
test r12, r12
je 0x14001740e
lea rcx, [r12 - 8]
call fcn.1402d83b4
nop
test r14, r14
je 0x14001741d
lea rcx, [r14 - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp - 8]
call fcn.1402d83b4
nop
test rbx, rbx
je 0x140017436
lea rcx, [rbx - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x140017445
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbp - 0x28]
test rax, rax
je 0x140017458
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0x68]
call fcn.1402d83b4
nop
mov rcx, qword [rbp - 0x18]
call fcn.1402d83b4
nop
test r13, r13
je 0x14001747b
lea rcx, [r13 - 8]
call fcn.1402d83b4
nop
lea rcx, [r15 - 8]
jmp 0x140017040
lea rdi, [rbx - 8]
mov qword [rbp - 0x68], rdi
mov edx, dword [rdi]
lea rcx, [rbp + 0x90]
call fcn.14001e440
mov eax, dword [rdi]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdx, rbx
mov r15, qword [rbp + 0x90]
mov rcx, r15
call fcn.1402d15b0
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x58], rax
mov r14, 0xffffffffffffffff
mov rdx, r14
nop word [rax + rax]
inc rdx
cmp word [r15 + rdx*2], 0
jne 0x1400174e0
lea rcx, [rbp - 0x58]
call fcn.14001e440
mov rcx, qword [rbp - 0x58]
mov eax, dword [rcx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdx, r15
call fcn.1402d15b0
lea rdx, [rbp - 0x58]
lea rcx, [rbp + 0xd0]
call fcn.14001da90
mov rbx, rax
mov rcx, qword [rax]
mov edx, dword [rcx - 8]
lea rcx, [rbp - 0x28]
call fcn.14001e440
mov rdx, qword [rbx]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rbx, qword [rbp - 0x28]
mov rcx, rbx
call fcn.1402d15b0
mov rax, qword [rbp + 0xd0]
test rax, rax
je 0x14001755b
lea rcx, [rax - 8]
call fcn.1402d83b4
xor edi, edi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rbp - 0x30], rax
cmp rax, r14
jne 0x14001759e
mov ebx, edi
mov qword [rbp - 0x30], rbx
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0x70]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r8d, dword [rsp + 0x70]
shl r8, 0x20
mov eax, eax
add r8, rax
mov dword [rsp + 0x70], edi
cmp r8d, 0x100
jbe 0x1400175cf
mov r8d, 0x100
jmp 0x1400175d4
test r8d, r8d
je 0x1400175ee
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x70]
lea rdx, [rbp + 0x2e0]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test rbx, rbx
je 0x140017600
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbp - 0x30], rdi
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp + 0x3e0]
call fcn.1402d1c50
mov r8d, dword [rbp + 0x2e0]
lea rdx, [rbp + 0x2e4]
lea rcx, [rbp + 0x3e0]
call fcn.1402d15b0
lea rcx, [rbp + 0x3e0]
call fcn.14001f8a0
mov rdi, rax
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x130], rax
mov rdx, r14
nop dword [rax + rax]
inc rdx
cmp word [rdi + rdx*2], 0
jne 0x140017660
lea rcx, [rbp + 0x130]
call fcn.14001e440
mov rbx, qword [rbp + 0x130]
lea r14, [rbx - 8]
mov qword [rbp + 0xd0], r14
mov eax, dword [r14]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdx, rdi
mov rcx, rbx
call fcn.1402d15b0
nop
mov rdx, r15
lea rcx, [rbp + 0xb0]
call fcn.140021d70
mov rdi, rax
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x78], rax
mov rcx, qword [rdi]
mov edx, dword [rcx - 8]
add edx, dword [r14]
lea rcx, [rbp - 0x78]
call fcn.14001e440
mov rdx, qword [rdi]
mov ecx, dword [rdx - 8]
add ecx, ecx
movsxd r8, ecx
mov r14, qword [rbp - 0x78]
mov rcx, r14
call fcn.1402d15b0
mov ecx, dword [rbx - 8]
mov rax, qword [rdi]
movsxd rdx, dword [rax - 8]
lea eax, [rcx + rcx]
movsxd r8, eax
lea rcx, [r14 + rdx*2]
mov rdx, rbx
call fcn.1402d15b0
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x78], rax
mov edx, dword [r14 - 8]
inc edx
lea rcx, [rbp - 0x78]
call fcn.14001e440
mov eax, dword [r14 - 8]
add eax, eax
movsxd r8, eax
mov rdx, r14
mov rdi, qword [rbp - 0x78]
mov rcx, rdi
call fcn.1402d15b0
movsxd rcx, dword [r14 - 8]
mov eax, dword [0x14047150c]
mov word [rdi + rcx*2], ax
mov rdx, r15
lea rcx, [rbp + 0xb8]
call fcn.140022000
mov rbx, rax
mov qword [rsp + 0x78], rax
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x78], rax
mov rcx, qword [rbx]
mov edx, dword [rcx - 8]
add edx, dword [rdi - 8]
lea rcx, [rbp - 0x78]
call fcn.14001e440
mov eax, dword [rdi - 8]
add eax, eax
movsxd r8, eax
mov rdx, rdi
mov rbx, qword [rbp - 0x78]
mov rcx, rbx
call fcn.1402d15b0
mov rax, qword [rsp + 0x78]
mov rdx, qword [rax]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
movsxd rax, dword [rdi - 8]
lea rcx, [rbx + rax*2]
call fcn.1402d15b0
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x18], rax
mov edx, dword [rbx - 8]
add edx, 4
lea rcx, [rbp + 0x18]
call fcn.14001e440
mov eax, dword [rbx - 8]
add eax, eax
movsxd r8, eax
mov rdx, rbx
mov rcx, qword [rbp + 0x18]
call fcn.1402d15b0
lea rcx, [rbx - 8]
movsxd r8, dword [rcx]
mov rdx, qword [0x140471510]
mov rax, qword [rbp + 0x18]
mov qword [rax + r8*2], rdx
test rbx, rbx
je 0x140017821
call fcn.1402d83b4
mov rax, qword [rbp + 0xb8]
test rax, rax
je 0x140017836
lea rcx, [rax - 8]
call fcn.1402d83b4
test rdi, rdi
je 0x140017844
lea rcx, [rdi - 8]
call fcn.1402d83b4
test r14, r14
je 0x140017852
lea rcx, [r14 - 8]
call fcn.1402d83b4
mov rax, qword [rbp + 0xb0]
test rax, rax
je 0x140017867
lea rcx, [rax - 8]
call fcn.1402d83b4
mov rax, qword [rbp - 0x10]
mov rdx, qword [rax]
lea rcx, [rsp + 0x78]
call fcn.140021bf0
mov rbx, rax
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0xc0], rax
mov rcx, qword [rbx]
mov edx, dword [rcx - 8]
add edx, dword [rsi - 8]
lea rcx, [rbp + 0xc0]
call fcn.14001e440
mov ecx, dword [rsi - 8]
add ecx, ecx
movsxd r8, ecx
mov rdx, rsi
mov r14, qword [rbp + 0xc0]
mov rcx, r14
call fcn.1402d15b0
mov rdx, qword [rbx]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
movsxd rax, dword [rsi - 8]
lea rcx, [r14 + rax*2]
call fcn.1402d15b0
nop
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x1400178ee
lea rcx, [rax - 8]
call fcn.1402d83b4
mov rdx, qword [rbp + 0x18]
lea rcx, [rbp + 0x60]
call fcn.140021bf0
nop
mov rdx, r15
lea rcx, [rsp + 0x78]
call fcn.140021bf0
mov rdi, rax
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x58], rax
mov rcx, qword [rdi]
mov edx, dword [rcx - 8]
add edx, dword [rsi - 8]
lea rcx, [rbp - 0x58]
call fcn.14001e440
mov ecx, dword [rsi - 8]
add ecx, ecx
movsxd r8, ecx
mov rdx, rsi
mov rbx, qword [rbp - 0x58]
mov rcx, rbx
call fcn.1402d15b0
mov rdx, qword [rdi]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
movsxd rax, dword [rsi - 8]
lea rcx, [rbx + rax*2]
call fcn.1402d15b0
nop
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x140017976
lea rcx, [rax - 8]
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x78], rax
mov edx, dword [rsi - 8]
mov rbx, qword [rbp + 0x60]
add edx, dword [rbx - 8]
lea rcx, [rbp - 0x78]
call fcn.14001e440
mov eax, dword [rsi - 8]
add eax, eax
movsxd r8, eax
mov rdx, rsi
mov rdi, qword [rbp - 0x78]
mov rcx, rdi
call fcn.1402d15b0
mov eax, dword [rbx - 8]
add eax, eax
movsxd r8, eax
movsxd rax, dword [rsi - 8]
lea rcx, [rdi + rax*2]
mov rdx, rbx
call fcn.1402d15b0
mov edx, dword [rdi - 8]
lea rcx, [rbp + 0x60]
call fcn.14001e440
mov eax, dword [rdi - 8]
add eax, eax
movsxd r8, eax
mov rdx, rdi
mov rbx, qword [rbp + 0x60]
mov rcx, rbx
call fcn.1402d15b0
test rdi, rdi
je 0x1400179fe
lea rcx, [rdi - 8]
call fcn.1402d83b4
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140017a14
mov rcx, rsi
call fcn.14001de70
xor r8d, r8d
mov rdx, r14
mov rax, qword [rbp - 0x10]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
lea rax, vtable.SFile.0
mov qword [rbp + 0x140], rax
mov edi, 1
mov edx, edi
lea ecx, [rdi + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x150], rax
xor esi, esi
mov qword [rbp + 0x148], rsi
lea rax, vtable.SFile.0
mov qword [rbp + 0x40], rax
mov edx, edi
lea ecx, [rdi + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x48], rsi
mov edx, edi
lea ecx, [rdi + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x70], rax
mov rdx, 0xffffffffffffffff
inc rdx
cmp word [r15 + rdx*2], 0
jne 0x140017a92
lea rcx, [rbp - 0x70]
call fcn.14001e440
mov rcx, qword [rbp - 0x70]
mov eax, dword [rcx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdx, r15
call fcn.1402d15b0
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x78]
call fcn.14001da90
mov rdi, rax
mov rcx, qword [rax]
mov edx, dword [rcx - 8]
lea rcx, [rbp - 0x28]
call fcn.14001e440
mov rdx, qword [rdi]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rdi, qword [rbp - 0x28]
mov rcx, rdi
call fcn.1402d15b0
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x140017b09
lea rcx, [rax - 8]
call fcn.1402d83b4
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
mov qword [rbp - 0x30], rax
cmp rax, 0xffffffffffffffff
jne 0x140017b4c
mov rdi, rsi
mov qword [rbp - 0x30], rsi
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0x70]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, dword [rsp + 0x70]
shl rsi, 0x20
mov eax, eax
add rsi, rax
lea ecx, [rsi + 0x1000]
call fcn.1402d83ac
mov qword [rsp + 0x78], rax
xor ecx, ecx
mov dword [rsp + 0x70], ecx
test esi, esi
je 0x140017b9a
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x70]
mov r8d, esi
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test rdi, rdi
je 0x140017bb0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
mov qword [rbp - 0x30], rsi
jmp 0x140017bb2
xor esi, esi
mov rcx, qword [rsp + 0x78]
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x70], rax
mov rdx, 0xffffffffffffffff
nop dword [rax + rax]
inc rdx
cmp word [r14 + rdx*2], 0
jne 0x140017be0
lea rcx, [rbp - 0x70]
call fcn.14001e440
mov rcx, qword [rbp - 0x70]
mov eax, dword [rcx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdx, r14
call fcn.1402d15b0
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x78]
call fcn.14001da90
mov rdi, rax
mov rcx, qword [rax]
mov edx, dword [rcx - 8]
lea rcx, [rbp + 0x50]
call fcn.14001e440
mov rdx, qword [rdi]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rdi, qword [rbp + 0x50]
mov rcx, rdi
call fcn.1402d15b0
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x140017c57
lea rcx, [rax - 8]
call fcn.1402d83b4
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
mov qword [rbp + 0x48], rax
cmp rax, 0xffffffffffffffff
jne 0x140017c9b
xor eax, eax
mov esi, eax
mov qword [rbp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0x70]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, dword [rsp + 0x70]
shl rcx, 0x20
mov eax, eax
add rcx, rax
mov qword [rbp + 0xb8], rcx
mov ecx, ecx
call fcn.1402d83ac
mov rdi, rax
mov qword [rbp - 0x70], rax
xor eax, eax
mov dword [rsp + 0x70], eax
mov r8, qword [rbp + 0xb8]
test r8d, r8d
je 0x140017cf3
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x70]
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test rsi, rsi
je 0x140017d09
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov esi, eax
mov qword [rbp + 0x48], rax
mov edx, 1
mov ecx, 0x340000
call fcn.1402deebc
mov r10, rax
mov qword [rbp - 0x48], rax
mov eax, dword [rbp - 0x60]
add eax, 0x48
mov dword [rbp - 0x20], eax
mov edx, dword [rax + rdi]
lea r8d, [rax + 4]
test edx, edx
je 0x140017d7b
mov r9d, edx
nop word [rax + rax]
mov edx, r8d
add rdx, rdi
movzx eax, word [rdx]
imul rcx, rax, 0x34
movups xmm0, xmmword [rdx]
movups xmmword [rcx + r10], xmm0
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rcx + r10 + 0x10], xmm1
movups xmm0, xmmword [rdx + 0x20]
movups xmmword [rcx + r10 + 0x20], xmm0
mov eax, dword [rdx + 0x30]
mov dword [rcx + r10 + 0x30], eax
add r8d, 0x34
sub r9, 1
jne 0x140017d40
mov edx, dword [r8 + rdi]
shl edx, 4
add r8d, 4
add edx, r8d
mov dword [rbp], edx
add edx, 0x1c
mov ecx, dword [rdx + rdi]
shl ecx, 4
add ecx, 4
add edx, ecx
mov ecx, dword [rdx + rdi]
shl ecx, 4
lea eax, [rdx + 4]
add eax, ecx
mov dword [rsp + 0x70], eax
xor edi, edi
mov dword [rsp + 0x74], edi
mov dword [rbp - 0x80], edi
xor edx, edx
mov r8d, 0x20000
lea rcx, [rbp + 0x206e0]
call fcn.1402d1c50
lea rax, vtable.SFile.0
mov qword [rbp + 0xd8], rax
lea edx, [rdi + 1]
lea ecx, [rdi + 0xa]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xe0], rdi
mov rdi, qword [rbp + 0x20]
mov rdi, qword [rdi]
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x288], rax
mov rdx, 0xffffffffffffffff
nop word [rax + rax]
inc rdx
cmp word [rdi + rdx*2], 0
jne 0x140017e20
lea rcx, [rbp + 0x288]
call fcn.14001e440
mov rcx, qword [rbp + 0x288]
mov eax, dword [rcx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdx, rdi
call fcn.1402d15b0
lea rdx, [rbp + 0x288]
lea rcx, [rsp + 0x78]
call fcn.14001da90
mov rdi, rax
mov rcx, qword [rax]
mov edx, dword [rcx - 8]
lea rcx, [rbp + 0xe8]
call fcn.14001e440
mov rdx, qword [rdi]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rdi, qword [rbp + 0xe8]
mov rcx, rdi
call fcn.1402d15b0
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x140017ea5
lea rcx, [rax - 8]
call fcn.1402d83b4
xor eax, eax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
mov qword [rbp + 0xe0], rax
cmp rax, 0xffffffffffffffff
jne 0x140017ef1
xor eax, eax
mov edi, eax
mov qword [rbp + 0xe0], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rbp - 0x5c]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, dword [rbp - 0x5c]
shl rdi, 0x20
mov eax, eax
add rdi, rax
lea eax, [rdi + 0xc0]
mov dword [rbp - 0x1c], eax
mov ecx, eax
call fcn.1402d83ac
mov qword [rbp - 0x78], rax
xor r11d, r11d
mov dword [rbp - 0x5c], r11d
test edi, edi
je 0x140017f48
mov qword [rsp + 0x20], r11
lea r9, [rbp - 0x5c]
mov r8d, edi
mov rdx, rax
mov rcx, qword [rbp + 0xe0]
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor r11d, r11d
mov rax, qword [rbp + 0xe0]
test rax, rax
je 0x140017f67
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor r11d, r11d
mov qword [rbp + 0xe0], r11
mov ecx, 0xfeff
mov rax, qword [rbp - 0x78]
cmp word [rax], cx
je 0x140018142
lea rcx, [0x1404715d8]
call fcn.140019510
nop
mov rcx, qword [rbp + 0xe0]
test rcx, rcx
je 0x140017f98
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbp + 0xe8]
test rax, rax
je 0x140017fae
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
test rsi, rsi
je 0x140017fbc
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbp + 0x50]
test rax, rax
je 0x140017fcf
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0x150]
test rcx, rcx
je 0x140017fe5
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x140017ff8
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
test rbx, rbx
je 0x140018007
lea rcx, [rbx - 8]
call fcn.1402d83b4
nop
test r14, r14
je 0x140018016
lea rcx, [r14 - 8]
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x18]
test rax, rax
je 0x140018029
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0xd0]
call fcn.1402d83b4
nop
test r12, r12
je 0x140018046
lea rcx, [r12 - 8]
call fcn.1402d83b4
nop
test r15, r15
je 0x140018055
lea rcx, [r15 - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp - 0x68]
call fcn.1402d83b4
nop
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x140018078
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbp - 0x28]
test rax, rax
je 0x14001808b
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0x68]
call fcn.1402d83b4
nop
mov rcx, qword [rbp - 0x18]
call fcn.1402d83b4
nop
test r13, r13
je 0x1400180ae
lea rcx, [r13 - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0xa0]
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x70]
test rax, rax
je 0x1400180ce
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x30]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400180e4
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x28]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400180fa
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
test rcx, rcx
je 0x140018110
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rax, qword [rbp - 0x10]
mov rcx, qword [rax]
test rcx, rcx
je 0x140018126
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0x78]
mov rcx, qword [rcx]
test rcx, rcx
je 0x14001813b
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
xor eax, eax
jmp 0x1400194e5
mov ecx, r11d
mov edx, edi
add rdx, rax
nop word [rax + rax]
lea eax, [rcx + 0x20]
mov word [rdx], ax
inc ecx
lea rdx, [rdx + 2]
cmp ecx, 0x60
jl 0x140018150
mov r9d, 2
mov r10d, dword [rbp - 0x1c]
cmp r10d, r9d
jbe 0x1400181ce
mov r15d, dword [rbp - 0x80]
mov r12, qword [rbp - 0x78]
nop dword [rax + rax]
mov ecx, r11d
mov eax, r9d
movzx r8d, word [rax + r12]
nop dword [rax + rax]
mov edx, ecx
movzx eax, word [rbp + rdx*2 + 0x206e0]
cmp ax, r8w
je 0x1400181bd
test ax, ax
je 0x1400181b1
inc ecx
cmp ecx, 0x10000
jb 0x140018190
jmp 0x1400181bd
mov word [rbp + rdx*2 + 0x206e0], r8w
inc r15d
add r9d, 2
cmp r9d, r10d
jb 0x140018180
mov dword [rbp - 0x80], r15d
mov r12, qword [rbp + 0x58]
mov ebx, r11d
mov edx, 0xff
mov r8d, 0x20000
lea rcx, [rbp + 0x6e0]
call fcn.1402d1c50
mov esi, dword [rbp - 0x80]
mov edi, esi
test esi, esi
je 0x140018292
lea r10, [rbp + 0x206e0]
mov r11d, esi
mov r9d, 0xffff
xor r12d, r12d
nop dword [rax + rax]
mov edx, r12d
lea rax, [rbp + 0x6e0]
nop word [rax + rax]
movzx ecx, word [rax]
movzx r8d, word [r10]
cmp cx, r9w
je 0x140018277
cmp r8w, cx
jb 0x14001823f
inc edx
add rax, 2
cmp edx, ebx
jbe 0x140018220
jmp 0x140018284
mov r9d, ebx
sub r9d, edx
inc r9d
nop dword [rax + rax]
mov ecx, edx
movzx eax, word [rbp + rcx*2 + 0x6e0]
mov word [rbp + rcx*2 + 0x6e0], r8w
movzx r8d, ax
inc edx
sub r9, 1
jne 0x140018250
mov r9d, 0xffff
jmp 0x140018282
mov eax, edx
mov word [rbp + rax*2 + 0x6e0], r8w
inc ebx
add r10, 2
sub r11, 1
jne 0x140018210
mov r12, qword [rbp + 0x58]
xor edx, edx
mov r8d, 0x340000
mov rcx, qword [rbp - 0x48]
call fcn.1402d1c50
test esi, esi
je 0x140018306
xor eax, eax
mov ebx, eax
mov r8, rsi
add r8, r8
lea rdx, [rbp + 0x6e0]
lea rcx, [rbp + 0x206e0]
call fcn.1402d15b0
mov r15d, ebx
mov r14, qword [rbp - 0x48]
nop dword [rax + rax]
movzx edx, word [rbp + rbx + 0x6e0]
imul rcx, rdx, 0x34
cmp dword [rcx + r14], 0
jne 0x1400182f0
cmp edx, 0x20
jb 0x1400182f0
mov word [rcx + r14], dx
inc r15d
add rbx, 2
sub rdi, 1
jne 0x1400182d0
mov dword [rsp + 0x74], r15d
mov r14, qword [rbp + 0xc0]
mov esi, 4
mov dword [rbp - 0x80], esi
mov ebx, esi
mov dword [rbp - 0x40], ebx
xor r8d, r8d
mov dword [rbp + 0x84], r8d
mov ecx, dword [rsp + 0x74]
test ecx, ecx
je 0x140018361
nop word [rax + rax]
add esi, esi
add ebx, ebx
mov eax, 0x88888889
mul esi
mov r13d, edx
shr r13d, 5
mov dword [rbp + 0x84], r13d
mov eax, 0x88888889
mul ebx
shr edx, 5
imul edx, r13d
cmp edx, ecx
jb 0x140018330
mov dword [rbp - 0x80], esi
mov dword [rbp - 0x40], ebx
mov dword [rbp + 0x290], reloc.WS2_32.dll_ntohl
mov dword [rbp + 0x294], 0x7865545f
mov dword [rbp + 0x298], 0x65727574
mov dword [rbp + 0x29c], 0x67696548
mov dword [rbp + 0x2a0], 0x7468
mov ecx, r8d
mov edx, dword [rbp + 0x2a0]
mov r8, qword [rbp + 0x298]
mov r9, qword [rbp + 0x290]
mov rdi, qword [rbp + 0xa8]
cmp qword [rdi], r9
jne 0x1400183c1
cmp qword [rdi + 8], r8
jne 0x1400183c1
cmp dword [rdi + 0x10], edx
je 0x1400183ef
mov r11, qword [rbp - 0x50]
lea r10d, [r11 - 0x14]
nop dword [rax]
cmp ecx, r10d
jae 0x1400183f3
inc ecx
movsxd rax, ecx
cmp qword [rax + rdi], r9
jne 0x1400183d0
cmp qword [rax + rdi + 8], r8
jne 0x1400183d0
cmp dword [rax + rdi + 0x10], edx
jne 0x1400183d0
jmp 0x1400183f3
mov r11, qword [rbp - 0x50]
movsxd rcx, ecx
mov eax, esi
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
movss dword [rcx + rdi + 0x14], xmm0
mov eax, ebx
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
movss dword [rcx + rdi + 0x2c], xmm1
mov dword [rbp + 0x2b8], 0x10
mov dword [rbp + 0x2bc], 0x646e555f
mov dword [rbp + 0x2c0], 0x616c7265
mov dword [rbp + 0x2c4], 0x66664f79
mov dword [rbp + 0x2c8], 0x58746573
xor eax, eax
mov ecx, eax
mov edx, dword [rbp + 0x2c8]
mov r8, qword [rbp + 0x2c0]
mov r9, qword [rbp + 0x2b8]
cmp qword [rdi], r9
jne 0x140018470
cmp qword [rdi + 8], r8
jne 0x140018470
cmp dword [rdi + 0x10], edx
je 0x140018491
lea r10d, [r11 - 0x14]
cmp ecx, r10d
jae 0x140018491
inc ecx
movsxd rax, ecx
cmp qword [rax + rdi], r9
jne 0x140018474
cmp qword [rax + rdi + 8], r8
jne 0x140018474
cmp dword [rax + rdi + 0x10], edx
jne 0x140018474
movsxd rax, ecx
mov dword [rax + rdi + 0x14], 0x3e99999a
mov dword [rax + rdi + 0x2c], 0x3dcccccd
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x288], rax
mov rsi, 0xffffffffffffffff
mov rdx, rsi
nop word [rax + rax]
inc rdx
cmp word [r12 + rdx*2], 0
jne 0x1400184d0
lea rcx, [rbp + 0x288]
call fcn.14001e440
mov rcx, qword [rbp + 0x288]
mov eax, dword [rcx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdx, r12
call fcn.1402d15b0
lea rdx, [rbp + 0x288]
lea rcx, [rsp + 0x78]
call fcn.14001da90
mov rbx, rax
mov rcx, qword [rax]
mov edx, dword [rcx - 8]
lea rcx, [rbp - 0x28]
call fcn.14001e440
mov rdx, qword [rbx]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rbx, qword [rbp - 0x28]
mov rcx, rbx
call fcn.1402d15b0
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x140018550
lea rcx, [rax - 8]
call fcn.1402d83b4
xor eax, eax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rbp - 0x30], rax
cmp rax, rsi
jne 0x140018595
xor eax, eax
mov ebx, eax
mov qword [rbp - 0x30], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rax, qword [rbp - 0x50]
test eax, eax
je 0x1400185b7
xor ecx, ecx
mov qword [rsp + 0x20], rcx
lea r9, [rbp - 0x3c]
mov r8d, eax
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test rbx, rbx
je 0x1400185cb
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov qword [rbp - 0x30], rax
mov rcx, rdi
call fcn.1402d83b4
mov eax, dword [rbp - 0x40]
imul eax, dword [rbp - 0x80]
shl eax, 2
mov ebx, eax
mov ecx, eax
call fcn.1402d83ac
mov qword [rsp + 0x78], rax
mov r8d, ebx
xor edx, edx
mov rcx, rax
call fcn.1402d1c50
mov rax, qword [rbp + 0x28]
mov r8, qword [rax]
movzx edx, word [r8]
sub edx, 0x31
jne 0x140018614
movzx edx, word [r8 + 2]
xor eax, eax
movzx ecx, ax
sub edx, ecx
xor ecx, ecx
mov ebx, ecx
test edx, edx
sete bl
mov rax, qword [rbp + 0x30]
mov rax, qword [rax]
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x60], ecx
mov dword [rsp + 0x58], 2
mov dword [rsp + 0x50], ecx
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x40], 0x86
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x190
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rdx + 0x32]
call qword [sym.imp.GDI32.dll_CreateFontW]
mov rdi, rax
mov qword [rbp + 0xa8], rax
lea rax, [0x1404715fc]
mov qword [rsp + 0x68], rax
xor eax, eax
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x58], 4
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], 0x86
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x190
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rax + 0x32]
call qword [sym.imp.GDI32.dll_CreateFontW]
mov qword [rbp + 0xb0], rax
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov qword [rbp + 0x10], rax
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowDC]
mov rbx, rax
mov qword [rbp + 0x100], rax
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.GDI32.dll_SelectObject]
lea rdx, [rbp + 0x248]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_GetTextMetricsW]
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x288], rax
nop dword [rax + rax]
inc rsi
cmp word [r14 + rsi*2], 0
jne 0x140018720
mov rdx, rsi
lea rcx, [rbp + 0x288]
call fcn.14001e440
mov rcx, qword [rbp + 0x288]
mov eax, dword [rcx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdx, r14
call fcn.1402d15b0
lea rdx, [rbp + 0x288]
lea rcx, [rbp + 0x38]
call fcn.14001da90
mov rbx, rax
mov rcx, qword [rax]
mov edx, dword [rcx - 8]
lea rcx, [rbp + 0x50]
call fcn.14001e440
mov rdx, qword [rbx]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rbx, qword [rbp + 0x50]
mov rcx, rbx
call fcn.1402d15b0
mov rax, qword [rbp + 0x38]
test rax, rax
je 0x1400187a1
lea rcx, [rax - 8]
call fcn.1402d83b4
xor esi, esi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
mov qword [rbp + 0x48], rax
cmp rax, 0xffffffffffffffff
jne 0x1400187e5
mov edi, esi
mov qword [rbp + 0x48], rsi
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [rsp + 0x74]
mov dword [rbp + 8], eax
mov eax, dword [rbp - 0x60]
mov r10, qword [rbp - 0x70]
mov r9d, dword [rax + r10]
mov dword [rax + r10], 0x32
lea rcx, [r10 + 4]
add rcx, rax
mov edx, 0x11
movss xmm3, dword [0x1404721f4]
movss xmm2, dword [0x1404721f0]
movss xmm4, dword [0x140472210]
movss xmm1, dword [rcx]
ucomiss xmm1, xmm3
jp 0x14001882e
je 0x140018849
ucomiss xmm1, xmm2
jp 0x140018835
je 0x140018849
mulss xmm1, xmm4
xorps xmm0, xmm0
cvtsi2ss xmm0, r9
divss xmm1, xmm0
movss dword [rcx], xmm1
add rcx, 4
sub rdx, 1
jne 0x140018823
mov r8d, dword [rbp - 0x20]
test r8d, r8d
je 0x140018871
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x3c]
mov rdx, r10
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
xor r12d, r12d
mov qword [rsp + 0x20], r12
lea r9, [rbp - 0x3c]
lea r8d, [r12 + 4]
lea rdx, [rbp + 8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov ebx, 1
mov edx, ebx
lea ecx, [rbx + 9]
call fcn.1402deebc
lea rsi, [rax + 8]
mov qword [rbp + 0x138], rsi
xorps xmm0, xmm0
movups xmmword [rbp + 0x220], xmm0
mov dword [rbp - 0x60], r12d
mov edx, ebx
mov ecx, 0x9c4
call fcn.1402deebc
mov qword [rbp + 0x38], rax
mov ecx, dword [rbp + 8]
lea ecx, [rcx*4]
mov edx, ebx
call fcn.1402deebc
mov ebx, r12d
mov dword [rbp - 0x5c], ebx
mov r13d, dword [rbp + 0x224]
mov rsi, qword [rbp + 0x38]
nop dword [rax]
imul r15d, ebx, 0x34
add r15, qword [rbp - 0x48]
mov qword [rbp + 0x108], r15
cmp dword [r15], 0
je 0x140018e47
mov rdx, qword [rbp + 0xa8]
mov r14, qword [rbp + 0x100]
mov rcx, r14
call qword [sym.imp.GDI32.dll_SelectObject]
lea rdx, [rbp + 0x248]
mov rcx, r14
call qword [sym.imp.GDI32.dll_GetTextMetricsW]
mov qword [rbp + 0x290], 0x10000
mov dword [rbp + 0x298], 0
mov dword [rbp + 0x29c], 0x10000
movzx r12d, bx
mov dword [rbp - 0x20], r12d
lea rax, [rbp + 0x290]
mov qword [rsp + 0x30], rax
xor eax, eax
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], eax
lea r9, [rbp + 0x230]
lea r8d, [rax + 6]
mov edx, r12d
mov rcx, r14
call qword [sym.imp.GDI32.dll_GetGlyphOutlineW]
mov edi, eax
test eax, eax
jg 0x1400189db
mov rdx, qword [rbp + 0xb0]
mov rcx, r14
call qword [sym.imp.GDI32.dll_SelectObject]
lea rdx, [rbp + 0x248]
mov rcx, r14
call qword [sym.imp.GDI32.dll_GetTextMetricsW]
lea rax, [rbp + 0x290]
mov qword [rsp + 0x30], rax
xor eax, eax
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], eax
lea r9, [rbp + 0x230]
lea r8d, [rax + 6]
mov edx, r12d
mov rcx, r14
call qword [sym.imp.GDI32.dll_GetGlyphOutlineW]
mov edi, eax
xor edx, edx
mov eax, dword [rbp - 0x60]
div dword [rbp + 0x84]
imul r14d, edx, 0x3c
add r14d, 0xa
mov dword [rbp + 0x114], r14d
imul r12d, eax, 0x3c
add r12d, 0xa
mov dword [rbp + 0x118], r12d
test edi, edi
jle 0x140018d62
cmp bx, 0x20
jb 0x140018d62
movsxd rbx, edi
lea rcx, [rbx + 0x190]
call fcn.140048ef0
mov r13, rax
mov qword [rbp + 0x38], rax
lea r8, [rbx + 0x190]
xor edx, edx
mov rcx, rax
call fcn.1402d1c50
lea rax, [rbp + 0x290]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], edi
lea r9, [rbp + 0x230]
mov r8d, 6
mov edx, dword [rbp - 0x20]
mov rcx, qword [rbp + 0x100]
call qword [sym.imp.GDI32.dll_GetGlyphOutlineW]
mov r8d, dword [rbp + 0x230]
mov dword [rbp + 0xf0], r8d
lea eax, [r8 + 3]
and eax, 0xfffffffc
mov dword [rbp + 0x110], eax
mov rbx, qword [rbp + 0x238]
mov qword [rbp + 0x224], rbx
mov ecx, dword [rbp + 0x24c]
sub ecx, dword [rbp + 0x23c]
test ebx, ebx
mov edx, 0
cmovs ebx, edx
lea eax, [rbx + r8]
lea r9d, [rdx + 0x32]
cmp eax, r9d
jle 0x140018ac1
mov ebx, r9d
sub ebx, r8d
test ecx, ecx
cmovs ecx, edx
mov dword [rsp + 0x74], ecx
mov edx, dword [rbp + 0x234]
mov dword [rbp + 0x11c], edx
lea eax, [rcx + rdx]
cmp eax, 0x32
jle 0x140018ae7
mov ecx, r9d
sub ecx, edx
mov dword [rsp + 0x74], ecx
lea eax, [rbx + r14]
mov dword [rbp - 0x1c], eax
lea eax, [rcx + rdx]
add eax, r12d
mov dword [rbp + 0x80], eax
mov edi, r8d
cmp r8d, 0x32
cmovg edi, r9d
mov eax, edx
cmp edx, 0x32
cmovg eax, r9d
mov dword [rbp + 0xf4], eax
xor edx, edx
mov r8d, 0x9c4
mov rcx, rsi
call fcn.1402d1c50
xor edx, edx
mov r13d, edx
movsxd r11, edi
mov r12d, dword [rbp + 0xf4]
mov rdi, qword [rbp + 0x38]
test r12d, r12d
jle 0x140018bcb
mov r15d, dword [rsp + 0x74]
imul ecx, r15d, 0x32
mov dword [rsp + 0x74], ecx
mov r14d, dword [rbp + 0x110]
lea eax, [r15 + r13]
test eax, eax
js 0x140018bb5
cmp eax, dword [rbp - 0x40]
jae 0x140018bb5
movsxd rax, ebx
movsxd r10, ecx
add rax, rsi
add r10, rax
test r11, r11
jle 0x140018bb3
mov r9d, r13d
imul r9d, r14d
mov r8d, ebx
nop dword [rax]
cmp r8d, 0x31
ja 0x140018ba4
mov eax, r9d
add rax, rdx
movzx ecx, byte [rax + rdi]
test cl, cl
je 0x140018ba0
cmp cl, 0x40
jne 0x140018b9d
mov cl, 0xff
jmp 0x140018ba0
shl cl, 2
mov byte [rdx + r10], cl
inc r8d
inc rdx
cmp rdx, r11
jl 0x140018b80
mov ecx, dword [rsp + 0x74]
xor edx, edx
inc r13d
add ecx, 0x32
mov dword [rsp + 0x74], ecx
cmp r13d, r12d
jl 0x140018b54
mov r14d, dword [rbp + 0x114]
mov rcx, rdi
call fcn.1402d83b4
xor eax, eax
mov r10d, eax
movsxd rbx, r14d
mov r9d, eax
mov edi, dword [rbp + 0x118]
mov r15d, dword [rbp - 0x80]
mov r14d, 0xff
nop
lea ecx, [r10 + rdi]
imul ecx, r15d
movsxd r8, r9d
add r8, 2
add r8, rsi
lea ecx, [rcx*4]
add rcx, qword [rsp + 0x78]
lea rdx, [rbx*4 + 2]
add rdx, rcx
mov r11d, 5
nop
movzx ecx, byte [r8 - 2]
mov eax, ecx
test cl, cl
cmovne eax, r14d
mov byte [rdx - 2], al
mov byte [rdx - 1], al
mov byte [rdx], al
mov byte [rdx + 1], cl
movzx ecx, byte [r8 - 1]
mov eax, ecx
test cl, cl
cmovne eax, r14d
mov byte [rdx + 2], al
mov byte [rdx + 3], al
mov byte [rdx + 4], al
mov byte [rdx + 5], cl
movzx ecx, byte [r8]
mov eax, ecx
test cl, cl
cmovne eax, r14d
mov byte [rdx + 6], al
mov byte [rdx + 7], al
mov byte [rdx + 8], al
mov byte [rdx + 9], cl
movzx ecx, byte [r8 + 1]
mov eax, ecx
test cl, cl
cmovne eax, r14d
mov byte [rdx + 0xa], al
mov byte [rdx + 0xb], al
mov byte [rdx + 0xc], al
mov byte [rdx + 0xd], cl
movzx ecx, byte [r8 + 2]
mov eax, ecx
test cl, cl
cmovne eax, r14d
mov byte [rdx + 0xe], al
mov byte [rdx + 0xf], al
mov byte [rdx + 0x10], al
mov byte [rdx + 0x11], cl
movzx ecx, byte [r8 + 3]
mov eax, ecx
test cl, cl
cmovne eax, r14d
mov byte [rdx + 0x12], al
mov byte [rdx + 0x13], al
mov byte [rdx + 0x14], al
mov byte [rdx + 0x15], cl
movzx ecx, byte [r8 + 4]
mov eax, ecx
test cl, cl
cmovne eax, r14d
mov byte [rdx + 0x16], al
mov byte [rdx + 0x17], al
mov byte [rdx + 0x18], al
mov byte [rdx + 0x19], cl
movzx ecx, byte [r8 + 5]
mov eax, ecx
test cl, cl
cmovne eax, r14d
mov byte [rdx + 0x1a], al
mov byte [rdx + 0x1b], al
mov byte [rdx + 0x1c], al
mov byte [rdx + 0x1d], cl
movzx ecx, byte [r8 + 6]
mov eax, ecx
test cl, cl
cmovne eax, r14d
mov byte [rdx + 0x1e], al
mov byte [rdx + 0x1f], al
mov byte [rdx + 0x20], al
mov byte [rdx + 0x21], cl
movzx ecx, byte [r8 + 7]
mov eax, ecx
test cl, cl
cmovne eax, r14d
mov byte [rdx + 0x22], al
mov byte [rdx + 0x23], al
mov byte [rdx + 0x24], al
mov byte [rdx + 0x25], cl
lea rdx, [rdx + 0x28]
lea r8, [r8 + 0xa]
sub r11, 1
jne 0x140018c20
inc r10d
add r9d, 0x32
cmp r9d, 0x9c4
jl 0x140018bf0
mov r13d, dword [rbp + 0x224]
mov r15, qword [rbp + 0x108]
mov edx, dword [rbp + 0x11c]
mov r8d, dword [rbp + 0xf0]
mov r12d, dword [rbp + 0x80]
jmp 0x140018d75
mov dword [rbp - 0x1c], r14d
add r12d, 0x32
mov edx, 0x32
mov r8d, ntohs
mov eax, dword [rbp - 0x20]
mov dword [r15], eax
mov eax, r8d
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
movss dword [r15 + 4], xmm0
mov eax, edx
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
movss dword [r15 + 8], xmm1
movd xmm0, r13d
cvtdq2ps xmm0, xmm0
movss dword [r15 + 0xc], xmm0
movd xmm1, dword [rbp + 0x228]
cvtdq2ps xmm1, xmm1
movss dword [r15 + 0x10], xmm1
lea ecx, [r8 + 3]
add ecx, r13d
xorps xmm0, xmm0
cvtsi2ss xmm0, rcx
movss dword [r15 + 0x14], xmm0
mov eax, dword [rbp - 0x1c]
mov dword [r15 + 0x18], eax
mov eax, dword [rbp - 0x40]
sub eax, r12d
mov dword [r15 + 0x1c], eax
mov dword [r15 + 0x20], r8d
mov dword [r15 + 0x24], edx
mov qword [r15 + 0x28], 0x3f800000
xor r12d, r12d
mov dword [r15 + 0x30], r12d
mov r14d, dword [rbp - 0x60]
mov dword [rbp - 0x3c], r14d
mov qword [rsp + 0x20], r12
lea r9, [rbp - 0x50]
lea r8d, [r12 + 4]
lea rdx, [rbp - 0x3c]
mov rdi, qword [rbp + 0x48]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x288]
lea r8d, [r12 + 0x30]
lea rdx, [r15 + 4]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
inc r14d
mov dword [rbp - 0x60], r14d
mov ebx, dword [rbp - 0x5c]
inc ebx
mov dword [rbp - 0x5c], ebx
cmp ebx, 0x10000
jb 0x1400188f0
mov rcx, qword [rbp + 0xa8]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, qword [rbp + 0xb0]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov dword [rbp + 0x2a8], 1
mov dword [rbp + 0x2ac], 0x20
mov dword [rbp + 0x2b0], 4
mov dword [rbp + 0x2b4], 0x3f800000
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x288]
mov r8d, 4
lea rdx, [rbp + 8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov edi, r12d
mov ebx, r12d
mov rsi, qword [rbp + 0x138]
mov r14, qword [rbp + 0xc0]
mov r15, qword [rbp + 0x90]
mov r12, qword [rbp + 0x58]
mov r13, qword [rbp + 0xf8]
mov rcx, qword [rbp - 0x48]
imul eax, ebx, 0x34
mov eax, dword [rax + rcx]
test eax, eax
je 0x140018f22
mov dword [rbp + 0x2ac], eax
mov dword [rbp + 0x2b0], edi
xor eax, eax
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x288]
lea r8d, [rax + 0x10]
lea rdx, [rbp + 0x2a8]
mov rcx, qword [rbp + 0x48]
call qword [sym.imp.KERNEL32.dll_WriteFile]
inc edi
mov rcx, qword [rbp - 0x48]
inc ebx
cmp ebx, 0x10000
jb 0x140018ee3
mov edx, dword [rbp]
add rdx, qword [rbp - 0x70]
xor edi, edi
mov qword [rsp + 0x20], rdi
lea r9, [rbp + 0x288]
lea r8d, [rdi + 0x1c]
mov rbx, qword [rbp + 0x48]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
xorps xmm0, xmm0
movups xmmword [rbp + 0x2d0], xmm0
mov qword [rsp + 0x20], rdi
lea r9, [rbp - 0x50]
lea r8d, [rdi + 4]
lea rdx, [0x140471604]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov qword [rsp + 0x20], rdi
lea r9, [rbp]
lea r8d, [rdi + 0x10]
lea rdx, [rbp + 0x2d0]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov qword [rsp + 0x20], rdi
lea r9, [rbp - 0x3c]
lea r8d, [rdi + 4]
lea rdx, [0x140471604]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov qword [rsp + 0x20], rdi
lea r9, [rbp + 0x80]
lea r8d, [rdi + 0x10]
lea rdx, [rbp + 0x2d0]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rdx, qword [rbp + 0x100]
mov rcx, qword [rbp + 0x10]
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rcx, qword [rbp - 0x48]
call fcn.1402d83b4
mov ecx, dword [rsp + 0x70]
mov r11, qword [rbp - 0x70]
lea r10, [r11 + rcx]
mov eax, dword [r10]
test al, 3
je 0x140019006
and eax, 0xfffffffc
add eax, 4
lea edx, [rcx + 4]
add edx, eax
mov r9d, dword [rbp - 0x80]
mov dword [rdx + r11 + 0x5c], r9d
mov edi, dword [rbp - 0x40]
mov dword [rdx + r11 + 0x60], edi
add edx, 0x74
imul r8d, dword [rdx + r11], 0x2c
add r8d, 0xc
add r8d, edx
mov ecx, dword [r8 + r11]
test cl, 3
je 0x14001903a
and ecx, 0xfffffffc
add ecx, 4
lea edx, [rcx + 4]
add edx, r8d
mov ecx, dword [rdx + r11]
test cl, 3
je 0x14001904f
and ecx, 0xfffffffc
add ecx, 4
lea eax, [rcx + 4]
add eax, edx
mov dword [rax + r11 + 4], 0x32
mov dword [rax + r11 + 0x10], r9d
mov dword [rax + r11 + 0x14], edi
mov rax, qword [rbp + 0xb8]
sub eax, dword [rsp + 0x70]
je 0x140019091
xor ecx, ecx
mov qword [rsp + 0x20], rcx
lea r9, [rbp + 0x288]
mov r8d, eax
mov rdx, r10
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test rbx, rbx
je 0x1400190a5
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov qword [rbp + 0x48], rax
mov rcx, qword [rbp - 0x70]
call fcn.1402d83b4
lea rax, vtable.SFile.0
mov qword [rbp + 0x190], rax
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
mov qword [rbp + 0x108], rax
add rax, 8
mov qword [rbp + 0x1a0], rax
xor eax, eax
mov qword [rbp + 0x198], rax
mov rax, qword [rbp + 0x60]
mov qword [rsp + 0x20], rax
mov r9d, edi
mov r8d, dword [rbp - 0x80]
mov rdx, qword [rsp + 0x78]
call fcn.140020400
mov rcx, qword [rsp + 0x78]
call fcn.1402d83b4
mov rcx, qword [rbp - 0x78]
call fcn.1402d83b4
mov rax, qword [rbp - 0x10]
mov rdx, qword [rax]
lea rcx, [rbp - 0x70]
call fcn.140021d70
nop
mov rax, qword [rbp - 0x70]
mov r8d, dword [rax - 8]
add r8d, 0xfffffffb
lea rdx, [rbp + 0x10]
lea rcx, [rbp - 0x70]
call fcn.14001e7d0
mov rdi, rax
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rsp + 0x78], rax
mov rcx, qword [rdi]
mov edx, dword [rcx - 8]
add edx, 5
lea rcx, [rsp + 0x78]
call fcn.14001e440
mov rdx, qword [rdi]
mov ecx, dword [rdx - 8]
add ecx, ecx
movsxd r8, ecx
mov rbx, qword [rsp + 0x78]
mov rcx, rbx
call fcn.1402d15b0
mov rax, qword [rdi]
movsxd rcx, dword [rax - 8]
movsd xmm0, qword [str..resS]
movsd qword [rbx + rcx*2], xmm0
movzx eax, word [0x1404707e8]
mov word [rbx + rcx*2 + 8], ax
mov edx, dword [rbx - 8]
lea rcx, [rbp - 0x70]
call fcn.14001e440
mov eax, dword [rbx - 8]
add eax, eax
movsxd r8, eax
mov rdx, rbx
mov rdi, qword [rbp - 0x70]
mov rcx, rdi
call fcn.1402d15b0
test rbx, rbx
je 0x1400191d0
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov rax, qword [rbp + 0x10]
test rax, rax
je 0x1400191e2
lea rcx, [rax - 8]
call fcn.1402d83b4
xor eax, eax
mov qword [rbp - 0x48], rax
lea edx, [rax + 1]
lea ecx, [rax + 0xa]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x48], rax
mov edx, dword [rdi - 8]
lea rcx, [rbp - 0x48]
call fcn.14001e440
mov eax, dword [rdi - 8]
add eax, eax
movsxd r8, eax
mov rdx, rdi
mov rcx, qword [rbp - 0x48]
call fcn.1402d15b0
xor ebx, ebx
mov qword [rbp + 0x288], rbx
lea edx, [rbx + 1]
lea ecx, [rbx + 0xa]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x288], rax
lea edx, [rbx + 0xa]
lea rcx, [rbp + 0x288]
call fcn.14001e440
mov rcx, qword [rbp + 0x288]
mov eax, dword [rcx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
lea rdx, str.2022.3.9f1
call fcn.1402d15b0
mov qword [rbp - 0x50], rbx
lea edx, [rbx + 1]
lea ecx, [rbx + 0xa]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x50], rax
mov rbx, qword [rbp + 0x60]
mov edx, dword [rbx - 8]
lea rcx, [rbp - 0x50]
call fcn.14001e440
mov eax, dword [rbx - 8]
add eax, eax
movsxd r8, eax
mov rdx, rbx
mov rcx, qword [rbp - 0x50]
call fcn.1402d15b0
xor eax, eax
mov qword [rbp], rax
lea edx, [rax + 1]
lea ecx, [rax + 0xa]
call fcn.1402deebc
add rax, 8
mov qword [rbp], rax
mov edx, dword [r15 - 8]
lea rcx, [rbp]
call fcn.14001e440
mov eax, dword [r15 - 8]
add eax, eax
movsxd r8, eax
mov rdx, r15
mov rcx, qword [rbp]
call fcn.1402d15b0
lea r9, [rbp - 0x48]
lea r8, [rbp + 0x288]
lea rdx, [rbp - 0x50]
lea rcx, [rbp]
call fcn.140013a50
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
nop
lea rcx, [rdi - 8]
call fcn.1402d83b4
nop
cmp qword [rbp + 0x1a0], 0
je 0x140019322
mov rcx, qword [rbp + 0x108]
call fcn.1402d83b4
nop
test rsi, rsi
je 0x140019331
lea rcx, [rsi - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0xe0]
test rcx, rcx
je 0x140019343
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbp + 0xe8]
test rax, rax
je 0x140019359
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x48]
test rax, rax
je 0x14001936b
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbp + 0x50]
test rax, rax
je 0x14001937e
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0x150]
test rcx, rcx
je 0x140019394
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x1400193a7
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
lea rcx, [rbx - 8]
call fcn.1402d83b4
nop
test r14, r14
je 0x1400193c0
lea rcx, [r14 - 8]
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x18]
test rax, rax
je 0x1400193d3
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0xd0]
call fcn.1402d83b4
nop
test r12, r12
je 0x1400193f0
lea rcx, [r12 - 8]
call fcn.1402d83b4
nop
lea rcx, [r15 - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp - 0x68]
call fcn.1402d83b4
nop
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x14001941d
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbp - 0x28]
test rax, rax
je 0x140019430
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0x68]
call fcn.1402d83b4
nop
mov rcx, qword [rbp - 0x18]
call fcn.1402d83b4
nop
test r13, r13
je 0x140019453
lea rcx, [r13 - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0xa0]
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x70]
test rax, rax
je 0x140019473
lea rcx, [rax - 8]
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x30]
mov rcx, qword [rax]
test rcx, rcx
je 0x140019489
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x28]
mov rcx, qword [rax]
test rcx, rcx
je 0x14001949f
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400194b5
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rax, qword [rbp - 0x10]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400194cb
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0x78]
mov rcx, qword [rcx]
test rcx, rcx
je 0x1400194e0
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
mov eax, 1
mov rcx, qword [rbp + 0x406e0]
xor rcx, rsp
call fcn.140048b40
mov rbx, qword [rsp + 0x40838]
add rsp, 0x407f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret