Function at 0x18028c380
Capabilities:
Check for time delay via gettickcount

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x50
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov rsi, rdx
mov rbp, rcx
cmp qword [rdx + 8], 0
je case.default.0x18028c4b9
xor edi, edi
mov dword [rdx + 0x60], edi
lea rax, [rdx + 0x20]
cmp qword [rdx + 0x38], 8
jb 0x18028c3b9
mov rax, qword [rdx + 0x20]
mov r9d, dword [rdx + 0x4c]
sub r9d, dword [rdx + 0x44]
mov r8d, dword [rdx + 0x48]
sub r8d, dword [rdx + 0x40]
mov qword [rsp + 0x20], rax
mov edx, dword [rdx + 0x14]
lea rcx, str.RCLoaderThread::ExecTask__d_____d__d_____s_n
call fcn.18000eee0
cmp byte [rsi + 0x18], dil
je 0x18028c497
mov rcx, qword [rsi + 0x58]
test rcx, rcx
je 0x18028c497
mov rax, qword [rcx]
lea rdx, [rsi + 0x20]
call qword [rax + 0x58]
cmp eax, 2
jne 0x18028c497
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
xor edx, edx
lea r8d, [rdx + 3]
call qword [rax + pe_nt_image_headers64]
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov edx, 1
lea r8d, [rdx + 2]
call qword [rax + pe_nt_image_headers64]
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov edx, 2
lea r8d, [rdx + 1]
call qword [rax + pe_nt_image_headers64]
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov edx, 3
mov r8d, edx
call qword [rax + pe_nt_image_headers64]
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov edx, 4
lea r8d, [rdx - 1]
call qword [rax + pe_nt_image_headers64]
mov rcx, qword [rsi + 0x58]
mov rax, qword [rcx]
mov r8d, 1
mov rdx, rsi
call qword [rax + 8]
mov rcx, qword [rsi + 0x58]
mov rax, qword [rcx]
mov r8d, 2
mov rdx, rsi
call qword [rax + 8]
mov byte [rsi + 0x52], dil
movsxd rax, dword [rsi + 0x14]
cmp eax, 0xa
ja case.default.0x18028c4b9
lea rdx, [0x180000000]
mov ecx, dword [rdx + rax*4 + 0x28c7d8]
add rcx, rdx
jmp rcx
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x150]
mov rdi, rax
mov qword [rsp + 0x98], rax
test rax, rax
je 0x18028c4e3
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx]
nop
test rdi, rdi
je 0x18028c5ac
lea r9, [rsi + 0x40]
mov rdx, qword [rsi + 8]
mov rcx, rbp
call fcn.18028f130
mov rbx, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x18028c512
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx]
nop
movzx eax, byte [rbp + 0x50]
test rbx, rbx
je 0x18028c589
test al, al
je 0x18028c53d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
mov rax, qword [rdi]
mov rcx, rdi
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
jmp qword [rax + 8]
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov dl, 1
call qword [rax + 0x188]
mov rcx, qword [rsi + 0x58]
test rcx, rcx
je 0x18028c59d
mov rax, qword [rcx]
mov rdx, qword [rsi + 8]
call qword [rax + 0x20]
test al, al
je 0x18028c59d
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov r8d, 3
mov rdx, rbx
call qword [rax + 0x160]
mov rcx, qword [rsi + 0x58]
mov rax, qword [rcx]
mov rdx, qword [rsi + 8]
call qword [rax + 0x18]
jmp 0x18028c59d
test al, al
jne 0x18028c59d
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x188]
nop
test rbx, rbx
je 0x18028c5ac
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
test rdi, rdi
je case.default.0x18028c4b9
mov rax, qword [rdi]
mov rcx, rdi
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
jmp qword [rax + 8]
cmp qword [rsi + 8], rdi
je case.default.0x18028c4b9
mov qword [rsp + 0x88], rdi
lea r9, [rsp + 0x88]
mov r8d, 2
mov rdx, rsi
call fcn.18028f280
test al, al
je 0x18028c62b
mov qword [rsp + 0x90], rdi
lea r9, [rsp + 0x90]
mov r8d, 1
mov rdx, rsi
call fcn.18028f280
test al, al
jne 0x18028c64d
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x18028c62b
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je case.default.0x18028c4b9
mov rax, qword [rcx]
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
jmp qword [rax + 8]
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x150]
mov r14, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x18028c672
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx]
nop
mov rcx, qword [rsi + 8]
mov rdx, qword [rcx]
call qword [rdx + 0x100]
test al, al
jne 0x18028c6bc
test r14, r14
je 0x18028c699
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x118]
cmp eax, 1
je 0x18028c6bc
mov rdi, qword [rsp + 0x90]
mov r9, rdi
mov rbx, qword [rsp + 0x88]
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
call fcn.180290920
jmp 0x18028c6f3
mov rdi, qword [rsp + 0x90]
mov r9, rdi
mov rbx, qword [rsp + 0x88]
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
call fcn.18028ffc0
test al, al
jne 0x18028c6f3
mov r9, rdi
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
call fcn.180290920
nop
test r14, r14
je 0x18028c702
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 8]
nop
test rdi, rdi
je 0x18028c711
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
nop
test rbx, rbx
je case.default.0x18028c4b9
mov rax, qword [rbx]
mov rcx, rbx
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
jmp qword [rax + 8]
mov r8d, dword [rsi + 0x10]
test r8b, 0x40
jne case.0x18028c4b9.9
mov rdx, rsi
mov rcx, rbp
test r8b, 8
jne 0x18028c787
call fcn.18028d060
cmp byte [rsi + 0x18], dil
je case.default.0x18028c4b9
mov rdx, rsi
mov rcx, rbp
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x18028feb0
mov r8d, dword [rsi + 0x10]
mov rdx, rsi
mov rcx, rbp
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x18028d9f0
mov r8d, dword [rsi + 0x10]
mov rdx, rsi
mov rcx, rbp
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x180290e10
mov rdx, rsi
mov rcx, rbp
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x180291170
mov rdx, rsi
mov rcx, rbp
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x18028f4e0
mov rdx, rsi
mov rcx, rbp
call fcn.18028e7a0
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
push rbx
push rsi
push rdi
push r14
push r15
sub rsp, 0xa0
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov rax, qword [0x1804ca010]
xor rax, rsp
mov qword [rsp + 0x98], rax
mov ebx, r8d
mov rsi, rdx
mov r14, rcx
mov rcx, qword [rdx + 8]
mov rax, qword [rcx]
lea rdx, [rsp + 0x78]
call qword [rax + 0x1b8]
nop
mov dword [rsp + 0x50], 0xffffffff
xor r15d, r15d
mov qword [rsp + 0x54], r15
mov eax, 1
mov word [rsp + 0x5c], ax
mov edi, r15d
mov dword [rsp + 0x48], r15d
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
call qword [rax + 0x38]
cmp eax, 0x22
jne 0x18028da78
test bl, 8
je 0x18028da78
and ebx, 0xfffffffe
mov edi, 6
mov dword [rsp + 0x48], edi
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsi + 0x60], eax
mov qword [rsp + 0x40], r15
mov rcx, qword [r14 + 0x48]
mov rax, qword [rcx]
and ebx, 0xfffffffb
mov qword [rsp + 0x30], rsi
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], ebx
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x78]
xor edx, edx
call qword [rax + 0x20]
test al, al
jne 0x18028db31
lea rcx, [rsp + 0x40]
call fcn.180005530
nop
mov rdx, qword [rsp + 0x90]
cmp rdx, 8
jb 0x18028db12
lea rdx, [rdx*2 + 2]
mov qword [rsp + 0x60], rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18028db0d
add rdx, 0x27
mov qword [rsp + 0x60], rdx
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18028db0d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.180385c70
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x90], 7
mov word [rsp + 0x78], r15w
jmp 0x18028dbef
movzx eax, word [rsp + 0x5c]
mov word [rsp + 0x20], ax
xor r9d, r9d
mov r8, qword [rsp + 0x40]
mov rdx, rsi
call fcn.18028f3f0
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov r8d, 2
mov edx, edi
call qword [rax + pe_nt_image_headers64]
mov byte [rsp + 0x20], 1
mov r9d, edi
mov r8, qword [rsp + 0x40]
mov rdx, rsi
mov rcx, r14
call fcn.18028f330
nop
lea rcx, [rsp + 0x40]
call fcn.180005530
nop
mov rdx, qword [rsp + 0x90]
cmp rdx, 8
jb 0x18028dbd5
lea rdx, [rdx*2 + 2]
mov qword [rsp + 0x68], rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18028dbd0
add rdx, 0x27
mov qword [rsp + 0x68], rdx
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18028dbd0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.180385c70
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x90], 7
mov word [rsp + 0x78], r15w
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.180385c10
add rsp, 0xa0
pop r15
pop r14
pop rdi
pop rsi
pop rbx
ret
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x120]
sub rsp, 0x220
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x270], rbx
mov rax, qword [0x1804ca010]
xor rax, rsp
mov qword [rbp + 0x110], rax
mov r15, rdx
mov r13, rcx
xor r12d, r12d
mov dword [rsp + 0x20], r12d
cmp qword [rdx + 8], r12
je 0x18028fd42
cmp qword [rcx + 0x48], r12
je 0x18028fd42
cmp qword [rcx + 0x60], r12
je 0x18028fd42
mov rax, qword [rcx + 0x78]
test rax, rax
jne 0x18028f6a7
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
lea rdx, [rsp + 0x78]
lea ecx, [rax + 0x1a]
call fcn.1801fcfb0
test al, al
je 0x18028f644
cmp qword [rbp - 0x78], 3
jb 0x18028f644
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], r12
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], 7
mov word [rbp - 0x60], r12w
mov r8d, 3
cmp qword [rbp - 0x78], r8
cmovb r8, qword [rbp - 0x78]
lea rdx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rdx, qword [rsp + 0x78]
lea rcx, [rbp - 0x60]
call fcn.180004e70
mov ebx, 1
mov dword [rsp + 0x20], ebx
lea rcx, [rsp + 0x78]
call fcn.180004df0
movups xmm0, xmmword [rbp - 0x60]
movups xmmword [rsp + 0x78], xmm0
movups xmm1, xmmword [rbp - 0x50]
movups xmmword [rbp - 0x78], xmm1
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], 7
mov word [rbp - 0x60], r12w
and ebx, 0xfffffffe
mov dword [rsp + 0x20], ebx
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], 7
mov word [rbp - 0x60], r12w
movups xmm2, xmmword [r13 + 0x68]
movups xmm3, xmmword [r13 + 0x78]
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [r13 + 0x68], xmm0
movups xmm1, xmmword [rbp - 0x78]
movups xmmword [r13 + 0x78], xmm1
movups xmmword [rsp + 0x78], xmm2
movups xmmword [rbp - 0x78], xmm3
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x18028f688
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18028f683
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18028f683
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180385c70
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
mov rax, qword [r13 + 0x78]
test rax, rax
je 0x18028fd42
mov qword [rbp + 0xa0], r12
mov qword [rbp + 0xa8], r12
mov qword [rbp + 0xa0], r12
mov qword [rbp + 0xa8], 7
mov word [rbp + 0x90], r12w
mov qword [rbp + 0xc0], r12
mov qword [rbp + 0xc8], r12
mov qword [rbp + 0xc0], r12
mov qword [rbp + 0xc8], 7
mov word [rbp + 0xb0], r12w
mov qword [rbp + 0xe0], r12
mov qword [rbp + 0xe8], r12
mov qword [rbp + 0xe0], r12
mov qword [rbp + 0xe8], 7
mov word [rbp + 0xd0], r12w
lea rcx, [r13 + 0x68]
lea rdx, [rbp + 0x90]
call fcn.180214110
test al, al
je 0x18028f740
cmp qword [rbp + 0x100], 0x40000000
jb 0x18028f75e
mov qword [rsp + 0x30], r12
lea rdx, [r15 + 0x20]
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rcx, qword [r13 + 0x60]
call fcn.18026e120
test eax, eax
jne 0x18028f766
xor dil, dil
jmp 0x18028fd16
mov qword [rbp + 0x20], r12
mov qword [rbp + 0x28], r12
mov qword [rbp + 0x20], r12
mov qword [rbp + 0x28], 7
mov word [rbp + 0x10], r12w
mov rdi, qword [r15 + 8]
test rdi, rdi
je 0x18028fd09
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x48], r12
mov qword [rbp + 0x50], r12
mov qword [rbp + 0x58], r12
mov qword [rbp + 0x60], r12
mov qword [rbp + 0x78], r12
mov qword [rbp + 0x80], r12
mov qword [rbp + 0x78], r12
mov qword [rbp + 0x80], 7
mov word [rbp + 0x68], r12w
mov rax, qword [rdi]
lea rdx, [rbp - 0x60]
mov rcx, rdi
call qword [rax + 0xc0]
mov rbx, rax
mov qword [rsp + 0x28], r12
mov ecx, 8
call fcn.180385c34
mov qword [rsp + 0x38], rax
mov qword [rax], 0xffffffffffffffff
mov qword [rsp + 0x28], rax
lea r8, [rbp + 0x40]
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.18015e7f0
movzx esi, al
mov rbx, qword [rsp + 0x28]
test rbx, rbx
je 0x18028f837
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x18028f82a
call qword [sym.imp.KERNEL32.dll_FindClose]
test eax, eax
je 0x18028f82a
mov qword [rbx], 0xffffffffffffffff
mov edx, 8
mov rcx, rbx
call fcn.180385c70
mov qword [rsp + 0x28], r12
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x18028f87f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18028f87a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18028f87a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180385c70
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], 7
mov word [rbp - 0x60], r12w
test sil, sil
je 0x18028fd00
mov rcx, qword [rbp + 0x58]
shr rcx, 0x20
shl rcx, 0x20
mov eax, dword [rbp + 0x58]
add rcx, rax
mov qword [rbp - 8], rcx
mov rax, qword [rbp + 0x40]
mov qword [rbp + 8], rax
mov rax, qword [rdi]
lea rdx, [rbp - 0x40]
mov rcx, rdi
call qword [rax + 0xc0]
nop
mov rdx, rax
lea rcx, [rbp + 0x10]
call fcn.1800049b0
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 8
jb 0x18028f918
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18028f913
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18028f913
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180385c70
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x28], 7
mov word [rbp - 0x40], r12w
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x68]
mov qword [rbp + 0x30], rax
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x38]
mov dword [rbp], eax
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0xc8]
mov dword [rbp - 0x10], eax
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0xd0]
mov dword [rbp - 0xc], eax
lea rcx, [rbp + 0x68]
call fcn.180004df0
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x30], rax
mov rcx, qword [r15 + 8]
mov rax, qword [rcx]
mov edx, 2
call qword [rax + 0x158]
mov rsi, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x18028f99a
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx]
nop
test rsi, rsi
jne 0x18028f9a7
xor dil, dil
jmp 0x18028fcf0
mov rcx, qword [r15 + 8]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x150]
mov r14, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x18028f9cc
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx]
nop
test r14, r14
jne 0x18028f9d9
xor dil, dil
jmp 0x18028fce1
mov rbx, r12
mov qword [rsp + 0x30], rbx
mov rdx, qword [r15 + 8]
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x60], xmm0
test rdx, rdx
je 0x18028fa01
lea r8, [rbp - 0x60]
lea rcx, [rbp - 0x40]
call fcn.18028fd70
jmp 0x18028fa0a
movdqa xmmword [rbp - 0x40], xmm0
lea rax, [rbp - 0x40]
mov rdx, rax
lea rcx, [rbp - 0x20]
call qword [sym.imp.USER32.dll_CopyRect]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x80]
mov edi, eax
mov rdx, qword [r14]
mov rcx, r14
call qword [rdx + 0x88]
mov edx, dword [rbp - 0x18]
sub edx, dword [rbp - 0x20]
cmp edi, edx
jl 0x18028fccf
mov ecx, dword [rbp - 0x14]
sub ecx, dword [rbp - 0x1c]
cmp eax, ecx
jl 0x18028fccf
cmp edi, edx
jne 0x18028fa66
cmp eax, ecx
jne 0x18028fa66
mov rcx, qword [r15 + 8]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x158]
jmp 0x18028fa76
lea r9, [rbp - 0x20]
mov rdx, qword [r15 + 8]
mov rcx, r13
call fcn.18028f130
test rax, rax
mov rdi, rax
je 0x18028fccf
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx]
mov rbx, rdi
mov qword [rsp + 0x30], rbx
test rbx, rbx
je 0x18028fccf
mov rcx, qword [r15 + 8]
mov rax, qword [rcx]
call qword [rax + 0x38]
mov r12d, eax
mov rcx, qword [r15 + 8]
mov rdx, qword [rcx]
call qword [rdx + 0xf0]
test al, al
je 0x18028fb4b
mov rcx, qword [r15 + 8]
mov rdx, qword [rcx]
call qword [rdx + 0x118]
movzx edi, ax
cmp r12d, 2
jne 0x18028fb23
mov r9, qword [rsi]
mov r8b, 1
movzx edx, ax
mov rcx, rsi
call qword [r9 + 0x128]
mov r9, qword [rbx]
mov r8b, 1
movzx edx, di
mov rcx, rbx
call qword [r9 + 0x128]
test al, al
je 0x18028fb87
mov r8d, dword [rbp - 0x10]
mov edx, r8d
mov ecx, dword [rbp - 0xc]
movzx eax, di
add eax, 0xfffffffb
cmp eax, 3
ja 0x18028fb43
mov edx, ecx
mov ecx, r8d
mov dword [rbp - 0x10], edx
mov dword [rbp - 0xc], ecx
jmp 0x18028fb87
cmp r12d, 0x22
jne 0x18028fb87
mov r8d, dword [rbp - 0x10]
mov edx, r8d
mov ecx, dword [rbp - 0xc]
movzx eax, di
add eax, 0xfffffffb
cmp eax, 3
ja 0x18028fb43
mov edx, ecx
mov ecx, r8d
mov dword [rbp - 0x10], edx
mov dword [rbp - 0xc], ecx
jmp 0x18028fb87
cmp r12d, 0x22
jne 0x18028fb87
mov rcx, qword [r15 + 8]
mov rax, qword [rcx]
call qword [rax + 0x118]
movzx edi, ax
mov r9, qword [rsi]
mov r8b, 1
movzx edx, ax
mov rcx, rsi
call qword [r9 + 0x128]
mov r9, qword [rbx]
mov r8b, 1
movzx edx, di
mov rcx, rbx
call qword [r9 + 0x128]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
movdqu xmmword [rsp + 0x50], xmm0
movdqu xmmword [rsp + 0x60], xmm0
mov ecx, 0x18
call fcn.180385c34
mov qword [rbp - 0x40], rax
lea rcx, vtable.RC::IImageBuffer.0
mov qword [rax], rcx
lea rdi, vtable.RC::RCImageBuffer.0
mov qword [rax], rdi
xor ecx, ecx
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rcx
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1800a87b0
mov ecx, 0x28
call fcn.180385c34
mov qword [rbp - 0x40], rax
lea rcx, vtable.RC::IImageBuffer.0
mov qword [rax], rcx
mov qword [rax], rdi
xor ecx, ecx
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rcx
lea rdx, vtable.RC::RCExifBuffer.0
mov qword [rax], rdx
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], rcx
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.1800a8840
mov ecx, 0x18
call fcn.180385c34
mov qword [rbp - 0x40], rax
lea rcx, vtable.RC::IImageBuffer.0
mov qword [rax], rcx
mov qword [rax], rdi
xor ecx, ecx
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rcx
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.1800a87b0
cmp r12d, 0xd
je 0x18028fc5d
cmp r12d, 0x14
mov r8d, 2
jne 0x18028fc63
mov r8d, 0xd
mov rax, qword [rbx]
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call qword [rax + ILFree]
test al, al
je 0x18028fcc0
mov rcx, qword [r15 + 8]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x50]
call qword [rax + 0xb0]
test al, al
je 0x18028fcc0
mov rax, qword [rsi]
mov r8d, 2
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call qword [rax + ILFree]
test al, al
je 0x18028fcc0
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x10]
mov rcx, qword [r13 + 0x60]
call fcn.18026e990
movzx edi, al
jmp 0x18028fcc3
xor dil, dil
lea rcx, [rsp + 0x40]
call fcn.18009f170
jmp 0x18028fcd2
xor dil, dil
test rbx, rbx
je 0x18028fce1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
test r14, r14
je 0x18028fcf0
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 8]
nop
test rsi, rsi
je 0x18028fd0c
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
jmp 0x18028fd0c
lea rcx, [rbp + 0x68]
call fcn.180004df0
xor dil, dil
lea rcx, [rbp + 0x10]
call fcn.180004df0
nop
lea rcx, [rbp + 0xd0]
call fcn.180004df0
nop
lea rcx, [rbp + 0xb0]
call fcn.180004df0
nop
lea rcx, [rbp + 0x90]
call fcn.180004df0
movzx eax, dil
jmp 0x18028fd44
xor al, al
mov rcx, qword [rbp + 0x110]
xor rcx, rsp
call fcn.180385c10
mov rbx, qword [rsp + 0x270]
add rsp, 0x220
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rax, rsp
push rdi
sub rsp, 0xb0
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x1804ca010]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov rdi, rdx
mov rsi, rcx
mov rbx, qword [rdx + 8]
mov qword [rsp + 0x28], rbx
test rbx, rbx
je 0x18028fefb
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
nop
test rbx, rbx
je 0x18028ff85
test byte [rdi + 0x10], 4
je 0x18028ff85
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax + 0x138]
cmp eax, 3
jne 0x18028ff85
mov rax, qword [rbx]
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, rbx
call qword [rax + pe_nt_image_headers64]
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.18028bf20
nop
mov eax, dword [rsp + 0x40]
and eax, 0xfffffffe
or eax, 4
mov dword [rsp + 0x40], eax
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.18028cc70
nop
lea rcx, [rsp + 0x50]
call fcn.180004df0
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x18028ff79
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rax, vtable.ILoadImageCallBack.0
mov qword [rsp + 0x30], rax
test rbx, rbx
je 0x18028ff93
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.180385c10
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xa0
mov qword [rbp + 7], 0xfffffffffffffffe
mov qword [rsp + 0xe8], rbx
mov rax, qword [0x1804ca010]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov r14d, r8d
mov rbx, rdx
mov rsi, rcx
cmp qword [rdx + 8], 0
je 0x18029113e
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax]
test al, al
jne 0x18029113e
cmp qword [rsi + 0x48], 0
je 0x18029113e
test r14b, 8
je 0x18029113e
cmp byte [rbx + 0x18], al
jne 0x180290e93
mov rdx, rbx
mov rcx, rsi
call fcn.18028c810
test al, al
jne 0x18029113e
mov byte [rbp - 0x29], 0
test r14b, 4
je 0x180290eac
lea r8, [rbp - 0x29]
mov rdx, rbx
mov rcx, rsi
call fcn.18028e400
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
mov edx, 2
call qword [rax + 0x138]
cmp eax, 2
jne 0x180290ed6
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x180290ed6
mov rax, qword [rcx]
mov rdx, qword [rbx + 8]
call qword [rax + 0x30]
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
lea rdx, [rbp + 0xf]
call qword [rax + 0xc0]
nop
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
mov edx, 6
call qword [rax + 0x138]
dec eax
xor r15d, r15d
cmp eax, 1
jbe 0x1802910e9
mov dword [rbp - 0x19], 0xffffffff
mov qword [rbp - 0x15], r15
mov r8d, 1
mov word [rbp - 0xd], r8w
mov rdi, qword [rbx + 8]
mov qword [rbp - 9], rdi
mov dword [rbp - 1], 6
mov byte [rbp + 3], r15b
mov rax, qword [rdi]
lea edx, [r15 + 6]
mov rcx, rdi
call qword [rax + pe_nt_image_headers64]
nop
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbx + 0x60], eax
mov qword [rbp - 0x21], r15
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
and r14d, 0xfffffffa
mov qword [rsp + 0x30], rbx
lea rdx, [rbp - 0x19]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], r14d
lea r9, [rbp - 0x21]
lea r8, [rbp + 0xf]
xor edx, edx
call qword [rax + 0x20]
test al, al
movzx eax, byte [rbx + 0x52]
jne 0x180290fc6
lea edx, [r15 + 6]
test al, al
jne 0x180290fcf
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
lea r8d, [r15 + 3]
call qword [rax + pe_nt_image_headers64]
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
xor edx, edx
lea r8d, [r15 + 3]
call qword [rax + pe_nt_image_headers64]
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x180290fe3
mov rax, qword [rcx]
lea r8d, [r15 + 0x10]
mov rdx, rbx
call qword [rax + 8]
jmp 0x180290fe3
test al, al
je 0x180291017
mov edx, 6
mov byte [rbp + 3], 1
mov rax, qword [rdi]
xor r8d, r8d
mov rcx, rdi
call qword [rax + pe_nt_image_headers64]
nop
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x180290ff3
mov rax, qword [rcx]
call qword [rax + 8]
nop
cmp byte [rbp + 3], 0
jne 0x1802910e9
mov rax, qword [rdi]
mov edx, 6
lea r8d, [rdx - 3]
mov rcx, rdi
call qword [rax + pe_nt_image_headers64]
jmp 0x1802910e9
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
call qword [rax + 0x38]
cmp eax, 0xffffffff
jne 0x180291033
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
mov edx, dword [rbp - 0x19]
call qword [rax + 0x40]
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
mov r8d, dword [rbp - 0x11]
mov edx, dword [rbp - 0x15]
call qword [rax + 0xd8]
movzx eax, word [rbp - 0xd]
mov word [rsp + 0x20], ax
mov r9b, 1
mov r8, qword [rbp - 0x21]
mov rdx, rbx
call fcn.18028f3f0
mov byte [rbp + 3], 1
mov rax, qword [rdi]
mov edx, 6
lea r8d, [rdx - 4]
mov rcx, rdi
call qword [rax + pe_nt_image_headers64]
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
xor edx, edx
lea r8d, [rdx + 2]
call qword [rax + pe_nt_image_headers64]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1802910d9
mov rax, qword [rcx]
mov r8d, 6
mov rdx, qword [rbp - 0x21]
call qword [rax + 0x160]
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
call qword [rax + 0x70]
test al, al
jne 0x1802910c0
mov rdx, rbx
mov rcx, rsi
call fcn.18028e210
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x1802910d9
mov rax, qword [rcx]
mov r8d, 0x10
mov rdx, rbx
call qword [rax + 8]
nop
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x1802910e9
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0x27]
cmp rdx, 8
jb 0x18029112c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xf]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180291127
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180291127
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180385c70
movdqa xmm0, xmmword [0x1803e6740]
movdqu xmmword [rbp + 0x1f], xmm0
mov word [rbp + 0xf], r15w
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.180385c10
mov rbx, qword [rsp + 0xe8]
add rsp, 0xa0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x180
mov qword [rax - 0xa8], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x1804ca010]
xor rax, rsp
mov qword [rsp + 0x170], rax
mov r12, rdx
mov rsi, rcx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0x90], rdx
cmp qword [rdx + 8], 0
je 0x180291930
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax]
test al, al
jne 0x180291930
cmp qword [rsi + 0x48], 0
je 0x180291930
mov ebx, dword [r12 + 0x10]
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x58], ebx
lea rdi, [rsi + 0x38]
mov qword [rsp + 0xb0], rdi
test rdi, rdi
je 0x180291216
mov rcx, qword [rdi]
test rcx, rcx
je 0x180291216
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov qword [rsi + 0x58], r12
test rdi, rdi
je 0x18029123a
mov rcx, qword [rdi]
test rcx, rcx
je 0x18029122d
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor r13d, r13d
mov qword [rsp + 0xb0], r13
jmp 0x18029123d
xor r13d, r13d
mov byte [rsp + 0x40], 0
test bl, 4
je 0x180291257
lea r8, [rsp + 0x40]
mov rdx, r12
mov rcx, rsi
call fcn.18028e400
mov rax, qword [r12]
mov rcx, r12
call qword [rax]
test al, al
je 0x18029129e
mov qword [rsp + 0x68], rdi
test rdi, rdi
je 0x18029127d
mov rcx, qword [rdi]
test rcx, rcx
je 0x18029127d
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov qword [rsi + 0x58], r13
test rdi, rdi
je 0x180291299
mov rcx, qword [rdi]
test rcx, rcx
je 0x180291294
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0x68], r13
jmp 0x180291930
test bl, 1
jne 0x180291303
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x138]
cmp eax, 2
je 0x1802912c9
mov r8d, ebx
mov rdx, r12
mov rcx, rsi
call fcn.18028e9b0
mov qword [rsp + 0x70], rdi
test rdi, rdi
je 0x1802912e2
mov rcx, qword [rdi]
test rcx, rcx
je 0x1802912e2
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov qword [rsi + 0x58], r13
test rdi, rdi
je 0x1802912fe
mov rcx, qword [rdi]
test rcx, rcx
je 0x1802912f9
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0x70], r13
jmp 0x180291930
mov rcx, qword [r12 + 0x58]
test rcx, rcx
je 0x180291394
mov rax, qword [rcx]
call qword [rax + 0x38]
test al, al
je 0x180291394
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x140], xmm0
mov rcx, qword [r12 + 0x58]
mov rax, qword [rcx]
lea r8, [rsp + 0x140]
mov rdx, qword [r12 + 8]
call qword [rax + 0x40]
test al, al
je 0x180291445
mov rcx, qword [r12 + 8]
test rcx, rcx
je 0x180291445
mov rax, qword [rcx]
lea rdx, [rsp + 0x140]
call qword [rax + 0x180]
test al, al
je 0x180291445
mov ecx, dword [rsp + 0x148]
sub ecx, dword [rsp + 0x140]
mov eax, dword [rsp + 0x14c]
sub eax, dword [rsp + 0x144]
cmp ecx, eax
cmovle ecx, eax
jmp 0x180291438
mov rdx, qword [r12 + 8]
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x160], xmm0
test rdx, rdx
je 0x1802913c1
lea r8, [rsp + 0x160]
lea rcx, [rsp + 0xf0]
call fcn.18028fd70
jmp 0x1802913d2
movdqa xmmword [rsp + 0xf0], xmm0
lea rax, [rsp + 0xf0]
mov rdx, rax
lea rcx, [rsp + 0x150]
call qword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [rsp + 0x158]
sub ecx, dword [rsp + 0x150]
mov eax, dword [rsp + 0x15c]
sub eax, dword [rsp + 0x154]
cmp ecx, eax
cmovle ecx, eax
cmp byte [r12 + 0x53], 0
je 0x180291438
mov edx, dword [r12 + 0x48]
sub edx, dword [r12 + 0x40]
mov r8d, dword [r12 + 0x4c]
sub r8d, dword [r12 + 0x44]
mov eax, ecx
cmp ecx, edx
cmovle eax, edx
cmp eax, r8d
jle 0x180291435
cmp ecx, edx
cmovg edx, ecx
mov ecx, edx
jmp 0x180291438
mov ecx, r8d
shl ecx, 0x10
or ebx, ecx
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x48], ebx
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
mov edx, 2
call qword [rax + 0x138]
cmp eax, 2
jne 0x180291472
mov rcx, qword [r12 + 0x58]
test rcx, rcx
je 0x180291472
mov rax, qword [rcx]
mov rdx, qword [r12 + 8]
call qword [rax + 0x30]
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
lea rdx, [rsp + 0x120]
call qword [rax + 0xc0]
nop
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x138]
dec eax
mov r14d, 1
cmp eax, r14d
jbe 0x180291701
mov dword [rsp + 0x78], 0xffffffff
mov qword [rsp + 0x7c], 0
mov word [rsp + 0x84], r14w
mov rcx, qword [r12 + 8]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0xa0], rcx
mov dword [rsp + 0xa8], r13d
mov byte [rsp + 0xac], 0
mov rax, qword [rcx]
mov r8d, r14d
xor edx, edx
call qword [rax + pe_nt_image_headers64]
nop
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [r12 + 0x60], eax
mov qword [rsp + 0x50], r13
mov rcx, qword [rsi + 0x48]
mov r10, qword [rcx]
mov eax, ebx
and eax, 0xfffffffb
mov qword [rsp + 0x30], r12
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], eax
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x120]
xor edx, edx
call qword [r10 + 0x20]
test al, al
jne 0x180291640
movzx eax, byte [r12 + 0x52]
xor edx, edx
test al, al
jne 0x18029157f
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
lea r8d, [r14 + 2]
call qword [rax + pe_nt_image_headers64]
mov rcx, qword [r12 + 0x58]
test rcx, rcx
je 0x180291578
mov rax, qword [rcx]
mov r8d, r14d
mov rdx, r12
call qword [rax + 8]
mov rbx, qword [rsp + 0x60]
jmp 0x18029159c
mov byte [rsp + 0xac], 1
mov rbx, qword [rsp + 0x60]
mov rax, qword [rbx]
xor r8d, r8d
mov rcx, rbx
call qword [rax + pe_nt_image_headers64]
nop
lea rcx, [rsp + 0x50]
call fcn.180005530
nop
cmp byte [rsp + 0xac], 0
jne 0x1802915c4
mov rax, qword [rbx]
xor edx, edx
lea r8d, [rdx + 3]
mov rcx, rbx
call qword [rax + pe_nt_image_headers64]
nop
mov rdx, qword [rsp + 0x138]
cmp rdx, 8
jb 0x18029161e
lea rdx, [rdx*2 + 2]
mov qword [rsp + 0xb8], rdx
mov rcx, qword [rsp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180291619
add rdx, 0x27
mov qword [rsp + 0xb8], rdx
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180291619
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.180385c70
mov qword [rsp + 0x130], r13
mov qword [rsp + 0x138], 7
mov word [rsp + 0x120], r13w
jmp 0x180291930
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
call qword [rax + 0x38]
cmp eax, 0xffffffff
jne 0x18029165f
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
mov edx, dword [rsp + 0x78]
call qword [rax + 0x40]
movzx eax, word [rsp + 0x84]
mov word [rsp + 0x20], ax
mov r9b, 1
mov r8, qword [rsp + 0x50]
mov rdx, r12
call fcn.18028f3f0
mov rbx, qword [rsp + 0x50]
mov r14, qword [r12 + 8]
mov r15, qword [r14]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x88]
mov esi, eax
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x80]
mov edx, eax
mov r8d, esi
mov rcx, r14
call qword [r15 + 0xd8]
mov byte [rsp + 0xac], 1
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
xor edx, edx
lea r8d, [rdx + 2]
call qword [rax + pe_nt_image_headers64]
mov byte [rsp + 0x20], 1
xor r9d, r9d
mov r8, qword [rsp + 0x50]
mov rdx, r12
mov rsi, qword [rsp + 0x68]
mov rcx, rsi
call fcn.18028f330
nop
lea rcx, [rsp + 0x50]
call fcn.180005530
nop
mov ebx, dword [rsp + 0x48]
mov r14d, 1
mov rax, qword [r12]
mov rcx, r12
call qword [rax]
test al, al
je 0x1802917c9
mov qword [rsp + 0xc0], rdi
test rdi, rdi
je 0x18029172e
mov rcx, qword [rdi]
test rcx, rcx
je 0x18029172e
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov qword [rsi + 0x58], r13
test rdi, rdi
je 0x18029174d
mov rcx, qword [rdi]
test rcx, rcx
je 0x180291745
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0xc0], r13
mov rdx, qword [rsp + 0x138]
cmp rdx, 8
jb 0x1802917a7
lea rdx, [rdx*2 + 2]
mov qword [rsp + 0xc8], rdx
mov rcx, qword [rsp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1802917a2
add rdx, 0x27
mov qword [rsp + 0xc8], rdx
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1802917a2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.180385c70
mov qword [rsp + 0x130], r13
mov qword [rsp + 0x138], 7
mov word [rsp + 0x120], r13w
jmp 0x180291930
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
mov edx, r14d
call qword [rax + 0x138]
cmp eax, 2
je 0x180291851
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x150]
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.18000ae80
nop
mov r9, qword [rsp + 0x48]
test r9, r9
je 0x180291817
mov r8d, ebx
mov rdx, r12
mov rcx, rsi
call fcn.18028ee00
jmp 0x180291846
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
mov edx, 2
lea r8d, [rdx + 1]
call qword [rax + pe_nt_image_headers64]
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
mov r8d, 3
mov edx, r14d
call qword [rax + pe_nt_image_headers64]
nop
lea rcx, [rsp + 0x48]
call fcn.180005530
nop
mov rdx, qword [rsp + 0x138]
cmp rdx, 8
jb 0x1802918ab
lea rdx, [rdx*2 + 2]
mov qword [rsp + 0xd0], rdx
mov rcx, qword [rsp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1802918a6
add rdx, 0x27
mov qword [rsp + 0xd0], rdx
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1802918a6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.180385c70
mov qword [rsp + 0x130], r13
mov qword [rsp + 0x138], 7
mov word [rsp + 0x120], r13w
jmp 0x1802918dd
lea rbx, [rsi + 0x38]
mov qword [rsp + 0xe0], rbx
test rbx, rbx
je 0x1802918fd
mov rcx, qword [rbx]
test rcx, rcx
je 0x1802918fd
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov qword [rsi + 0x58], r13
cmp byte [r12 + 0x18], 0
je 0x180291915
mov rdx, r12
mov rcx, rsi
call 0x18028feb0
nop
test rbx, rbx
je 0x180291930
mov rcx, qword [rbx]
test rcx, rcx
je 0x180291928
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0xe0], r13
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.180385c10
lea r11, [rsp + 0x180]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret