Function at 0x180295170
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.0x1802952a9
xor edi, edi
mov dword [rdx + 0x60], edi
lea rax, [rdx + 0x20]
cmp qword [rdx + 0x38], 8
jb 0x1802951a9
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.18000fef0
cmp byte [rsi + 0x18], dil
je 0x180295287
mov rcx, qword [rsi + 0x58]
test rcx, rcx
je 0x180295287
mov rax, qword [rcx]
lea rdx, [rsi + 0x20]
call qword [rax + 0x58]
cmp eax, 2
jne 0x180295287
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
xor edx, edx
lea r8d, [rdx + 3]
call qword [rax + 0x140]
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov edx, 1
lea r8d, [rdx + 2]
call qword [rax + 0x140]
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov edx, 2
lea r8d, [rdx + 1]
call qword [rax + 0x140]
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov edx, 3
mov r8d, edx
call qword [rax + 0x140]
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov edx, 4
lea r8d, [rdx - 1]
call qword [rax + 0x140]
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.0x1802952a9
lea rdx, [0x180000000]
mov ecx, dword [rdx + rax*4 + 0x2955c8]
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 0x1802952d3
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx]
nop
test rdi, rdi
je 0x18029539c
lea r9, [rsi + 0x40]
mov rdx, qword [rsi + 8]
mov rcx, rbp
call fcn.180297f20
mov rbx, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x180295302
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx]
nop
movzx eax, byte [rbp + 0x50]
test rbx, rbx
je 0x180295379
test al, al
je 0x18029532d
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 0x18029538d
mov rax, qword [rcx]
mov rdx, qword [rsi + 8]
call qword [rax + 0x20]
test al, al
je 0x18029538d
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 0x18029538d
test al, al
jne 0x18029538d
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x188]
nop
test rbx, rbx
je 0x18029539c
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
test rdi, rdi
je case.default.0x1802952a9
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.0x1802952a9
mov qword [rsp + 0x88], rdi
lea r9, [rsp + 0x88]
mov r8d, 2
mov rdx, rsi
call fcn.180298070
test al, al
je 0x18029541b
mov qword [rsp + 0x90], rdi
lea r9, [rsp + 0x90]
mov r8d, 1
mov rdx, rsi
call fcn.180298070
test al, al
jne 0x18029543d
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x18029541b
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je case.default.0x1802952a9
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 0x180295462
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 0x1802954ac
test r14, r14
je 0x180295489
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x118]
cmp eax, 1
je 0x1802954ac
mov rdi, qword [rsp + 0x90]
mov r9, rdi
mov rbx, qword [rsp + 0x88]
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
call fcn.180299710
jmp 0x1802954e3
mov rdi, qword [rsp + 0x90]
mov r9, rdi
mov rbx, qword [rsp + 0x88]
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
call fcn.180298db0
test al, al
jne 0x1802954e3
mov r9, rdi
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
call fcn.180299710
nop
test r14, r14
je 0x1802954f2
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 8]
nop
test rdi, rdi
je 0x180295501
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
nop
test rbx, rbx
je case.default.0x1802952a9
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.0x1802952a9.9
mov rdx, rsi
mov rcx, rbp
test r8b, 8
jne 0x180295577
call fcn.180295e50
cmp byte [rsi + 0x18], dil
je case.default.0x1802952a9
mov rdx, rsi
mov rcx, rbp
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x180298ca0
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 0x1802967e0
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 0x180299c00
mov rdx, rsi
mov rcx, rbp
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x180299f60
mov rdx, rsi
mov rcx, rbp
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x1802982d0
mov rdx, rsi
mov rcx, rbp
call fcn.180297590
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 [0x1804e0010]
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 0x180296868
test bl, 8
je 0x180296868
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 0x180296921
lea rcx, [rsp + 0x40]
call fcn.180006390
nop
mov rdx, qword [rsp + 0x90]
cmp rdx, 8
jb 0x180296902
lea rdx, [rdx*2 + 2]
mov qword [rsp + 0x60], rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1802968fd
add rdx, 0x27
mov qword [rsp + 0x60], rdx
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1802968fd
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.180393fb0
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x90], 7
mov word [rsp + 0x78], r15w
jmp 0x1802969df
movzx eax, word [rsp + 0x5c]
mov word [rsp + 0x20], ax
xor r9d, r9d
mov r8, qword [rsp + 0x40]
mov rdx, rsi
call fcn.1802981e0
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov r8d, 2
mov edx, edi
call qword [rax + 0x140]
mov byte [rsp + 0x20], 1
mov r9d, edi
mov r8, qword [rsp + 0x40]
mov rdx, rsi
mov rcx, r14
call fcn.180298120
nop
lea rcx, [rsp + 0x40]
call fcn.180006390
nop
mov rdx, qword [rsp + 0x90]
cmp rdx, 8
jb 0x1802969c5
lea rdx, [rdx*2 + 2]
mov qword [rsp + 0x68], rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1802969c0
add rdx, 0x27
mov qword [rsp + 0x68], rdx
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1802969c0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.180393fb0
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.180393f50
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 [0x1804e0010]
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 0x180298b32
cmp qword [rcx + 0x48], r12
je 0x180298b32
cmp qword [rcx + 0x60], r12
je 0x180298b32
mov rax, qword [rcx + 0x78]
test rax, rax
jne 0x180298497
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.18036e850
test al, al
je 0x180298434
cmp qword [rbp - 0x78], 3
jb 0x180298434
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.180005cd0
mov ebx, 1
mov dword [rsp + 0x20], ebx
lea rcx, [rsp + 0x78]
call fcn.180005c50
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 0x180298478
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180298473
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180298473
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180393fb0
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
mov rax, qword [r13 + 0x78]
test rax, rax
je 0x180298b32
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.180214be0
test al, al
je 0x180298530
cmp qword [rbp + 0x100], 0x40000000
jb 0x18029854e
mov qword [rsp + 0x30], r12
lea rdx, [r15 + 0x20]
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rcx, qword [r13 + 0x60]
call fcn.1802734b0
test eax, eax
jne 0x180298556
xor dil, dil
jmp 0x180298b06
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 0x180298af9
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.180393f74
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.1801643d0
movzx esi, al
mov rbx, qword [rsp + 0x28]
test rbx, rbx
je 0x180298627
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x18029861a
call qword [sym.imp.KERNEL32.dll_FindClose]
test eax, eax
je 0x18029861a
mov qword [rbx], 0xffffffffffffffff
mov edx, 8
mov rcx, rbx
call fcn.180393fb0
mov qword [rsp + 0x28], r12
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x18029866f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18029866a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18029866a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180393fb0
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], 7
mov word [rbp - 0x60], r12w
test sil, sil
je 0x180298af0
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.180005810
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 8
jb 0x180298708
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180298703
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180298703
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180393fb0
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.180005c50
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 0x18029878a
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx]
nop
test rsi, rsi
jne 0x180298797
xor dil, dil
jmp 0x180298ae0
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 0x1802987bc
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx]
nop
test r14, r14
jne 0x1802987c9
xor dil, dil
jmp 0x180298ad1
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 0x1802987f1
lea r8, [rbp - 0x60]
lea rcx, [rbp - 0x40]
call fcn.180298b60
jmp 0x1802987fa
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 0x180298abf
mov ecx, dword [rbp - 0x14]
sub ecx, dword [rbp - 0x1c]
cmp eax, ecx
jl 0x180298abf
cmp edi, edx
jne 0x180298856
cmp eax, ecx
jne 0x180298856
mov rcx, qword [r15 + 8]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x158]
jmp 0x180298866
lea r9, [rbp - 0x20]
mov rdx, qword [r15 + 8]
mov rcx, r13
call fcn.180297f20
test rax, rax
mov rdi, rax
je 0x180298abf
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx]
mov rbx, rdi
mov qword [rsp + 0x30], rbx
test rbx, rbx
je 0x180298abf
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 0x18029893b
mov rcx, qword [r15 + 8]
mov rdx, qword [rcx]
call qword [rdx + 0x118]
movzx edi, ax
cmp r12d, 2
jne 0x180298913
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 0x180298977
mov r8d, dword [rbp - 0x10]
mov edx, r8d
mov ecx, dword [rbp - 0xc]
movzx eax, di
add eax, 0xfffffffb
cmp eax, 3
ja 0x180298933
mov edx, ecx
mov ecx, r8d
mov dword [rbp - 0x10], edx
mov dword [rbp - 0xc], ecx
jmp 0x180298977
cmp r12d, 0x22
jne 0x180298977
mov r8d, dword [rbp - 0x10]
mov edx, r8d
mov ecx, dword [rbp - 0xc]
movzx eax, di
add eax, 0xfffffffb
cmp eax, 3
ja 0x180298933
mov edx, ecx
mov ecx, r8d
mov dword [rbp - 0x10], edx
mov dword [rbp - 0xc], ecx
jmp 0x180298977
cmp r12d, 0x22
jne 0x180298977
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.180393f74
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.1800ab030
mov ecx, 0x28
call fcn.180393f74
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.1800ab0c0
mov ecx, 0x18
call fcn.180393f74
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.1800ab030
cmp r12d, 0xd
je 0x180298a4d
cmp r12d, 0x14
mov r8d, 2
jne 0x180298a53
mov r8d, 0xd
mov rax, qword [rbx]
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call qword [rax + ILFree]
test al, al
je 0x180298ab0
mov rcx, qword [r15 + 8]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x50]
call qword [rax + 0xb0]
test al, al
je 0x180298ab0
mov rax, qword [rsi]
mov r8d, 2
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call qword [rax + ILFree]
test al, al
je 0x180298ab0
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x10]
mov rcx, qword [r13 + 0x60]
call fcn.180273d20
movzx edi, al
jmp 0x180298ab3
xor dil, dil
lea rcx, [rsp + 0x40]
call fcn.1800a19f0
jmp 0x180298ac2
xor dil, dil
test rbx, rbx
je 0x180298ad1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
test r14, r14
je 0x180298ae0
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 8]
nop
test rsi, rsi
je 0x180298afc
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
jmp 0x180298afc
lea rcx, [rbp + 0x68]
call fcn.180005c50
xor dil, dil
lea rcx, [rbp + 0x10]
call fcn.180005c50
nop
lea rcx, [rbp + 0xd0]
call fcn.180005c50
nop
lea rcx, [rbp + 0xb0]
call fcn.180005c50
nop
lea rcx, [rbp + 0x90]
call fcn.180005c50
movzx eax, dil
jmp 0x180298b34
xor al, al
mov rcx, qword [rbp + 0x110]
xor rcx, rsp
call fcn.180393f50
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 [0x1804e0010]
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 0x180298ceb
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
nop
test rbx, rbx
je 0x180298d75
test byte [rdi + 0x10], 4
je 0x180298d75
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax + pe_nt_image_headers64]
cmp eax, 3
jne 0x180298d75
mov rax, qword [rbx]
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, rbx
call qword [rax + 0x140]
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.180294d10
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.180295a60
nop
lea rcx, [rsp + 0x50]
call fcn.180005c50
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x180298d69
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rax, vtable.ILoadImageCallBack.0
mov qword [rsp + 0x30], rax
test rbx, rbx
je 0x180298d83
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.180393f50
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 [0x1804e0010]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov r14d, r8d
mov rbx, rdx
mov rsi, rcx
cmp qword [rdx + 8], 0
je 0x180299f2e
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax]
test al, al
jne 0x180299f2e
cmp qword [rsi + 0x48], 0
je 0x180299f2e
test r14b, 8
je 0x180299f2e
cmp byte [rbx + 0x18], al
jne 0x180299c83
mov rdx, rbx
mov rcx, rsi
call fcn.180295600
test al, al
jne 0x180299f2e
mov byte [rbp - 0x29], 0
test r14b, 4
je 0x180299c9c
lea r8, [rbp - 0x29]
mov rdx, rbx
mov rcx, rsi
call fcn.1802971f0
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
mov edx, 2
call qword [rax + pe_nt_image_headers64]
cmp eax, 2
jne 0x180299cc6
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x180299cc6
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 + pe_nt_image_headers64]
dec eax
xor r15d, r15d
cmp eax, 1
jbe 0x180299ed9
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 + 0x140]
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 0x180299db6
lea edx, [r15 + 6]
test al, al
jne 0x180299dbf
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
lea r8d, [r15 + 3]
call qword [rax + 0x140]
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
xor edx, edx
lea r8d, [r15 + 3]
call qword [rax + 0x140]
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x180299dd3
mov rax, qword [rcx]
lea r8d, [r15 + 0x10]
mov rdx, rbx
call qword [rax + 8]
jmp 0x180299dd3
test al, al
je 0x180299e07
mov edx, 6
mov byte [rbp + 3], 1
mov rax, qword [rdi]
xor r8d, r8d
mov rcx, rdi
call qword [rax + 0x140]
nop
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x180299de3
mov rax, qword [rcx]
call qword [rax + 8]
nop
cmp byte [rbp + 3], 0
jne 0x180299ed9
mov rax, qword [rdi]
mov edx, 6
lea r8d, [rdx - 3]
mov rcx, rdi
call qword [rax + 0x140]
jmp 0x180299ed9
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
call qword [rax + 0x38]
cmp eax, 0xffffffff
jne 0x180299e23
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.1802981e0
mov byte [rbp + 3], 1
mov rax, qword [rdi]
mov edx, 6
lea r8d, [rdx - 4]
mov rcx, rdi
call qword [rax + 0x140]
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
xor edx, edx
lea r8d, [rdx + 2]
call qword [rax + 0x140]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180299ec9
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 0x180299eb0
mov rdx, rbx
mov rcx, rsi
call fcn.180297000
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x180299ec9
mov rax, qword [rcx]
mov r8d, 0x10
mov rdx, rbx
call qword [rax + 8]
nop
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x180299ed9
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0x27]
cmp rdx, 8
jb 0x180299f1c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xf]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180299f17
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180299f17
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180393fb0
movdqa xmm0, xmmword [0x1803f7240]
movdqu xmmword [rbp + 0x1f], xmm0
mov word [rbp + 0xf], r15w
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.180393f50
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 [0x1804e0010]
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 0x18029a720
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax]
test al, al
jne 0x18029a720
cmp qword [rsi + 0x48], 0
je 0x18029a720
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 0x18029a006
mov rcx, qword [rdi]
test rcx, rcx
je 0x18029a006
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov qword [rsi + 0x58], r12
test rdi, rdi
je 0x18029a02a
mov rcx, qword [rdi]
test rcx, rcx
je 0x18029a01d
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor r13d, r13d
mov qword [rsp + 0xb0], r13
jmp 0x18029a02d
xor r13d, r13d
mov byte [rsp + 0x40], 0
test bl, 4
je 0x18029a047
lea r8, [rsp + 0x40]
mov rdx, r12
mov rcx, rsi
call fcn.1802971f0
mov rax, qword [r12]
mov rcx, r12
call qword [rax]
test al, al
je 0x18029a08e
mov qword [rsp + 0x68], rdi
test rdi, rdi
je 0x18029a06d
mov rcx, qword [rdi]
test rcx, rcx
je 0x18029a06d
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov qword [rsi + 0x58], r13
test rdi, rdi
je 0x18029a089
mov rcx, qword [rdi]
test rcx, rcx
je 0x18029a084
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0x68], r13
jmp 0x18029a720
test bl, 1
jne 0x18029a0f3
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
mov edx, 1
call qword [rax + pe_nt_image_headers64]
cmp eax, 2
je 0x18029a0b9
mov r8d, ebx
mov rdx, r12
mov rcx, rsi
call fcn.1802977a0
mov qword [rsp + 0x70], rdi
test rdi, rdi
je 0x18029a0d2
mov rcx, qword [rdi]
test rcx, rcx
je 0x18029a0d2
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov qword [rsi + 0x58], r13
test rdi, rdi
je 0x18029a0ee
mov rcx, qword [rdi]
test rcx, rcx
je 0x18029a0e9
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0x70], r13
jmp 0x18029a720
mov rcx, qword [r12 + 0x58]
test rcx, rcx
je 0x18029a184
mov rax, qword [rcx]
call qword [rax + 0x38]
test al, al
je 0x18029a184
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 0x18029a235
mov rcx, qword [r12 + 8]
test rcx, rcx
je 0x18029a235
mov rax, qword [rcx]
lea rdx, [rsp + 0x140]
call qword [rax + 0x180]
test al, al
je 0x18029a235
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 0x18029a228
mov rdx, qword [r12 + 8]
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x160], xmm0
test rdx, rdx
je 0x18029a1b1
lea r8, [rsp + 0x160]
lea rcx, [rsp + 0xf0]
call fcn.180298b60
jmp 0x18029a1c2
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 0x18029a228
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 0x18029a225
cmp ecx, edx
cmovg edx, ecx
mov ecx, edx
jmp 0x18029a228
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 + pe_nt_image_headers64]
cmp eax, 2
jne 0x18029a262
mov rcx, qword [r12 + 0x58]
test rcx, rcx
je 0x18029a262
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 + pe_nt_image_headers64]
dec eax
mov r14d, 1
cmp eax, r14d
jbe 0x18029a4f1
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 + 0x140]
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 0x18029a430
movzx eax, byte [r12 + 0x52]
xor edx, edx
test al, al
jne 0x18029a36f
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
lea r8d, [r14 + 2]
call qword [rax + 0x140]
mov rcx, qword [r12 + 0x58]
test rcx, rcx
je 0x18029a368
mov rax, qword [rcx]
mov r8d, r14d
mov rdx, r12
call qword [rax + 8]
mov rbx, qword [rsp + 0x60]
jmp 0x18029a38c
mov byte [rsp + 0xac], 1
mov rbx, qword [rsp + 0x60]
mov rax, qword [rbx]
xor r8d, r8d
mov rcx, rbx
call qword [rax + 0x140]
nop
lea rcx, [rsp + 0x50]
call fcn.180006390
nop
cmp byte [rsp + 0xac], 0
jne 0x18029a3b4
mov rax, qword [rbx]
xor edx, edx
lea r8d, [rdx + 3]
mov rcx, rbx
call qword [rax + 0x140]
nop
mov rdx, qword [rsp + 0x138]
cmp rdx, 8
jb 0x18029a40e
lea rdx, [rdx*2 + 2]
mov qword [rsp + 0xb8], rdx
mov rcx, qword [rsp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18029a409
add rdx, 0x27
mov qword [rsp + 0xb8], rdx
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18029a409
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.180393fb0
mov qword [rsp + 0x130], r13
mov qword [rsp + 0x138], 7
mov word [rsp + 0x120], r13w
jmp 0x18029a720
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
call qword [rax + 0x38]
cmp eax, 0xffffffff
jne 0x18029a44f
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.1802981e0
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 + 0x140]
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.180298120
nop
lea rcx, [rsp + 0x50]
call fcn.180006390
nop
mov ebx, dword [rsp + 0x48]
mov r14d, 1
mov rax, qword [r12]
mov rcx, r12
call qword [rax]
test al, al
je 0x18029a5b9
mov qword [rsp + 0xc0], rdi
test rdi, rdi
je 0x18029a51e
mov rcx, qword [rdi]
test rcx, rcx
je 0x18029a51e
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov qword [rsi + 0x58], r13
test rdi, rdi
je 0x18029a53d
mov rcx, qword [rdi]
test rcx, rcx
je 0x18029a535
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0xc0], r13
mov rdx, qword [rsp + 0x138]
cmp rdx, 8
jb 0x18029a597
lea rdx, [rdx*2 + 2]
mov qword [rsp + 0xc8], rdx
mov rcx, qword [rsp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18029a592
add rdx, 0x27
mov qword [rsp + 0xc8], rdx
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18029a592
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.180393fb0
mov qword [rsp + 0x130], r13
mov qword [rsp + 0x138], 7
mov word [rsp + 0x120], r13w
jmp 0x18029a720
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
mov edx, r14d
call qword [rax + pe_nt_image_headers64]
cmp eax, 2
je 0x18029a641
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.18000be40
nop
mov r9, qword [rsp + 0x48]
test r9, r9
je 0x18029a607
mov r8d, ebx
mov rdx, r12
mov rcx, rsi
call fcn.180297bf0
jmp 0x18029a636
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
mov edx, 2
lea r8d, [rdx + 1]
call qword [rax + 0x140]
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
mov r8d, 3
mov edx, r14d
call qword [rax + 0x140]
nop
lea rcx, [rsp + 0x48]
call fcn.180006390
nop
mov rdx, qword [rsp + 0x138]
cmp rdx, 8
jb 0x18029a69b
lea rdx, [rdx*2 + 2]
mov qword [rsp + 0xd0], rdx
mov rcx, qword [rsp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18029a696
add rdx, 0x27
mov qword [rsp + 0xd0], rdx
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18029a696
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.180393fb0
mov qword [rsp + 0x130], r13
mov qword [rsp + 0x138], 7
mov word [rsp + 0x120], r13w
jmp 0x18029a6cd
lea rbx, [rsi + 0x38]
mov qword [rsp + 0xe0], rbx
test rbx, rbx
je 0x18029a6ed
mov rcx, qword [rbx]
test rcx, rcx
je 0x18029a6ed
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov qword [rsi + 0x58], r13
cmp byte [r12 + 0x18], 0
je 0x18029a705
mov rdx, r12
mov rcx, rsi
call 0x180298ca0
nop
test rbx, rbx
je 0x18029a720
mov rcx, qword [rbx]
test rcx, rcx
je 0x18029a718
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0xe0], r13
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.180393f50
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