Function at 0x1801acab0
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rcx
push r12
sub rsp, 0x370
test byte [rcx + 0xd218], 4
mov r12, rcx
je 0x1801acad9
mov eax, 1
add rsp, 0x370
pop r12
ret
mov edx, dword [rcx + 0xc]
mov qword [rsp + 0x368], rbx
mov qword [rsp + 0x360], rbp
mov qword [rsp + 0x358], rsi
mov qword [rsp + 0x348], r13
xor sil, sil
mov qword [rsp + 0x340], r14
mov qword [rsp + 0x338], r15
xor r15d, r15d
mov byte [rsp + 0x388], sil
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
mov eax, r15d
test edx, edx
je 0x1801acb37
mov rcx, qword [rcx + 0xce58]
mov r8, qword [rcx]
jmp 0x1801acb3a
mov r8, r15
test edx, edx
je 0x1801acbaf
nop
mov dword [r8 + 0x28], r15d
cmp r8, qword [r12 + 0xd038]
je 0x1801acb8a
mov rcx, qword [r8 + 0x10]
test cl, 2
je 0x1801acb8a
test rcx, 0x1400
jne 0x1801acb8a
mov rdx, qword [r8 + 0x30]
test rdx, rdx
je 0x1801acb8a
nop dword [rax]
mov ecx, dword [rdx + 0xc8]
inc ecx
cmp dword [r8 + 0x28], ecx
jae 0x1801acb82
mov dword [r8 + 0x28], ecx
mov rdx, qword [rdx]
test rdx, rdx
jne 0x1801acb70
mov ecx, dword [r12 + 0xc]
inc eax
cmp eax, ecx
jb 0x1801acb9c
mov r8, r15
mov eax, ecx
jmp 0x1801acba8
mov rcx, qword [r12 + 0xce58]
mov r8, qword [rcx + rax*8]
cmp eax, dword [r12 + 0xc]
jb 0x1801acb40
mov r8d, dword [r12 + 0xc]
mov r9d, r15d
mov eax, r15d
test r8d, r8d
je 0x1801acbcc
mov rcx, qword [r12 + 0xce58]
mov rdx, qword [rcx]
jmp 0x1801acbcf
mov rdx, r15
test r8d, r8d
je 0x1801acbf8
add r9d, dword [rdx + 0x28]
inc eax
cmp eax, r8d
jb 0x1801acbe7
mov rdx, r15
mov eax, r8d
jmp 0x1801acbf3
mov rcx, qword [r12 + 0xce58]
mov rdx, qword [rcx + rax*8]
cmp eax, r8d
jb 0x1801acbd4
mov eax, 4
mov qword [rsp + 0x350], rdi
mov rbp, r15
mov qword [rsp + 0xf8], r15
mov r14d, r15d
mov dword [rsp + 0xb0], r15d
lea r13d, [rax - 3]
cmp r9d, 0x3ffffffd
jbe 0x1801acc32
mov ebx, 0x80070216
jmp 0x1801accc3
mov rcx, qword [r12 + 0xd250]
lea r14d, [r9*4]
test r14d, r14d
cmove r14d, eax
test r14d, r14d
mov ebx, r14d
mov dword [rsp + 0xb0], r14d
cmove rbx, r13
test rcx, rcx
je 0x1801acc6d
mov rax, qword [rcx + 0x10]
sub rax, qword [rcx + 8]
cmp rbx, rax
jbe 0x1801acc8b
lea rcx, [r12 + 0xd250]
mov rdx, rbx
call fcn.1800c57b0
test eax, eax
je 0x1801acc8b
mov qword [rsp + 0xf8], r15
jmp 0x1801accb7
mov rcx, qword [r12 + 0xd250]
test rcx, rcx
je 0x1801accab
mov rax, qword [rcx + 8]
lea rbp, [rax + rcx + 0x18]
mov qword [rsp + 0xf8], rbp
jmp 0x1801accb3
mov qword [rsp + 0xf8], rbp
add qword [rcx + 8], rbx
mov ebx, 0x8007000e
test rbp, rbp
cmovne ebx, r15d
test ebx, ebx
js 0x1801afcdf
mov r8d, r14d
xor edx, edx
mov rcx, rbp
call fcn.18024adb8
mov edx, dword [r12 + 0xc]
mov edi, r15d
mov eax, r15d
test edx, edx
je 0x1801accf4
mov rcx, qword [r12 + 0xce58]
mov rbx, qword [rcx]
jmp 0x1801accf7
mov rbx, r15
test edx, edx
je 0x1801acdab
lea r14, [0x18002c3c0]
mov r8d, dword [rbx + 0x28]
test r8d, r8d
je 0x1801acd18
mov ecx, edi
lea rdx, [rbp + rcx*4]
jmp 0x1801acd1b
mov rdx, r15
mov qword [rbx + 0x68], rdx
add edi, r8d
cmp rbx, qword [r12 + 0xd038]
je 0x1801acd82
test rdx, rdx
je 0x1801acd82
mov r9, qword [rbx + 0x30]
test r9, r9
je 0x1801acd82
nop word [rax + rax]
movsxd rcx, dword [r9 + 0xa4]
mov r11d, dword [r9 + 0xcc]
mov r10, qword [rbx + 0x68]
mov edx, dword [r14 + rcx*4]
mov r8d, r15d
and dl, 0xf
cmp dl, 4
mov edx, dword [r9 + 0xc8]
sete r8b
inc r8d
add r11d, r8d
cmp dword [r10 + rdx*4], r11d
jae 0x1801acd7a
mov dword [r10 + rdx*4], r11d
mov r9, qword [r9]
test r9, r9
jne 0x1801acd40
mov ecx, dword [r12 + 0xc]
inc eax
cmp eax, ecx
jb 0x1801acd94
mov rbx, r15
mov eax, ecx
jmp 0x1801acda0
mov rcx, qword [r12 + 0xce58]
mov rbx, qword [rcx + rax*8]
cmp eax, dword [r12 + 0xc]
jb 0x1801acd06
mov rcx, qword [r12 + 0x18]
test rcx, rcx
je 0x1801ace2a
nop word [rax + rax]
mov edx, dword [rcx + 0x78]
mov eax, edx
and eax, 0xf0000000
cmp eax, 0x60000000
je 0x1801acddf
and edx, 0xfff00000
cmp edx, 0x50400000
jne 0x1801ace22
mov edx, r15d
cmp dword [rcx + 0x10], edx
jbe 0x1801ace22
mov r8, r15
nop word [rax + rax]
mov rax, qword [rcx + 0x18]
mov r9, qword [r8 + rax]
mov rax, qword [r9 + 0xa8]
mov r10, qword [rax + 0x68]
test r10, r10
je 0x1801ace17
mov eax, dword [r9 + 0xc8]
mov dword [r10 + rax*4], 4
inc edx
add r8, 8
cmp edx, dword [rcx + 0x10]
jb 0x1801acdf0
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1801acdc0
movzx eax, byte [r12 + 0xcef4]
test al, 4
jne 0x1801ad363
test al, 2
jne 0x1801ad363
mov rcx, r12
call fcn.1801b3770
mov rdi, qword [r12 + 0x18]
test rdi, rdi
je 0x1801ad363
nop dword [rax]
cmp dword [rdi + 0x78], 0x20000001
jne 0x1801ad350
mov rax, qword [rdi + 0x18]
mov r13, qword [rax]
mov rbp, qword [rax + 8]
mov rax, qword [r13 + 0xa8]
movzx ecx, byte [rax + 0x10]
shr cl, 1
test cl, 1
je 0x1801ad350
mov rax, qword [rbp + 0xa8]
movzx ecx, byte [rax + 0x10]
shr cl, 1
test cl, 1
je 0x1801ad350
mov r13, qword [r13 + 0x100]
mov rbp, qword [rbp + 0x100]
mov eax, dword [r13 + 0x78]
cmp eax, 0x20400001
je 0x1801aced4
and eax, 0xfff00000
cmp eax, 0x50000000
je 0x1801aced4
cmp eax, 0x90700000
jne 0x1801ad350
mov eax, dword [rbp + 0x78]
cmp eax, 0x20400001
je 0x1801acef5
and eax, 0xfff00000
cmp eax, 0x50000000
je 0x1801acef5
cmp eax, 0x90700000
jne 0x1801ad350
mov r15d, dword [r13 + 0x10]
mov eax, dword [rbp + 0x10]
shr eax, 1
shr r15d, 1
lea r14d, [rax + r15]
mov dword [rsp + 0x390], eax
mov al, byte [r12 + 0xcef4]
not al
and eax, 0x80
bts eax, 8
shr eax, 7
cmp r14d, eax
jb 0x1801ad350
cmp r14d, 4
ja 0x1801ad350
mov rax, qword [r13 + 0x28]
mov ecx, dword [rdi + 0x30]
mov rdx, qword [rax]
cmp ecx, dword [rdx + 0x28]
jne 0x1801ad350
cmp ecx, dword [rdx + 0x38]
jne 0x1801ad350
mov rax, qword [rbp + 0x28]
mov rdx, qword [rax]
cmp ecx, dword [rdx + 0x28]
jne 0x1801ad350
cmp ecx, dword [rdx + 0x38]
jne 0x1801ad350
mov eax, dword [r12 + 0x48c]
mov r8d, dword [rdi + 0x20]
mov rdx, qword [rdi + 0x28]
inc dword [r12 + 0x488]
and eax, 0xff000000
cmp eax, 0xb000000
jne 0x1801acfe9
mov eax, dword [r12 + 0xd228]
test al, al
jns 0x1801ad350
bt eax, 8
jb 0x1801acfaf
movzx eax, byte [r12 + 0x480]
jmp 0x1801acff1
xor ecx, ecx
test r8d, r8d
je 0x1801acfe9
nop word [rax + rax]
mov rax, qword [rdx]
cmp rax, 0xffffffffffffffff
je 0x1801ad350
mov eax, dword [rax + 0x98]
bt rax, 0xf
jb 0x1801ad350
inc ecx
add rdx, 8
cmp ecx, r8d
jb 0x1801acfc0
mov al, byte [r12 + 0x480]
test al, al
je 0x1801ad350
lea r8, [rsp + 0xf0]
mov rdx, rdi
mov rcx, r12
call fcn.18019f8f0
mov ebx, eax
test eax, eax
js 0x1801afcd9
mov rsi, qword [rsp + 0xf0]
mov eax, r14d
lea rbx, [r15*8]
and eax, 0xfffff
lea rcx, [rsp + 0x100]
mov r8, rbx
or eax, 0x50000000
mov dword [rsi + 0x78], eax
mov rdx, qword [r13 + 0x18]
mov dword [rsp + 0x398], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [rsp + 0x390]
mov rdx, qword [rbp + 0x18]
lea r15, [rax*8]
lea rcx, [rsp + rbx + 0x100]
mov r8, r15
call sub.msvcrt.dll_memcpy
mov r11, qword [r13 + 0x18]
lea rcx, [rsp + 0xc0]
lea rdx, [rbx + r11]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r11, qword [rbp + 0x18]
lea rcx, [rsp + rbx + 0xc0]
lea rdx, [r15 + r11]
mov r8, r15
call sub.msvcrt.dll_memcpy
mov rax, qword [rdi + 0x28]
mov rax, qword [rax]
mov qword [rsp + 0x198], rax
test r14d, r14d
je 0x1801ad24a
lea rax, [rsp + 0x68]
lea rdx, [rsp + 0x100]
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], 0xffffffff
lea rax, [rsp + 0x198]
mov qword [rsp + 0x30], rax
mov r8d, r14d
mov rcx, r12
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], 0
call fcn.1801e98b0
test al, al
je 0x1801ad14e
lea rax, [rsp + 0x68]
lea rdx, [rsp + 0xc0]
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], 0xffffffff
lea rax, [rsp + 0x198]
mov qword [rsp + 0x30], rax
mov r8d, r14d
mov rcx, r12
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], 0
call fcn.1801e98b0
test al, al
jne 0x1801ad24a
mov rdx, qword [r13 + 0x18]
lea rcx, [rsp + 0x130]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r11, qword [rbp + 0x18]
lea rcx, [rsp + rbx + 0x130]
lea rdx, [r15 + r11]
mov r8, r15
call sub.msvcrt.dll_memcpy
mov r11, qword [r13 + 0x18]
lea rcx, [rsp + 0x1c8]
lea rdx, [rbx + r11]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rdx, qword [rbp + 0x18]
lea rcx, [rsp + rbx + 0x1c8]
mov r8, r15
call sub.msvcrt.dll_memcpy
lea r11, [rsp + 0x68]
lea rax, [rsp + 0x198]
mov qword [rsp + 0x40], r11
mov dword [rsp + 0x38], 0xffffffff
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x130]
xor r15d, r15d
xor r9d, r9d
mov r8d, r14d
mov rcx, r12
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r15
call fcn.1801e98b0
test al, al
je 0x1801ad239
lea rax, [rsp + 0x68]
lea rdx, [rsp + 0x1c8]
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], 0xffffffff
lea rax, [rsp + 0x198]
mov qword [rsp + 0x30], rax
mov r8d, r14d
mov rcx, r12
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r15
call fcn.1801e98b0
test al, al
je 0x1801ad239
mov byte [rsp + 0x390], 1
jmp 0x1801ad255
mov dword [rsi + 0x78], r15d
mov dword [rsi + 0x10], r15d
mov dword [rsi + 0x20], r15d
jmp 0x1801ad350
mov byte [rsp + 0x390], 0
xor r15d, r15d
mov r8d, dword [rsp + 0x398]
inc dword [r12 + 0x484]
lea eax, [r14 + r14]
mov qword [rsp + 0x30], r15
lea rdx, [rsp + 0xa8]
mov r9, rdi
mov rcx, r12
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], eax
call fcn.18019f360
mov ebx, eax
test eax, eax
js 0x1801afcd1
mov rax, qword [rdi + 0x28]
mov r15, qword [rsp + 0xa8]
lea rbx, [r14*8]
mov rcx, qword [r15 + 0x28]
mov rax, qword [rax]
movzx r14d, byte [rsp + 0x390]
mov qword [rcx], rax
mov rcx, qword [r15 + 0x18]
lea rax, [rsp + 0x130]
lea rdx, [rsp + 0x100]
test r14b, r14b
mov r8, rbx
cmovne rdx, rax
call sub.msvcrt.dll_memcpy
lea rax, [rsp + 0x1c8]
lea rdx, [rsp + 0xc0]
test r14b, r14b
mov r8, rbx
cmovne rdx, rax
mov rax, qword [r15 + 0x18]
lea rcx, [rbx + rax]
call sub.msvcrt.dll_memcpy
mov r9d, 3
mov r8, r15
mov rdx, rdi
mov rcx, r12
call fcn.18019fa20
mov ebx, eax
test eax, eax
js 0x1801afcc9
mov rdi, r15
xor r15d, r15d
mov dword [r13 + 0x78], r15d
mov dword [r13 + 0x10], r15d
mov dword [r13 + 0x20], r15d
mov dword [rbp + 0x78], r15d
mov dword [rbp + 0x10], r15d
mov dword [rbp + 0x20], r15d
mov dword [rsi + 0x78], r15d
mov dword [rsi + 0x10], r15d
mov dword [rsi + 0x20], r15d
mov rdi, qword [rdi]
test rdi, rdi
jne 0x1801ace60
xor sil, sil
lea r13d, [rdi + 1]
mov rcx, r12
call fcn.1801b3770
mov r15, qword [r12 + 0x18]
mov qword [rsp + 0x50], r15
test r15, r15
je 0x1801afbb4
movabs r8, 0x18044211008
nop dword [rax + rax]
mov rax, qword [r15]
mov ecx, dword [r15 + 0x78]
mov qword [rsp + 0x88], rax
mov eax, ecx
shr eax, 0x1c
cmp eax, 1
je 0x1801ad409
cmp eax, 2
je 0x1801ad409
cmp eax, 3
je 0x1801ad409
cmp eax, 4
je 0x1801ad409
mov eax, ecx
and eax, 0xfff00000
cmp eax, 0x51a00000
je 0x1801ad409
cmp eax, 0x51b00000
je 0x1801ad409
cmp eax, 0x51c00000
je 0x1801ad409
cmp eax, 0x51f00000
je 0x1801ad409
cmp eax, 0x52000000
je 0x1801ad409
cmp eax, 0x51700000
je 0x1801ad409
cmp eax, 0x51800000
je 0x1801ad409
cmp eax, 0x51900000
je 0x1801ad409
cmp eax, 0x51d00000
je 0x1801ad409
cmp eax, 0x51e00000
jne 0x1801afb80
mov edx, ecx
and edx, 0xfff00000
cmp edx, 0x10000000
je 0x1801ad432
movzx eax, byte [r12 + 0xcef4]
test al, 4
jne 0x1801afb80
test al, 2
jne 0x1801afb80
call fcn.1802423d8
test al, al
jne 0x1801afb80
test byte [r12 + 0xcefd], 1
jne 0x1801ad47a
cmp edx, 0x10700000
je 0x1801afb80
cmp edx, 0x10900000
je 0x1801afb80
cmp edx, 0x10b00000
je 0x1801afb80
cmp edx, 0x10c00000
je 0x1801afb80
mov rax, qword [r15 + 0x28]
mov rcx, qword [rax]
mov rax, qword [rcx + 0xa8]
mov qword [rsp + 0x1c0], rax
mov rbp, qword [rax + 0x68]
mov qword [rsp + 0x60], rbp
cmp edx, 0x51a00000
je 0x1801ad4d4
cmp edx, 0x51b00000
je 0x1801ad4d4
cmp edx, 0x51c00000
je 0x1801ad4d4
cmp edx, 0x51f00000
je 0x1801ad4d4
cmp edx, 0x52000000
je 0x1801ad4d4
test qword [rax + 0x10], r8
jne 0x1801afb80
test rbp, rbp
je 0x1801afb80
mov eax, dword [r12 + 0x14]
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x390]
mov dword [rsp + 0x58], eax
mov rax, qword [r12 + 0x18]
mov rdx, r12
mov rcx, r15
mov byte [rsp + 0x20], 0
mov qword [rsp + 0x390], rax
call fcn.180198660
mov ebx, eax
test eax, eax
js 0x1801afcdf
mov eax, dword [r15 + 0x78]
mov ecx, eax
shr ecx, 0x1c
cmp ecx, 1
je 0x1801ad56f
cmp ecx, 2
je 0x1801ad56f
cmp ecx, 3
je 0x1801ad56f
cmp ecx, 4
je 0x1801ad56f
and eax, 0xfff00000
cmp eax, 0x51700000
je 0x1801ad556
cmp eax, 0x51800000
je 0x1801ad556
cmp eax, 0x51900000
je 0x1801ad556
cmp eax, 0x51d00000
je 0x1801ad556
cmp eax, 0x51e00000
jne 0x1801ad55d
cmp eax, 0x51700000
jne 0x1801ad56f
mov r13, qword [rsp + 0x390]
mov qword [rsp + 0x78], r13
jmp 0x1801ae316
mov r13, qword [rsp + 0x390]
mov qword [rsp + 0x78], r13
mov rsi, qword [r13]
mov qword [rsp + 0x90], rsi
test rsi, rsi
je 0x1801ae316
mov ecx, dword [rsi + 0x30]
cmp ecx, dword [rsp + 0x58]
jae 0x1801aed69
cmp r15, rsi
je 0x1801ae2fd
mov eax, dword [r15 + 0x30]
mov r14, r15
mov r15, rsi
cmp eax, ecx
cmovb r14, rsi
cmp eax, ecx
mov rax, qword [rsp + 0x50]
cmovb r15, rax
mov eax, dword [r14 + 0x78]
xor eax, dword [r15 + 0x78]
test eax, 0xfff00000
jne 0x1801ae2f8
mov rax, qword [r15 + 0x28]
mov rdi, qword [rax]
mov rax, qword [r14 + 0x28]
mov rcx, qword [rax]
mov rax, qword [rdi + 0xa8]
cmp qword [rcx + 0xa8], rax
jne 0x1801ae2dc
mov rax, qword [r14 + 0x28]
mov r8, qword [r12]
mov rcx, qword [rax]
mov edx, dword [rcx + 0x130]
mov rcx, r12
call qword [r8 + 0x28]
mov r8, qword [r12]
mov edx, dword [rdi + 0x130]
mov rcx, r12
mov ebx, eax
call qword [r8 + 0x28]
cmp ebx, eax
jne 0x1801ae2d5
mov rax, qword [r15 + 0x28]
mov r8, qword [rax]
mov rax, qword [r14 + 0x28]
mov rdx, qword [rax]
mov rax, qword [r8 + 0xc0]
cmp qword [rdx + 0xc0], rax
jne 0x1801ae2ce
mov rax, qword [r8 + 0xd0]
cmp qword [rdx + 0xd0], rax
jne 0x1801ae2c7
movzx eax, byte [r8 + 0xd8]
cmp byte [rdx + 0xd8], al
jne 0x1801ae2e3
mov eax, dword [r15 + 0x10]
mov edi, dword [r15 + 0x20]
mov ebx, dword [r14 + 0x20]
add eax, dword [r14 + 0x10]
mov rcx, r14
mov dword [rsp + 0x390], edi
mov dword [rsp + 0x398], ebx
lea r13d, [rbx + rdi]
mov dword [rsp + 0xb8], eax
call fcn.180196f80
cmp r13d, eax
ja 0x1801ae2f1
mov r9d, dword [rdx + 0xc8]
mov r8d, dword [r8 + 0xc8]
mov dword [rsp + 0xa0], r9d
mov dword [rsp + 0x98], r8d
cmp r9d, r8d
je 0x1801ad714
movzx eax, byte [r12 + 0xcef4]
test al, 4
jne 0x1801ae2c0
test al, 2
jne 0x1801ae2b9
mov rax, qword [rdx + 0xa8]
movzx ecx, byte [rax + 0x10]
shr cl, 5
test cl, 1
jne 0x1801ae2ea
mov edx, dword [rbp + r8*4]
add edx, dword [rbp + r9*4]
cmp edx, 4
ja 0x1801ae2b2
mov ecx, dword [r14 + 0x78]
mov ebp, dword [r15 + 0x30]
mov eax, ecx
mov dword [rsp + 0x80], ebp
and eax, 0xfff00000
cmp eax, 0x10000000
je 0x1801ae1c7
cmp eax, 0x10400000
je 0x1801ae1c7
shr ecx, 0x1c
cmp ecx, 1
jne 0x1801ad801
mov rdx, qword [r15 + 0x18]
lea rdi, [rdi*8]
lea rcx, [rsp + 0xc0]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, qword [r14 + 0x18]
lea rbx, [rbx*8]
lea rcx, [rsp + rdi + 0xc0]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rdx, qword [r15 + 0x28]
lea rcx, [rsp + 0x158]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, qword [r14 + 0x28]
lea rcx, [rsp + rdi + 0x158]
mov r8, rbx
call sub.msvcrt.dll_memcpy
test r13d, r13d
je 0x1801ad7f6
lea rax, [rsp + 0x68]
lea rdx, [rsp + 0xc0]
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], ebp
lea rax, [rsp + 0x158]
mov qword [rsp + 0x30], rax
xor eax, eax
mov r8d, r13d
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
call fcn.1801e98b0
test al, al
je 0x1801ae255
xor bpl, bpl
mov dil, 1
jmp 0x1801ae228
cmp eax, 0x51700000
je 0x1801ad828
cmp eax, 0x51800000
je 0x1801ad828
cmp eax, 0x51900000
je 0x1801ad828
cmp eax, 0x51d00000
je 0x1801ad828
cmp eax, 0x51e00000
jne 0x1801ad982
cmp eax, 0x51700000
je 0x1801ad982
cmp r14, 0xffffffffffffffff
je 0x1801afbd3
lea rax, [rsp + 0x390]
lea r8, [rsp + 0x178]
lea rdx, [rsp + 0x1e8]
xor r9d, r9d
xor ecx, ecx
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
call fcn.180197cf0
mov ebx, eax
test eax, eax
js 0x1801afcc1
cmp r15, 0xffffffffffffffff
je 0x1801afbc3
lea rax, [rsp + 0x390]
lea r8, [rsp + 0x158]
lea rdx, [rsp + 0x228]
xor r9d, r9d
xor ecx, ecx
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
call fcn.180197cf0
mov ebx, eax
test eax, eax
js 0x1801afcb9
mov r8d, dword [r14 + 0x78]
xor eax, eax
mov rcx, rax
mov eax, r8d
and eax, 0xfff00000
cmp eax, 0x51900000
je 0x1801ad8d2
cmp eax, 0x51e00000
jne 0x1801ad901
mov rax, qword [rsp + 0x1e8]
cmp qword [rsp + 0x228], rax
jne 0x1801ae28e
mov eax, dword [rsp + 0x178]
cmp dword [rsp + 0x158], eax
jne 0x1801ae282
mov ecx, 1
mov rax, qword [rsp + rcx*8 + 0x1e8]
cmp qword [rsp + rcx*8 + 0x228], rax
jne 0x1801ae2a6
mov edx, dword [rsp + rcx*4 + 0x178]
mov r9d, dword [rsp + rcx*4 + 0x158]
mov eax, r8d
and eax, 0xfffff
lea eax, [rdx + rax*4]
cmp r9d, eax
jne 0x1801ad93b
xor bpl, bpl
jmp 0x1801ad953
mov eax, dword [r15 + 0x78]
and eax, 0xfffff
lea eax, [r9 + rax*4]
cmp edx, eax
jne 0x1801ae276
mov bpl, 1
mov ecx, dword [r15 + 0x78]
mov rax, qword [r15 + 0x18]
and r8d, 0xfffff
and ecx, 0xfffff
mov rdx, qword [rax + rcx*8]
mov rax, qword [r14 + 0x18]
cmp rdx, qword [rax + r8*8]
jne 0x1801ae29a
mov dil, 1
jmp 0x1801ae228
cmp ecx, 2
jne 0x1801adca8
mov rdx, qword [r15 + 0x18]
lea rdi, [rdi*8]
lea rcx, [rsp + 0xc0]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, qword [r14 + 0x18]
lea rbx, [rbx*8]
lea rcx, [rsp + rdi + 0xc0]
mov r8, rbx
mov qword [rsp + 0x390], rbx
call sub.msvcrt.dll_memcpy
mov rdx, qword [r15 + 0x28]
lea rcx, [rsp + 0x158]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, qword [r14 + 0x28]
lea rcx, [rsp + rdi + 0x158]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r11, qword [r15 + 0x18]
lea rcx, [rsp + 0x130]
lea rdx, [rdi + r11]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov r11, qword [r14 + 0x18]
lea rcx, [rsp + rdi + 0x130]
lea rdx, [rbx + r11]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rdx, qword [r15 + 0x28]
lea rcx, [rsp + 0x178]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, qword [r14 + 0x28]
lea rcx, [rsp + rdi + 0x178]
mov r8, rbx
call sub.msvcrt.dll_memcpy
test r13d, r13d
je 0x1801adc9d
lea rax, [rsp + 0x68]
lea rdx, [rsp + 0xc0]
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], ebp
lea rax, [rsp + 0x158]
mov qword [rsp + 0x30], rax
xor eax, eax
mov r8d, r13d
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
call fcn.1801e98b0
lea rdx, [rsp + 0x130]
xor r9d, r9d
movzx ebx, al
lea rax, [rsp + 0x68]
mov r8d, r13d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], ebp
lea rax, [rsp + 0x178]
mov qword [rsp + 0x30], rax
xor eax, eax
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
call fcn.1801e98b0
test bl, bl
je 0x1801adadd
test al, al
jne 0x1801adc9d
mov eax, dword [r14 + 0x78]
and eax, 0xfff00000
cmp eax, 0x21500000
ja 0x1801adb2f
cmp eax, 0x21500000
je 0x1801adb56
cmp eax, 0x21100000
ja 0x1801adb1c
cmp eax, 0x21100000
je 0x1801adb56
cmp eax, 0x20000000
je 0x1801adb56
cmp eax, 0x20400000
je 0x1801adb56
cmp eax, 0x21000000
je 0x1801adb56
jmp 0x1801ae255
cmp eax, 0x21300000
je 0x1801adb56
cmp eax, 0x21400000
je 0x1801adb56
jmp 0x1801ae255
cmp eax, 0x21700000
je 0x1801adb56
cmp eax, 0x22d00000
je 0x1801adb56
cmp eax, 0x22e00000
je 0x1801adb56
cmp eax, 0x22f00000
je 0x1801adb56
cmp eax, 0x50000000
jne 0x1801ae255
mov rdx, qword [r15 + 0x18]
lea rcx, [rsp + 0x270]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov r11, qword [r14 + 0x18]
mov rbx, qword [rsp + 0x390]
lea rdx, [rbx + r11]
lea rcx, [rsp + rdi + 0x270]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rdx, qword [r15 + 0x28]
lea rcx, [rsp + 0x310]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, qword [r14 + 0x28]
lea rcx, [rsp + rdi + 0x310]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r11, qword [r15 + 0x18]
lea rcx, [rsp + 0x250]
lea rdx, [rdi + r11]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, qword [r14 + 0x18]
lea rcx, [rsp + rdi + 0x250]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rdx, qword [r15 + 0x28]
lea rcx, [rsp + 0x228]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, qword [r14 + 0x28]
lea rcx, [rsp + rdi + 0x228]
mov r8, rbx
call sub.msvcrt.dll_memcpy
lea r11, [rsp + 0x68]
lea rax, [rsp + 0x310]
mov qword [rsp + 0x40], r11
mov dword [rsp + 0x38], ebp
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x270]
xor edi, edi
xor r9d, r9d
mov r8d, r13d
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rdi
call fcn.1801e98b0
lea rdx, [rsp + 0x250]
movzx ebx, al
lea rax, [rsp + 0x68]
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], ebp
lea rax, [rsp + 0x228]
mov qword [rsp + 0x30], rax
mov r8d, r13d
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rdi
call fcn.1801e98b0
test bl, bl
je 0x1801ae255
test al, al
je 0x1801ae255
mov bpl, 1
movzx edi, bpl
jmp 0x1801ae228
xor bpl, bpl
mov dil, 1
jmp 0x1801ae228
cmp ecx, 3
jne 0x1801aded1
mov rdx, qword [r15 + 0x18]
lea rbp, [rdi*8]
lea rcx, [rsp + 0xc0]
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov rdx, qword [r14 + 0x18]
lea rsi, [rbx*8]
lea rcx, [rsp + rbp + 0xc0]
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov rdx, qword [r15 + 0x28]
lea rcx, [rsp + 0x158]
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov rdx, qword [r14 + 0x28]
lea rcx, [rsp + rbp + 0x158]
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov rdx, qword [r15 + 0x18]
lea rcx, [rsp + 0x130]
add rdx, rbp
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov r11, qword [r14 + 0x18]
lea rcx, [rsp + rbp + 0x130]
lea rdx, [rsi + r11]
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov rbx, qword [r15 + 0x28]
lea rcx, [rsp + 0x178]
mov rdx, rbx
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov rdi, qword [r14 + 0x28]
lea rcx, [rsp + rbp + 0x178]
mov rdx, rdi
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov r10d, dword [rsp + 0x390]
mov rax, qword [r15 + 0x18]
lea r11d, [r10 + r10]
lea rcx, [rsp + 0x100]
mov r8, rbp
lea rdx, [rax + r11*8]
call sub.msvcrt.dll_memcpy
mov r10d, dword [rsp + 0x398]
mov rax, qword [r14 + 0x18]
lea r11d, [r10 + r10]
lea rcx, [rsp + rbp + 0x100]
mov r8, rsi
lea rdx, [rax + r11*8]
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x198]
mov r8, rbp
mov rdx, rbx
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + rbp + 0x198]
mov r8, rsi
mov rdx, rdi
call sub.msvcrt.dll_memcpy
test r13d, r13d
je 0x1801adebe
mov edi, dword [rsp + 0x80]
lea rax, [rsp + 0x68]
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], edi
lea rax, [rsp + 0x158]
mov qword [rsp + 0x30], rax
xor ebp, ebp
xor r9d, r9d
mov r8d, r13d
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbp
call fcn.1801e98b0
lea rdx, [rsp + 0x130]
movzx ebx, al
lea rax, [rsp + 0x68]
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], edi
lea rax, [rsp + 0x178]
mov qword [rsp + 0x30], rax
mov r8d, r13d
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbp
call fcn.1801e98b0
movzx esi, al
lea rax, [rsp + 0x68]
lea rdx, [rsp + 0x100]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], edi
lea rax, [rsp + 0x198]
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov r8d, r13d
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbp
call fcn.1801e98b0
test bl, bl
je 0x1801ae255
test sil, sil
je 0x1801ae255
test al, al
je 0x1801ae255
mov rsi, qword [rsp + 0x90]
xor bpl, bpl
mov dil, 1
jmp 0x1801ae228
cmp ecx, 4
jne 0x1801ae255
mov rdx, qword [r15 + 0x18]
lea r13, [rdi*8]
lea rcx, [rsp + 0xc0]
mov r8, r13
call sub.msvcrt.dll_memcpy
mov rdx, qword [r14 + 0x18]
lea r12, [rbx*8]
lea rcx, [rsp + r13 + 0xc0]
mov r8, r12
call sub.msvcrt.dll_memcpy
mov rdx, qword [r15 + 0x28]
lea rcx, [rsp + 0x158]
mov r8, r13
call sub.msvcrt.dll_memcpy
mov rdx, qword [r14 + 0x28]
lea rcx, [rsp + r13 + 0x158]
mov r8, r12
call sub.msvcrt.dll_memcpy
mov r11, qword [r15 + 0x18]
lea rcx, [rsp + 0x130]
lea rdx, [r13 + r11]
mov r8, r13
call sub.msvcrt.dll_memcpy
mov r11, qword [r14 + 0x18]
lea rcx, [rsp + r13 + 0x130]
lea rdx, [r12 + r11]
mov r8, r12
call sub.msvcrt.dll_memcpy
mov rsi, qword [r15 + 0x28]
lea rcx, [rsp + 0x178]
mov rdx, rsi
mov r8, r13
call sub.msvcrt.dll_memcpy
mov rbp, qword [r14 + 0x28]
lea rcx, [rsp + r13 + 0x178]
mov rdx, rbp
mov r8, r12
call sub.msvcrt.dll_memcpy
mov rbx, qword [r15 + 0x18]
lea eax, [rdi + rdi]
lea rcx, [rsp + 0x100]
lea rdx, [rbx + rax*8]
mov r8, r13
call sub.msvcrt.dll_memcpy
mov r10d, dword [rsp + 0x398]
mov rdi, qword [r14 + 0x18]
lea eax, [r10 + r10]
lea rcx, [rsp + r13 + 0x100]
mov r8, r12
lea rdx, [rdi + rax*8]
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x198]
mov r8, r13
mov rdx, rsi
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + r13 + 0x198]
mov r8, r12
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov eax, dword [rsp + 0x390]
lea rcx, [rsp + 0x2a0]
lea eax, [rax + rax*2]
mov r8, r13
lea rdx, [rbx + rax*8]
call sub.msvcrt.dll_memcpy
mov ebx, dword [rsp + 0x398]
lea rcx, [rsp + r13 + 0x2a0]
lea eax, [rbx + rbx*2]
mov r8, r12
lea rdx, [rdi + rax*8]
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x1e8]
mov r8, r13
mov rdx, rsi
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + r13 + 0x1e8]
mov r8, r12
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov r10d, dword [rsp + 0x390]
lea r13d, [rbx + r10]
test r13d, r13d
je 0x1801ae1af
mov edi, dword [rsp + 0x80]
mov r12, qword [rsp + 0x380]
lea rax, [rsp + 0x68]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], edi
lea rax, [rsp + 0x158]
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0xc0]
xor ebp, ebp
xor r9d, r9d
mov r8d, r13d
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbp
call fcn.1801e98b0
movzx ebx, al
lea rax, [rsp + 0x68]
lea rdx, [rsp + 0x130]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], edi
lea rax, [rsp + 0x178]
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov r8d, r13d
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbp
call fcn.1801e98b0
lea rdx, [rsp + 0x100]
xor r9d, r9d
movzx esi, al
lea rax, [rsp + 0x68]
mov r8d, r13d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], edi
lea rax, [rsp + 0x198]
mov qword [rsp + 0x30], rax
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbp
call fcn.1801e98b0
lea rdx, [rsp + 0x2a0]
movzx ebp, al
lea rax, [rsp + 0x68]
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], edi
lea rax, [rsp + 0x1e8]
mov qword [rsp + 0x30], rax
xor eax, eax
mov r8d, r13d
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
call fcn.1801e98b0
test bl, bl
je 0x1801ae255
test sil, sil
je 0x1801ae255
test bpl, bpl
je 0x1801ae255
test al, al
je 0x1801ae255
mov rsi, qword [rsp + 0x90]
xor bpl, bpl
mov dil, 1
jmp 0x1801ae228
mov r12, qword [rsp + 0x380]
mov rsi, qword [rsp + 0x90]
xor bpl, bpl
mov dil, 1
jmp 0x1801ae228
mov r8, qword [r15 + 0x18]
mov rdx, qword [r14 + 0x18]
mov rcx, r12
mov r8, qword [r8]
mov rdx, qword [rdx]
call fcn.1801e9480
mov dil, al
test al, al
je 0x1801ae255
mov r10d, dword [rsp + 0x390]
mov rdx, qword [r15 + 0x18]
lea rcx, [rsp + 0xc0]
lea rbx, [r10*8]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r8d, dword [rsp + 0x398]
mov rdx, qword [r14 + 0x18]
lea rcx, [rsp + rbx + 0xc0]
shl r8, 3
call sub.msvcrt.dll_memcpy
xor bpl, bpl
mov eax, dword [rsp + 0x98]
mov ecx, dword [rsp + 0xa0]
cmp ecx, eax
je 0x1801ae24c
mov r8, qword [rsp + 0x60]
mov edx, dword [r8 + rax*4]
add edx, dword [r8 + rcx*4]
cmp edx, 4
ja 0x1801ae255
test dil, dil
jne 0x1801ae4da
lea rcx, [rsp + 0x68]
call fcn.1800c5e00
mov rsi, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x60]
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov rbp, qword [rsp + 0x60]
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov rbp, qword [rsp + 0x60]
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov rbp, qword [rsp + 0x60]
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov rbp, qword [rsp + 0x60]
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov rbp, qword [rsp + 0x60]
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov r15, qword [rsp + 0x50]
jmp 0x1801ae2fd
mov r15, qword [rsp + 0x50]
mov rsi, qword [rsi]
mov qword [rsp + 0x90], rsi
test rsi, rsi
jne 0x1801ad591
mov r13, qword [rsp + 0x78]
mov eax, dword [r15 + 0x78]
and eax, 0xfff00000
cmp eax, 0x11a00000
je 0x1801ae346
cmp eax, 0x11b00000
je 0x1801ae346
cmp eax, 0x20b00000
je 0x1801ae346
cmp eax, 0x20f00000
je 0x1801ae346
cmp eax, 0x30100000
jne 0x1801af1b9
mov r13, qword [r13]
test r13, r13
je 0x1801af1c7
nop word [rax + rax]
mov ecx, dword [r13 + 0x30]
cmp ecx, dword [rsp + 0x58]
jae 0x1801af1c0
cmp r15, r13
je 0x1801aed73
mov eax, dword [r15 + 0x30]
mov rdi, r13
mov r14, r15
cmp eax, ecx
cmovb rdi, r15
cmp eax, ecx
mov ebp, dword [rdi + 0x78]
cmovb r14, r13
mov eax, ebp
and eax, 0xfff00000
cmp eax, 0x11a00000
je 0x1801ae3be
cmp eax, 0x11b00000
je 0x1801ae3be
cmp eax, 0x20b00000
je 0x1801ae3be
cmp eax, 0x20f00000
je 0x1801ae3be
cmp eax, 0x30100000
jne 0x1801aed73
mov eax, dword [r14 + 0x78]
and eax, 0xfff00000
cmp eax, 0x11a00000
je 0x1801ae3ee
cmp eax, 0x11b00000
je 0x1801ae3ee
cmp eax, 0x20b00000
je 0x1801ae3ee
cmp eax, 0x20f00000
je 0x1801ae3ee
cmp eax, 0x30100000
jne 0x1801aed73
mov rbx, qword [r14 + 0x28]
mov rsi, qword [rdi + 0x28]
mov rcx, qword [rbx]
mov rdx, qword [rsi]
mov rax, qword [rcx + 0xd0]
cmp qword [rdx + 0xd0], rax
jne 0x1801aed73
movzx eax, byte [rcx + 0xd8]
cmp byte [rdx + 0xd8], al
jne 0x1801aed73
lea rax, [rsp + 0x120]
lea rdx, [r12 + 0xce68]
lea r9, [rsp + 0x128]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x124]
mov r8, r14
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.180197a40
test al, al
je 0x1801aed73
and ebp, 0xfffff
mov edx, 0
mov ecx, edx
jbe 0x1801ae49d
sub rsi, rbx
mov rax, qword [rsi + rbx]
test byte [rax + 0xf8], 0x7f
jne 0x1801aed73
mov rax, qword [rbx]
test byte [rax + 0xf8], 0x7f
jne 0x1801aed73
inc ecx
add rbx, 8
cmp ecx, ebp
jb 0x1801ae472
mov eax, dword [rdi + 0x10]
mov r15d, dword [rdi + 0x20]
mov ecx, dword [0x18025e63c]
mov dword [rsp + 0x388], eax
mov eax, dword [rsp + 0x128]
mov ebx, ebp
xor ebx, eax
add r15d, r15d
mov r13, rdx
and ebx, 0xfffff
xor ebx, eax
test ecx, ecx
jns 0x1801aed8a
mov rcx, rdx
jmp 0x1801aed95
mov eax, dword [r14 + 0x78]
lea rdx, [rsp + 0x150]
mov r9, r14
and eax, 0xfff00000
mov rcx, r12
mov r8d, eax
xor r8d, r13d
and r8d, 0xfffff
xor r8d, eax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], eax
call fcn.18019f360
mov ebx, eax
test eax, eax
js 0x1801afcb1
movsxd rax, dword [rsp + 0x98]
mov r8d, dword [rsp + 0xa0]
cmp r8d, eax
je 0x1801ae5a8
mov rcx, qword [rsp + 0x1c0]
mov rdx, rax
mov rcx, qword [rcx + 0x30]
test rcx, rcx
je 0x1801ae593
mov r12d, dword [rsp + 0x98]
mov r9, qword [rsp + 0x60]
cmp r8d, dword [rcx + 0xc8]
jne 0x1801ae57a
mov dword [rcx + 0xc8], r12d
mov eax, dword [r9 + rdx*4]
add dword [rcx + 0xcc], eax
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1801ae560
mov r12, qword [rsp + 0x380]
mov eax, dword [rsp + 0x98]
jmp 0x1801ae598
mov r9, qword [rsp + 0x60]
mov edx, eax
mov eax, dword [r9 + r8*4]
add dword [r9 + rdx*4], eax
xor eax, eax
mov dword [r9 + r8*4], eax
mov eax, dword [r14 + 0x78]
and eax, 0xfff00000
cmp eax, 0x51700000
je 0x1801ae613
cmp eax, 0x51800000
je 0x1801ae613
cmp eax, 0x51900000
je 0x1801ae613
cmp eax, 0x51d00000
je 0x1801ae613
cmp eax, 0x51e00000
je 0x1801ae613
mov r8d, dword [r15 + 0x20]
mov rdi, qword [rsp + 0x150]
mov rdx, qword [r15 + 0x28]
mov rcx, qword [rdi + 0x28]
shl r8, 3
call sub.msvcrt.dll_memcpy
mov ecx, dword [r15 + 0x20]
mov rax, qword [rdi + 0x28]
mov r8d, dword [r14 + 0x20]
mov rdx, qword [r14 + 0x28]
lea rcx, [rax + rcx*8]
shl r8, 3
call sub.msvcrt.dll_memcpy
jmp 0x1801ae699
cmp eax, 0x51700000
je 0x1801afbf3
test bpl, bpl
je 0x1801ae65f
mov r8d, dword [r15 + 0x20]
mov rdi, qword [rsp + 0x150]
mov rdx, qword [r15 + 0x28]
mov rcx, qword [rdi + 0x28]
shl r8, 3
call sub.msvcrt.dll_memcpy
mov ecx, dword [r15 + 0x20]
mov rax, qword [rdi + 0x28]
mov r8d, dword [r14 + 0x20]
mov rdx, qword [r14 + 0x28]
lea rcx, [rax + rcx*8]
shl r8, 3
call sub.msvcrt.dll_memcpy
jmp 0x1801ae699
mov r8d, dword [r14 + 0x20]
mov rdi, qword [rsp + 0x150]
mov rdx, qword [r14 + 0x28]
mov rcx, qword [rdi + 0x28]
shl r8, 3
call sub.msvcrt.dll_memcpy
mov ecx, dword [r14 + 0x20]
mov rax, qword [rdi + 0x28]
mov r8d, dword [r15 + 0x20]
mov rdx, qword [r15 + 0x28]
lea rcx, [rax + rcx*8]
shl r8, 3
call sub.msvcrt.dll_memcpy
xor r9d, r9d
mov r8d, r9d
cmp dword [rdi + 0x20], r9d
jbe 0x1801ae6cd
mov rdx, r9
nop dword [rax + rax]
mov rax, qword [rdi + 0x28]
inc r8d
add rdx, 8
mov rcx, qword [rdx + rax - 8]
mov qword [rcx + 0x100], rdi
cmp r8d, dword [rdi + 0x20]
jb 0x1801ae6b0
mov edx, dword [r14 + 0x78]
mov ecx, edx
shr ecx, 0x1c
cmp ecx, 1
jne 0x1801ae6f8
mov rcx, qword [rdi + 0x18]
mov r8d, r13d
lea rdx, [rsp + 0xc0]
shl r8, 3
call sub.msvcrt.dll_memcpy
jmp 0x1801aeb21
mov eax, edx
and eax, 0xfff00000
cmp eax, 0x51d00000
je 0x1801ae949
cmp eax, 0x51e00000
je 0x1801ae949
cmp eax, 0x51700000
je 0x1801ae72e
cmp eax, 0x51800000
je 0x1801ae72e
cmp eax, 0x51900000
jne 0x1801ae816
cmp eax, 0x51700000
je 0x1801ae816
test bpl, bpl
movsxd rbx, r13d
cmovne r14, r15
test r13d, r13d
je 0x1801aeb21
mov r11, r9
lea r9, [rbx + rbx*2]
mov r8, rbx
mov r10, rbx
shl r9, 3
shl r8, 5
shl r10, 4
shl rbx, 3
mov ebp, r13d
nop dword [rax]
mov rax, qword [r14 + 0x18]
add r8, 8
add r11, 8
mov rcx, qword [rax]
mov rax, qword [rdi + 0x18]
add rbx, 8
mov qword [r11 + rax - 8], rcx
mov ecx, dword [r14 + 0x78]
mov rax, qword [r14 + 0x18]
and ecx, 0xfffff
add r10, 8
add r9, 8
mov rcx, qword [rax + rcx*8]
mov rax, qword [rdi + 0x18]
mov qword [rbx + rax - 8], rcx
mov eax, dword [r14 + 0x78]
and eax, 0xfffff
lea ecx, [rax + rax]
mov rax, qword [r14 + 0x18]
mov rdx, qword [rax + rcx*8]
mov rax, qword [rdi + 0x18]
mov qword [r10 + rax - 8], rdx
mov eax, dword [r14 + 0x78]
and eax, 0xfffff
lea ecx, [rax + rax*2]
mov rax, qword [r14 + 0x18]
mov rdx, qword [rax + rcx*8]
mov rax, qword [rdi + 0x18]
mov qword [r9 + rax - 8], rdx
mov ecx, dword [r14 + 0x78]
mov rax, qword [r14 + 0x18]
and ecx, 0xfffff
shl ecx, 2
sub rbp, 1
mov rdx, qword [rax + rcx*8]
mov rax, qword [rdi + 0x18]
mov qword [r8 + rax - 8], rdx
jne 0x1801ae770
jmp 0x1801aeb21
cmp ecx, 2
jne 0x1801ae872
mov rcx, qword [rdi + 0x18]
lea rax, [rsp + 0x270]
lea rbx, [r13*8]
lea rdx, [rsp + 0xc0]
test bpl, bpl
mov r8, rbx
cmovne rdx, rax
call sub.msvcrt.dll_memcpy
lea rax, [rsp + 0x250]
test bpl, bpl
lea rdx, [rsp + 0x130]
mov r8, rbx
cmovne rdx, rax
mov rax, qword [rdi + 0x18]
lea rcx, [rbx + rax]
call sub.msvcrt.dll_memcpy
jmp 0x1801aeb21
cmp ecx, 3
jne 0x1801ae8cd
mov rcx, qword [rdi + 0x18]
lea rbx, [r13*8]
lea rdx, [rsp + 0xc0]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r11, qword [rdi + 0x18]
lea rdx, [rsp + 0x130]
lea rcx, [rbx + r11]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rax, qword [rdi + 0x18]
lea r11d, [r13 + r13]
lea rdx, [rsp + 0x100]
lea rcx, [rax + r11*8]
mov r8, rbx
call sub.msvcrt.dll_memcpy
jmp 0x1801aeb21
cmp ecx, 4
jne 0x1801afbe3
mov rcx, qword [rdi + 0x18]
lea rbx, [r13*8]
lea rdx, [rsp + 0xc0]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r11, qword [rdi + 0x18]
lea rdx, [rsp + 0x130]
lea rcx, [rbx + r11]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rax, qword [rdi + 0x18]
lea r11d, [r13 + r13]
lea rdx, [rsp + 0x100]
lea rcx, [rax + r11*8]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rax, qword [rdi + 0x18]
lea ecx, [r13 + r13*2]
lea rdx, [rsp + 0x2a0]
lea rcx, [rax + rcx*8]
mov r8, rbx
call sub.msvcrt.dll_memcpy
jmp 0x1801aeb21
test bpl, bpl
je 0x1801ae9a2
mov r8d, dword [r15 + 0x78]
mov rdx, qword [r15 + 0x18]
mov rcx, qword [rdi + 0x18]
and r8d, 0xfffff
shl r8, 3
call sub.msvcrt.dll_memcpy
mov r11d, dword [r15 + 0x78]
mov r8d, dword [r14 + 0x78]
mov rax, qword [rdi + 0x18]
mov rdx, qword [r14 + 0x18]
and r11d, 0xfffff
and r8d, 0xfffff
lea rcx, [rax + r11*8]
shl r8, 3
call sub.msvcrt.dll_memcpy
mov r15d, dword [r15 + 0x78]
and r15d, 0xfffff
jmp 0x1801ae9f2
mov rcx, qword [rdi + 0x18]
and edx, 0xfffff
mov r8d, edx
mov rdx, qword [r14 + 0x18]
shl r8, 3
call sub.msvcrt.dll_memcpy
mov r11d, dword [r14 + 0x78]
mov r8d, dword [r15 + 0x78]
mov rax, qword [rdi + 0x18]
mov rdx, qword [r15 + 0x18]
and r11d, 0xfffff
and r8d, 0xfffff
lea rcx, [rax + r11*8]
shl r8, 3
call sub.msvcrt.dll_memcpy
mov r15d, dword [r14 + 0x78]
and r15d, 0xfffff
mov eax, dword [rdi + 0x78]
movsxd rcx, r15d
and eax, 0xfffff
cmp r15d, eax
jae 0x1801aead9
lea eax, [r15*4]
shl rcx, 3
mov dword [rsp + 0x388], eax
mov qword [rsp + 0x390], rcx
nop word [rax + rax]
mov rax, qword [rdi + 0x18]
lea r8, [rsp + 0x1b8]
mov rdx, qword [rax + rcx]
mov rbp, qword [rax]
mov rcx, r12
call fcn.18019f810
mov ebx, eax
test eax, eax
js 0x1801afca9
mov rax, qword [rbp + 0xb8]
mov rdx, qword [rsp + 0x1b8]
mov r8d, dword [rsp + 0x388]
mov qword [rdx + 0xb8], rax
mov eax, dword [rbp + 0xb0]
inc r15d
mov dword [rdx + 0xb0], eax
mov rax, qword [rbp + 0xc0]
mov qword [rdx + 0xc0], rax
mov eax, dword [rbp + 0xc8]
lea ecx, [r8 + rax]
add r8d, 4
mov dword [rdx + 0xc8], ecx
mov rcx, qword [rsp + 0x390]
mov rax, qword [rdi + 0x18]
mov qword [rcx + rax], rdx
mov eax, dword [rdi + 0x78]
add rcx, 8
and eax, 0xfffff
mov dword [rsp + 0x388], r8d
mov qword [rsp + 0x390], rcx
cmp r15d, eax
jb 0x1801aea30
mov r8d, dword [rdi + 0x78]
xor eax, eax
and r8d, 0xfffff
mov r9d, eax
jbe 0x1801aeb21
nop dword [rax + rax]
mov ecx, dword [r14 + 0x78]
mov rax, qword [r14 + 0x18]
and ecx, 0xfffff
mov rdx, qword [rax + rcx*8]
mov rax, qword [rdi + 0x18]
lea ecx, [r8 + r9]
mov qword [rax + rcx*8], rdx
mov r8d, dword [rdi + 0x78]
inc r9d
and r8d, 0xfffff
cmp r9d, r8d
jb 0x1801aeaf0
mov r15, qword [rsp + 0x50]
xor edx, edx
mov r8d, dword [r15 + 0x78]
mov eax, dword [r15 + 0x10]
mov ecx, r8d
shr r8d, 0x1c
and ecx, 0xfffff
div ecx
mov ebp, eax
cmp r8d, 1
je 0x1801aeb5d
cmp r8d, 2
je 0x1801aeb5d
cmp r8d, 3
je 0x1801aeb5d
cmp r8d, 4
jne 0x1801aebf2
mov rdx, qword [rdi + 0x28]
lea r8, [rsp + 0x290]
mov r9d, r13d
mov rcx, r12
mov byte [rsp + 0x20], 1
call fcn.1801b2b50
xor r14d, r14d
mov ebx, r14d
test ebp, ebp
je 0x1801aebf5
nop word [rax + rax]
mov rax, qword [rdi + 0x18]
mov ecx, ebx
imul ecx, dword [rdi + 0x20]
lea rcx, [rax + rcx*8]
test r13d, r13d
je 0x1801aebea
lea r9, [rsp + 0x1e8]
lea r10, [rsp + 0x290]
mov r8d, r13d
mov r11d, r13d
nop dword [rax]
mov eax, dword [r10]
add r9, 8
add r10, 4
sub r11, 1
mov rdx, qword [rcx + rax*8]
mov qword [r9 - 8], rdx
jne 0x1801aebc0
lea rdx, [rsp + 0x1e8]
shl r8, 3
call sub.msvcrt.dll_memcpy
inc ebx
cmp ebx, ebp
jb 0x1801aeb90
jmp 0x1801aebf5
xor r14d, r14d
mov r13, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x68]
mov edi, r14d
cmp rsi, r13
cmove r13, rbp
mov qword [rsp + 0x78], r13
nop
test rsi, rsi
je 0x1801aed29
mov rax, qword [rsi + 8]
mov rbx, qword [rsi]
test rax, rax
je 0x1801aec2a
mov qword [rax], rbx
jmp 0x1801aec2f
mov qword [r12 + 0x18], rbx
mov rcx, qword [rsi]
test rcx, rcx
je 0x1801aec41
mov rax, qword [rsi + 8]
mov qword [rcx + 8], rax
jmp 0x1801aec4a
mov rax, qword [rsi + 8]
mov qword [r12 + 0x20], rax
lea rdx, [rsi + 0x18]
lea rcx, [rsi + 0x7c]
mov qword [rsi], 0xffffffffffffffff
mov qword [rsi + 8], 0xffffffffffffffff
call fcn.180193c50
lea rdx, [rsi + 0x28]
lea rcx, [rsi + 0x7e]
call fcn.180193c50
mov rcx, rsi
call fcn.1801979c0
inc edi
mov rsi, rbx
cmp edi, 1
jb 0x1801aec10
mov ecx, r14d
test rbp, rbp
je 0x1801aec9a
mov rax, rbp
mov rax, qword [rax]
inc ecx
test rax, rax
jne 0x1801aec90
lea eax, [rcx - 1]
add dword [r12 + 0x14], eax
test rbx, rbx
je 0x1801aece8
test rbp, rbp
je 0x1801aed1e
mov rax, qword [rbx + 8]
mov qword [rbp + 8], rax
mov rax, qword [rbx + 8]
test rax, rax
je 0x1801aecc2
mov qword [rax], rbp
jmp 0x1801aecc7
mov qword [r12 + 0x18], rbp
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x70], r14
mov qword [rax], rbx
mov qword [rbx + 8], rax
or dword [r12 + 0x28], 7
mov ebx, r14d
jmp 0x1801aed2e
mov rax, qword [r12 + 0x20]
test rax, rax
je 0x1801aecf7
mov qword [rax], rbp
jmp 0x1801aecfc
mov qword [r12 + 0x18], rbp
test rbp, rbp
je 0x1801aed0a
mov rax, qword [r12 + 0x20]
mov qword [rbp + 8], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x70], r14
mov qword [r12 + 0x20], rax
or dword [r12 + 0x28], 7
mov ebx, r14d
jmp 0x1801aed2e
mov ebx, 0x80004005
test ebx, ebx
js 0x1801afca1
mov rcx, r12
mov dword [r15 + 0x78], r14d
mov dword [r15 + 0x10], r14d
mov dword [r15 + 0x20], r14d
call fcn.1801b3770
mov ebx, eax
test eax, eax
js 0x1801afc99
mov byte [rsp + 0x388], 1
mov qword [rsp + 0x88], r13
jmp 0x1801ae316
mov r13, qword [rsp + 0x78]
jmp 0x1801ae316
mov r13, qword [r13]
test r13, r13
jne 0x1801ae360
mov rsi, qword [rsp + 0x78]
jmp 0x1801af1cc
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor edx, edx
mov rcx, rax
cmp qword [rcx + 0x30], r13
je 0x1801aedc8
mov rsi, qword [rcx + 0x30]
test rsi, rsi
jne 0x1801aeda9
mov rsi, rdx
jmp 0x1801aeddd
mov rax, qword [rsi]
mov qword [rcx + 0x30], rax
test rax, rax
jne 0x1801aedb9
mov qword [rcx + 0x38], rdx
movabs rax, 0xfefefefefefefefe
mov qword [rsi], rax
jmp 0x1801aeddd
mov rcx, qword [rcx + 0x28]
mov edx, 0x80
lea r8d, [rdx - 0x70]
call fcn.180243b70
mov rsi, rax
test rsi, rsi
je 0x1801aef72
mov r8d, dword [rsp + 0x388]
xor eax, eax
mov r9d, r15d
mov edx, ebx
mov rcx, rsi
mov qword [rsi], 0xffffffffffffffff
mov qword [rsi + 8], 0xffffffffffffffff
mov dword [rsi + 0x10], eax
mov dword [rsi + 0x20], eax
mov dword [rsi + 0x30], 0xffffffff
mov dword [rsi + 0x78], eax
mov qword [rsi + 0x18], rax
mov word [rsi + 0x7c], ax
mov qword [rsi + 0x28], rax
mov word [rsi + 0x7e], ax
mov dword [rsi + 0x38], eax
mov dword [rsi + 0x3c], eax
mov dword [rsi + 0x40], eax
mov qword [rsi + 0x48], 0xffffffffffffffff
mov dword [rsi + 0x50], eax
mov dword [rsi + 0x68], eax
mov qword [rsi + 0x70], rax
mov byte [rsp + 0x20], al
call fcn.180193d40
mov ebx, eax
test eax, eax
js 0x1801aee6d
mov eax, dword [rdi + 0x68]
xor r15d, r15d
mov r13, rsi
mov dword [rsi + 0x68], eax
mov rax, qword [rdi + 0x70]
mov ebx, r15d
mov qword [rsi + 0x70], rax
jmp 0x1801aef7f
cmp word [rsi + 0x7c], r13w
je 0x1801aeeca
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801aee86
xor r15d, r15d
mov rax, r15
jmp 0x1801aee8f
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor r15d, r15d
movzx ecx, word [rsi + 0x7c]
cmp ecx, dword [rax + 0x250]
ja 0x1801aeebf
mov r8, qword [rsi + 0x18]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1801aeebf
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rsi + 0x7c], r15w
mov qword [rsi + 0x18], r15
jmp 0x1801aeecd
xor r15d, r15d
cmp word [rsi + 0x7e], r13w
je 0x1801aef22
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801aeee3
mov rax, r15
jmp 0x1801aeee9
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rsi + 0x7e]
cmp ecx, dword [rax + 0x250]
ja 0x1801aef19
mov r8, qword [rsi + 0x28]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1801aef19
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rsi + 0x7e], r15w
mov qword [rsi + 0x28], r15
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1801aef7f
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r15, rax
test rax, rax
je 0x1801aef7c
mov edx, 0xfe
mov rcx, rsi
lea r8d, [rdx - 0x7e]
call fcn.18024adb8
xor eax, eax
mov qword [rsi], rax
mov rax, qword [r15 + 0x38]
test rax, rax
je 0x1801aef65
mov qword [rax], rsi
mov qword [r15 + 0x38], rsi
xor r15d, r15d
jmp 0x1801aef7f
mov qword [r15 + 0x30], rsi
mov qword [r15 + 0x38], rsi
xor r15d, r15d
jmp 0x1801aef7f
mov ebx, 0x8007000e
xor r15d, r15d
jmp 0x1801aef7f
xor r15d, r15d
test ebx, ebx
js 0x1801afc91
test ebp, ebp
je 0x1801aefe2
mov r9d, ebp
mov r10d, ebp
mov r8, r15
mov r11d, ebp
imul r9d, dword [rsp + 0x120]
imul r10d, dword [rsp + 0x124]
nop dword [rax]
mov rax, qword [rdi + 0x28]
mov rcx, qword [r13 + 0x28]
add r8, 8
mov rax, qword [r8 + rax - 8]
mov qword [rcx + r10*8], rax
mov rax, qword [r14 + 0x28]
mov rcx, qword [r13 + 0x28]
mov rax, qword [r8 + rax - 8]
inc r10d
mov qword [rcx + r9*8], rax
inc r9d
sub r11, 1
jne 0x1801aefb0
mov r8d, dword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
mov rcx, qword [r13 + 0x18]
shl r8, 3
call sub.msvcrt.dll_memcpy
mov dword [rdi + 0x78], r15d
mov dword [rdi + 0x10], r15d
mov dword [rdi + 0x20], r15d
mov dword [r14 + 0x78], r15d
mov dword [r14 + 0x10], r15d
mov dword [r14 + 0x20], r15d
mov rax, qword [rdi]
mov esi, dword [rdi + 0x30]
mov qword [r13], rax
mov rax, qword [rdi]
test rax, rax
je 0x1801af027
mov qword [rax + 8], r13
jmp 0x1801af02c
mov qword [r12 + 0x20], r13
mov qword [r13 + 8], rdi
mov rax, qword [rdi + 8]
mov qword [rdi], r13
test rax, rax
je 0x1801af041
mov qword [rax], r13
jmp 0x1801af046
mov qword [r12 + 0x18], r13
mov rcx, qword [rdi]
test rcx, rcx
je 0x1801af058
mov rax, qword [rdi + 8]
mov qword [rcx + 8], rax
jmp 0x1801af061
mov rax, qword [rdi + 8]
mov qword [r12 + 0x20], rax
mov qword [rdi], 0xffffffffffffffff
mov qword [rdi + 8], 0xffffffffffffffff
cmp word [rdi + 0x7c], 0
je 0x1801af0c5
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801af086
mov rax, r15
jmp 0x1801af08c
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rdi + 0x7c]
cmp ecx, dword [rax + 0x250]
ja 0x1801af0bc
mov r8, qword [rdi + 0x18]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1801af0bc
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rdi + 0x7c], r15w
mov qword [rdi + 0x18], r15
cmp word [rdi + 0x7e], 0
je 0x1801af11a
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801af0db
mov rax, r15
jmp 0x1801af0e1
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rdi + 0x7e]
cmp ecx, dword [rax + 0x250]
ja 0x1801af111
mov r8, qword [rdi + 0x28]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1801af111
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rdi + 0x7e], r15w
mov qword [rdi + 0x28], r15
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1801af15c
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rax, rax
je 0x1801af15c
mov edx, 0xfe
mov rcx, rdi
lea r8d, [rdx - 0x7e]
call fcn.18024adb8
mov qword [rdi], r15
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x1801af154
mov qword [rax], rdi
jmp 0x1801af158
mov qword [rbx + 0x30], rdi
mov qword [rbx + 0x38], rdi
cmp dword [r13 + 0x30], 0xffffffff
je 0x1801af16a
mov ebx, 0x80004005
jmp 0x1801af177
mov dword [r13 + 0x30], esi
or dword [r12 + 0x28], 6
mov ebx, r15d
test ebx, ebx
js 0x1801afc89
mov rsi, qword [rsp + 0x78]
mov rcx, r12
cmp rdi, rsi
cmove rsi, r13
mov qword [rsp + 0x78], rsi
call fcn.1801b3770
mov ebx, eax
test eax, eax
js 0x1801afc81
mov r15, qword [rsp + 0x50]
mov byte [rsp + 0x388], 1
mov qword [rsp + 0x88], rsi
jmp 0x1801af1cc
mov rsi, qword [rsp + 0x78]
jmp 0x1801af1cc
mov rsi, qword [rsp + 0x78]
jmp 0x1801af1cc
mov rsi, qword [rsp + 0x78]
mov eax, dword [r15 + 0x78]
and eax, 0xfff00000
cmp eax, 0x51a00000
je 0x1801af1fc
cmp eax, 0x51b00000
je 0x1801af1fc
cmp eax, 0x51c00000
je 0x1801af1fc
cmp eax, 0x51f00000
je 0x1801af1fc
cmp eax, 0x52000000
jne 0x1801afb1a
cmp eax, 0x51a00000
je 0x1801afb34
mov r13, qword [rsi]
test r13, r13
je 0x1801afb68
nop word [rax + rax]
mov ecx, dword [r13 + 0x30]
cmp ecx, dword [rsp + 0x58]
ja 0x1801afb4e
cmp r15, r13
je 0x1801af5df
mov eax, dword [r13 + 0x78]
xor eax, dword [r15 + 0x78]
test eax, 0xfff00000
jne 0x1801af5df
cmp dword [r15 + 0x30], ecx
jbe 0x1801af258
mov rdi, r15
mov rbp, r13
jmp 0x1801af25e
mov rbp, r15
mov rdi, r13
mov eax, dword [rbp + 0x78]
mov r15d, dword [rdi + 0x78]
and eax, 0xfffff
and r15d, 0xfffff
mov dword [rsp + 0x398], eax
add eax, r15d
mov dword [rsp + 0x80], eax
cmp eax, 4
ja 0x1801af5da
mov rax, qword [rbp + 0x28]
mov rcx, qword [rax]
mov rax, qword [rdi + 0x28]
mov rdx, qword [rax]
mov rax, qword [rcx + 0xd0]
cmp qword [rdx + 0xd0], rax
jne 0x1801af5be
movzx eax, byte [rcx + 0xd8]
cmp byte [rdx + 0xd8], al
jne 0x1801af5c5
cmp rdi, 0xffffffffffffffff
je 0x1801afc64
lea rax, [rsp + 0xf0]
lea r8, [rsp + 0x210]
lea rdx, [rsp + 0x2e8]
xor r9d, r9d
xor ecx, ecx
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rax
call fcn.180197cf0
mov ebx, eax
test eax, eax
js 0x1801afc79
cmp rbp, 0xffffffffffffffff
je 0x1801afc57
lea rax, [rsp + 0xa8]
lea r8, [rsp + 0x1c8]
lea rdx, [rsp + 0x2c0]
xor r9d, r9d
xor ecx, ecx
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rax
call fcn.180197cf0
mov ebx, eax
test eax, eax
js 0x1801afc71
mov rax, qword [rsp + 0x50]
mov edx, dword [rax + 0x78]
and edx, 0xfff00000
cmp edx, 0x51a00000
je 0x1801af390
cmp edx, 0x51b00000
je 0x1801af390
cmp edx, 0x51c00000
je 0x1801af390
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rax + 0xa8]
mov rax, qword [rsp + 0xf0]
cmp qword [rax + 0xa8], rcx
je 0x1801af3a6
mov r15, qword [rsp + 0x50]
jmp 0x1801af5df
mov rax, qword [rsp + 0xa8]
cmp rax, qword [rsp + 0xf0]
jne 0x1801af5d3
mov ecx, dword [rdi + 0x78]
xor ebx, ebx
mov eax, ecx
mov dword [rsp + 0xa0], ebx
mov r14, rbx
and eax, 0xfff00000
cmp eax, 0x51c00000
je 0x1801af3ca
cmp eax, 0x52000000
jne 0x1801af407
mov rax, qword [rsp + 0x2e8]
cmp qword [rsp + 0x2c0], rax
jne 0x1801af5b0
mov eax, dword [rsp + 0x210]
cmp dword [rsp + 0x1c8], eax
jne 0x1801af5a9
mov r10d, 1
mov dword [rsp + 0xa0], r10d
mov r14, r10
jmp 0x1801af40d
mov r10d, 1
mov rax, qword [rsp + r14*8 + 0x2e8]
cmp qword [rsp + r14*8 + 0x2c0], rax
jne 0x1801af5cc
mov r8d, dword [rsp + r14*4 + 0x210]
mov r9d, dword [rsp + r14*4 + 0x1c8]
and ecx, 0xfffff
lea eax, [r8 + rcx*4]
cmp r9d, eax
jne 0x1801af44d
mov cl, 1
mov byte [rsp + 0x390], cl
jmp 0x1801af46b
mov eax, dword [rbp + 0x78]
and eax, 0xfffff
lea eax, [r9 + rax*4]
cmp r8d, eax
jne 0x1801af5b7
xor cl, cl
mov byte [rsp + 0x390], cl
cmp edx, 0x51a00000
je 0x1801af487
cmp edx, 0x51b00000
je 0x1801af487
cmp edx, 0x51c00000
je 0x1801af487
xor al, al
jmp 0x1801af489
mov al, 1
test al, al
mov esi, r10d
mov eax, 5
cmovne esi, eax
test cl, cl
je 0x1801af4e7
mov rax, qword [rdi + 0x18]
mov ecx, esi
lea rbx, [r15*8]
imul ecx, r15d
lea rdx, [rax + rcx*8]
lea rcx, [rsp + 0x100]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r8d, dword [rsp + 0x398]
mov rax, qword [rbp + 0x18]
imul esi, r8d
lea rcx, [rsp + rbx + 0x100]
lea rdx, [rax + rsi*8]
shl r8, 3
call sub.msvcrt.dll_memcpy
jmp 0x1801af535
mov r8d, dword [rsp + 0x398]
mov rax, qword [rbp + 0x18]
mov ecx, esi
lea rbx, [r8*8]
imul ecx, r8d
lea rdx, [rax + rcx*8]
lea rcx, [rsp + 0x100]
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rax, qword [rdi + 0x18]
mov r8d, r15d
imul esi, r15d
lea rcx, [rsp + rbx + 0x100]
lea rdx, [rax + rsi*8]
shl r8, 3
call sub.msvcrt.dll_memcpy
movsxd rsi, dword [rsp + 0x80]
xor ebx, ebx
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xe8], rbx
test esi, esi
je 0x1801af609
lea rax, [rsp + 0xe0]
lea rdx, [rsp + 0x100]
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], 0xffffffff
mov qword [rsp + 0x30], rbx
mov r8d, esi
mov rcx, r12
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rbx
call fcn.1801e98b0
test al, al
jne 0x1801af609
lea rcx, [rsp + 0xe0]
call fcn.1800c5e00
mov r15, qword [rsp + 0x50]
jmp 0x1801af5df
mov r15, qword [rsp + 0x50]
jmp 0x1801af5df
mov r15, qword [rsp + 0x50]
jmp 0x1801af5df
mov r15, qword [rsp + 0x50]
jmp 0x1801af5df
mov r15, qword [rsp + 0x50]
jmp 0x1801af5df
mov r15, qword [rsp + 0x50]
jmp 0x1801af5df
mov r15, qword [rsp + 0x50]
jmp 0x1801af5df
mov r15, qword [rsp + 0x50]
jmp 0x1801af5df
mov r15, qword [rsp + 0x50]
mov r13, qword [r13]
test r13, r13
jne 0x1801af220
movzx esi, byte [rsp + 0x388]
mov r13d, 1
movabs r8, 0x18044211008
jmp 0x1801afb80
mov r9d, dword [rbp + 0x78]
mov eax, dword [rbp + 0x10]
xor edx, edx
mov ecx, r9d
and r9d, 0xfff00000
mov r8d, esi
and ecx, 0xfffff
xor r8d, r9d
mov r13d, 1
div ecx
mov ecx, esi
and r8d, 0xfffff
xor r8d, r9d
lea rdx, [rsp + 0x88]
mov r9, rbp
imul ecx, eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], ecx
mov rcx, r12
call fcn.18019f360
mov ebx, eax
test eax, eax
js 0x1801afc45
mov edx, dword [rdi + 0x78]
mov eax, edx
and eax, 0xfff00000
cmp eax, 0x51a00000
je 0x1801af6f7
cmp eax, 0x51b00000
je 0x1801af6f7
cmp eax, 0x51c00000
je 0x1801af6f7
cmp dword [rsp + 0xa0], 0
je 0x1801af6c5
movzx ebx, byte [rsp + 0x390]
mov rax, qword [rsp + 0x2c0]
test bl, bl
cmovne rax, qword [rsp + 0x2e8]
mov qword [rsp + 0x60], rax
jmp 0x1801af6d5
mov bl, byte [rsp + 0x390]
mov qword [rsp + 0x60], 0xffffffffffffffff
test bl, bl
je 0x1801af6e8
mov rdx, qword [rsp + r14*8 + 0x2e8]
mov qword [rsp + 0x50], rdx
jmp 0x1801af767
mov rdx, qword [rsp + r14*8 + 0x2c0]
mov qword [rsp + 0x50], rdx
jmp 0x1801af767
mov bl, byte [rsp + 0x390]
test bl, bl
je 0x1801af71b
mov eax, edx
and eax, 0xfffff
lea ecx, [rax + rax]
mov rax, qword [rdi + 0x18]
mov rax, qword [rax + rcx*8]
mov qword [rsp + 0x60], rax
jmp 0x1801af733
mov eax, dword [rbp + 0x78]
and eax, 0xfffff
lea ecx, [rax + rax]
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + rcx*8]
mov qword [rsp + 0x60], rax
test bl, bl
je 0x1801af74f
mov rax, qword [rdi + 0x18]
and edx, 0xfffff
lea ecx, [rdx + rdx*2]
mov rax, qword [rax + rcx*8]
mov qword [rsp + 0x50], rax
jmp 0x1801af767
mov eax, dword [rbp + 0x78]
and eax, 0xfffff
lea ecx, [rax + rax*2]
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + rcx*8]
mov qword [rsp + 0x50], rax
movsxd rcx, dword [rsp + 0x398]
xor r11d, r11d
mov r14, rsi
mov rsi, qword [rsp + 0x88]
lea eax, [rcx + r15]
movsxd r9, r15d
mov r8d, r11d
mov dword [rsp + 0x388], r11d
mov r13, r11
mov r10, rcx
test eax, eax
je 0x1801afa2e
neg r10
mov dword [rsp + 0x58], r11d
neg r9
shl r10, 3
lea r11, [r14*8]
shl r9, 3
mov qword [rsp + 0x88], r9
mov qword [rsp + 0xa0], r11
mov qword [rsp + 0xb8], r10
mov eax, dword [rdi + 0x78]
and eax, 0xfff00000
cmp eax, 0x51a00000
je 0x1801af956
cmp eax, 0x51b00000
je 0x1801af956
cmp eax, 0x51c00000
je 0x1801af956
or rdx, 0xffffffffffffffff
mov qword [rsp + 0x90], rdx
test bl, bl
je 0x1801af86b
cmp r8d, r15d
jae 0x1801af818
mov rax, qword [rdi + 0x18]
mov rcx, qword [rax + r13*8]
jmp 0x1801af878
mov rax, qword [rbp + 0x18]
lea r8, [rsp + 0x90]
mov rcx, r12
mov rdx, qword [r9 + rax]
call fcn.18019f810
mov ebx, eax
test eax, eax
js 0x1801afc03
mov rdx, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x388]
mov r9, qword [rsp + 0x88]
mov r10, qword [rsp + 0xb8]
mov r11, qword [rsp + 0xa0]
mov bl, byte [rsp + 0x390]
jmp 0x1801af8d5
cmp r8d, ecx
jae 0x1801af884
mov rax, qword [rbp + 0x18]
mov rcx, qword [rax + r13*8]
cmp rcx, 0xffffffffffffffff
jne 0x1801af919
jmp 0x1801af8d5
mov rax, qword [rdi + 0x18]
lea r8, [rsp + 0x90]
mov rcx, r12
mov rdx, qword [r10 + rax]
call fcn.18019f810
mov ebx, eax
test eax, eax
js 0x1801afc1b
mov rdx, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x388]
mov r9, qword [rsp + 0x88]
mov r10, qword [rsp + 0xb8]
mov r11, qword [rsp + 0xa0]
mov bl, byte [rsp + 0x390]
mov rax, qword [rsi + 0x18]
mov rcx, qword [rax]
mov rax, qword [rcx + 0xb8]
mov qword [rdx + 0xb8], rax
mov eax, dword [rcx + 0xb0]
mov dword [rdx + 0xb0], eax
mov rax, qword [rcx + 0xc0]
mov qword [rdx + 0xc0], rax
mov eax, dword [rcx + 0xc8]
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov dword [rdx + 0xc8], ecx
mov rcx, rdx
mov rax, qword [rsi + 0x18]
mov qword [rax + r13*8], rcx
mov rcx, qword [rsi + 0x18]
mov rax, qword [rsp + r13*8 + 0x100]
mov qword [r11 + rcx], rax
mov eax, dword [rdi + 0x78]
and eax, 0xfffff
lea ecx, [rax + rax]
mov rax, qword [rdi + 0x18]
mov rdx, qword [rax + rcx*8]
mov rax, qword [rsi + 0x18]
lea rcx, [r13 + r14*2]
mov qword [rax + rcx*8], rdx
jmp 0x1801af9df
mov rax, qword [rsi + 0x18]
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x60]
mov qword [rax + r13*8], rcx
mov ecx, dword [rdi + 0x78]
mov rax, qword [rdi + 0x18]
and ecx, 0xfffff
mov rcx, qword [rax + rcx*8]
mov rax, qword [rsi + 0x18]
mov qword [r11 + rax], rcx
mov rax, qword [rsi + 0x18]
lea rcx, [r13 + r14*2]
mov qword [rax + rcx*8], rdx
mov rax, qword [rsi + 0x18]
mov rdx, qword [rsp + 0x50]
lea rcx, [r13 + r14*2]
add rcx, r14
mov qword [rax + rcx*8], rdx
mov ecx, dword [rdi + 0x78]
mov rax, qword [rdi + 0x18]
and ecx, 0xfffff
shl ecx, 2
mov rdx, qword [rax + rcx*8]
mov rax, qword [rsi + 0x18]
lea rcx, [r13 + r14*4]
mov qword [rax + rcx*8], rdx
mov rcx, qword [rsi + 0x18]
mov rax, qword [rsp + r13*8 + 0x100]
lea rdx, [r13 + r14*4]
add rdx, r14
mov qword [rcx + rdx*8], rax
add dword [rsp + 0x58], 4
mov ecx, dword [rsp + 0x398]
inc r8d
add r9, 8
add r10, 8
add r11, 8
inc r13
mov dword [rsp + 0x388], r8d
mov qword [rsp + 0x88], r9
mov qword [rsp + 0xb8], r10
mov qword [rsp + 0xa0], r11
cmp r8d, dword [rsp + 0x80]
jb 0x1801af7d0
xor r11d, r11d
mov eax, dword [rdi + 0x78]
and eax, 0xfff00000
cmp eax, 0x51a00000
je 0x1801afa4f
cmp eax, 0x51b00000
je 0x1801afa4f
cmp eax, 0x51c00000
je 0x1801afa4f
xor al, al
jmp 0x1801afa51
mov al, 1
mov rdx, qword [rbp + 0x18]
neg al
mov eax, dword [rbp + 0x78]
sbb ecx, ecx
and eax, 0xfffff
mov r13d, 1
add ecx, 2
mov r8d, r11d
imul eax, ecx
mov rcx, qword [rdx + rax*8]
mov dword [rbp + 0x78], 0x10000001
mov dword [rbp + 0x10], r13d
mov dword [rbp + 0x20], r13d
mov qword [rdx], rcx
mov rax, qword [rdi + 0x28]
mov rcx, qword [rsi + 0x28]
mov rax, qword [rax]
mov qword [rcx], rax
cmp dword [rsi + 0x20], 0
jbe 0x1801afabd
mov rdx, r11
nop dword [rax]
mov rax, qword [rsi + 0x28]
inc r8d
add rdx, 8
mov rcx, qword [rax + rdx - 8]
mov qword [rcx + 0x100], rsi
cmp r8d, dword [rsi + 0x20]
jb 0x1801afaa0
mov eax, dword [rdi + 0x30]
lea rdx, [rsp + 0xe0]
movzx r9d, r13b
mov dword [rsi + 0x30], eax
mov r8, rdi
mov rcx, r12
mov byte [rsp + 0x388], r13b
mov dword [rsp + 0x20], r13d
mov sil, r13b
call fcn.18019fb00
mov ebx, eax
test eax, eax
js 0x1801afc33
mov rax, qword [rsp + 0x78]
lea rcx, [rsp + 0xe0]
mov qword [rsp + 0x88], rax
call fcn.1800c5e00
movabs r8, 0x18044211008
jmp 0x1801afb80
mov sil, byte [rsp + 0x388]
mov r13d, 1
movabs r8, 0x18044211008
jmp 0x1801afb80
mov sil, byte [rsp + 0x388]
mov r13d, 1
movabs r8, 0x18044211008
jmp 0x1801afb80
mov sil, byte [rsp + 0x388]
mov r13d, 1
movabs r8, 0x18044211008
jmp 0x1801afb80
mov sil, byte [rsp + 0x388]
mov r13d, 1
movabs r8, 0x18044211008
mov rax, qword [rsp + 0x88]
mov r15, rax
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x1801ad390
test sil, sil
je 0x1801afbb4
mov rcx, r12
call fcn.1801a1590
mov ebx, eax
test eax, eax
je 0x1801afbb4
test eax, eax
js 0x1801afcdf
xor eax, eax
test sil, sil
mov ebx, eax
sete bl
jmp 0x1801afcdf
mov ebx, 0x80004005
mov r13d, 1
jmp 0x1801afcdf
mov ebx, 0x80004005
mov r13d, 1
jmp 0x1801afcdf
mov ebx, 0x80004005
mov r13d, 1
jmp 0x1801afcdf
mov ebx, 0x80004005
mov r13d, 1
jmp 0x1801afcdf
lea rcx, [rsp + 0xe0]
call fcn.1800c5e00
mov r13d, 1
jmp 0x1801afcdf
lea rcx, [rsp + 0xe0]
call fcn.1800c5e00
mov r13d, 1
jmp 0x1801afcdf
lea rcx, [rsp + 0xe0]
call fcn.1800c5e00
jmp 0x1801afcdf
lea rcx, [rsp + 0xe0]
call fcn.1800c5e00
jmp 0x1801afcdf
mov ebx, 0x80004005
mov r13d, 1
jmp 0x1801afcdf
mov ebx, 0x80004005
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
jmp 0x1801afcdf
mov r13d, 1
cmp qword [rsp + 0xf8], 0
mov eax, dword [rsp + 0xb0]
mov r15, qword [rsp + 0x338]
mov r14, qword [rsp + 0x340]
mov rdi, qword [rsp + 0x350]
mov rsi, qword [rsp + 0x358]
mov rbp, qword [rsp + 0x360]
lea rcx, [r12 + 0xd250]
je 0x1801afd42
mov rdx, qword [rcx]
test rax, rax
cmove rax, r13
cmp rax, qword [rdx + 8]
jae 0x1801afd37
sub qword [rdx + 8], rax
jmp 0x1801afd42
mov rax, qword [rdx]
mov qword [rcx], rax
call fcn.1800c56f0
lea rcx, [rsp + 0x68]
call fcn.1800c5e00
mov r13, qword [rsp + 0x348]
mov eax, ebx
mov rbx, qword [rsp + 0x368]
add rsp, 0x370
pop r12
ret