Function at 0x18002b770
Capabilities:
Check if file exists
Create thread
Get file attributes

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x408
mov rax, qword [0x180076dc0]
xor rax, rsp
mov qword [rsp + 0x3f0], rax
mov rcx, qword [rsp + 0x410]
call fcn.1800230e0
nop
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x44], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x44]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 3
mov dword [rsp + 0x48], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x48]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x4c]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002d7d8
mov rcx, qword [rsp + 0x410]
call fcn.180021f90
cdqe
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x5c], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x50], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
call fcn.180029e70
movsx eax, al
shl eax, 3
mov dword [rsp + 0x54], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x54]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x5c]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002c8d5
xor eax, eax
cmp eax, 3
je 0x18002c8d5
mov dword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x410]
call fcn.180021f90
test eax, eax
je 0x18002b8d3
cmp dword [rsp + 0x38], 1
jge 0x18002b8d3
mov qword [rsp + 0x320], 1
jmp 0x18002b8df
mov qword [rsp + 0x320], 0
cvtsi2sd xmm0, qword [rsp + 0x320]
call fcn.18002b530
mov dword [rsp + 0x6c], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x60], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x60]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x68], eax
call fcn.180029e70
movsx eax, al
shl eax, 2
mov dword [rsp + 0x64], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x64]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x68]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x6c]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002bd15
xor eax, eax
cmp eax, 9
je 0x18002bd15
mov dword [rsp + 0x34], 0
jmp 0x18002b986
mov eax, dword [rsp + 0x34]
inc eax
mov dword [rsp + 0x34], eax
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x70], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x70]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x78], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 0xa
mov dword [rsp + 0x74], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x74]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x78]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
cmp dword [rsp + 0x34], eax
jge 0x18002bd06
mov dword [rsp + 0x30], 0
jmp 0x18002ba14
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 3
jge 0x18002bd01
movsxd rax, dword [rsp + 0x30]
lea rax, [rsp + rax*4 + 0x3c0]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
xor r9d, r9d
lea r8, [0x180028b70]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
movsxd rcx, dword [rsp + 0x30]
mov qword [rsp + rcx*8 + 0x360], rax
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x7c], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x7c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x84], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 5
mov dword [rsp + 0x80], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x80]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x84]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002bba4
movsxd rax, dword [rsp + 0x30]
cmp qword [rsp + rax*8 + 0x360], 0
jne 0x18002baf0
mov qword [rsp + 0x328], 1
jmp 0x18002bafc
mov qword [rsp + 0x328], 0
cvtsi2sd xmm0, qword [rsp + 0x328]
call fcn.18002b530
mov dword [rsp + 0x94], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x88], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x88]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x90], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 0xa
mov dword [rsp + 0x8c], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x8c]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x90]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x94]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002bba4
xor eax, eax
cmp eax, 1
je 0x18002bba4
jmp 0x18002ba0a
mov ecx, 0x1388
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x98], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x98]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0xa0], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 6
mov dword [rsp + 0x9c], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x9c]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0xa0]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002bcfc
mov rcx, qword [rsp + 0x410]
call fcn.180021f90
cmp eax, 1
je 0x18002bc4e
mov qword [rsp + 0x330], 1
jmp 0x18002bc5a
mov qword [rsp + 0x330], 0
cvtsi2sd xmm0, qword [rsp + 0x330]
call fcn.18002b530
mov dword [rsp + 0xb0], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0xa4], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0xa4]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0xac], eax
call fcn.180029e70
movsx eax, al
mov dword [rsp + 0xa8], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0xa8]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0xac]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0xb0]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002bcfc
xor eax, eax
cmp eax, 2
je 0x18002bcfc
jmp 0x18002bd01
jmp 0x18002ba0a
jmp 0x18002b97c
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
jmp 0x18002b8ad
mov ecx, 0x7d0
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rax, qword [rsp + 0x410]
inc rax
mov rcx, qword [rsp + 0x410]
mov rdx, rax
call fcn.180007780
mov ecx, 0x7d0
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0xb4], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0xb4]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0xbc], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 7
mov dword [rsp + 0xb8], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0xb8]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0xbc]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002c8d0
mov eax, 0x104
imul rax, rax, 0
mov rcx, qword [rsp + 0x410]
lea rax, [rcx + rax + 0x117]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x18002be21
mov eax, 0x104
imul rax, rax, 2
mov rcx, qword [rsp + 0x410]
lea rax, [rcx + rax + 0x117]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x18002be21
mov qword [rsp + 0x338], 1
jmp 0x18002be2d
mov qword [rsp + 0x338], 0
cvtsi2sd xmm0, qword [rsp + 0x338]
call fcn.18002b530
mov dword [rsp + 0xcc], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0xc0], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0xc0]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0xc8], eax
call fcn.180029e70
movsx eax, al
shl eax, 3
mov dword [rsp + 0xc4], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0xc4]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0xc8]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0xcc]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002c58e
xor eax, eax
cmp eax, 3
je 0x18002c58e
mov rcx, qword [rsp + 0x410]
call fcn.18002a160
mov dword [rsp + 0xd0], 0
cmp dword [rsp + 0xd0], 3
jge 0x18002bf08
mov qword [rsp + 0x340], 1
jmp 0x18002bf14
mov qword [rsp + 0x340], 0
cvtsi2sd xmm0, qword [rsp + 0x340]
call fcn.18002b530
mov dword [rsp + 0xe0], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0xd4], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0xd4]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0xdc], eax
call fcn.180029e70
movsx eax, al
shl eax, 3
mov dword [rsp + 0xd8], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0xd8]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0xdc]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0xe0]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002c450
xor eax, eax
cmp eax, 9
je 0x18002c450
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0xe4], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0xe4]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0xec], eax
call fcn.180029e70
movsx eax, al
shl eax, 2
mov dword [rsp + 0xe8], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0xe8]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0xec]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002c43f
mov rcx, qword [rsp + 0x410]
call fcn.180023dd0
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0xfc], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0xf0], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0xf0]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0xf8], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 5
mov dword [rsp + 0xf4], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0xf4]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0xf8]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0xfc]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002c0f4
xor eax, eax
cmp eax, 0xa
je 0x18002c0f4
jmp 0x18002c450
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x100], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x100]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x108], eax
call fcn.180029e70
movsx eax, al
shl eax, 3
mov dword [rsp + 0x104], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x104]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x108]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002c43f
movzx eax, byte [0x180076cd7]
movsx eax, al
mov dword [rsp + 0x10c], eax
call fcn.180029e90
movsx eax, al
mov ecx, dword [rsp + 0x10c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x110], eax
call fcn.180029e80
movsx eax, al
imul eax, eax, 3
movzx ecx, byte [0x18007a7e0]
movsx ecx, cl
imul eax, ecx
mov ecx, dword [rsp + 0x110]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x114], eax
call fcn.180029eb0
movsx eax, al
mov ecx, dword [rsp + 0x114]
sub ecx, eax
mov eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x124], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x118], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x118]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x120], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 3
mov dword [rsp + 0x11c], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x11c]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x120]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x124]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002c431
xor eax, eax
cmp eax, 4
je 0x18002c431
movsd xmm0, qword [0x180060120]
call fcn.18002b530
nop
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x128], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x128]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x130], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 6
mov dword [rsp + 0x12c], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x12c]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x130]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002c42f
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x134], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x134]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x13c], eax
call fcn.180029e70
movsx eax, al
mov dword [rsp + 0x138], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x138]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x13c]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x14c], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x140], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x140]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x148], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 7
mov dword [rsp + 0x144], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x144]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x148]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x14c]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002c42f
xor eax, eax
cmp eax, 2
je 0x18002c42f
movsd xmm0, qword [0x180060128]
call fcn.18002b530
nop
jmp 0x18002c43f
mov rcx, qword [rsp + 0x410]
call fcn.18002a160
nop
mov ecx, 0x2710
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
jmp 0x18002bef0
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x150], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x150]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x158], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 9
mov dword [rsp + 0x154], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x154]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x158]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002c589
mov rcx, qword [rsp + 0x410]
call fcn.1800230e0
cdqe
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x168], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x15c], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x15c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x164], eax
call fcn.180029e70
movsx eax, al
shl eax, 2
mov dword [rsp + 0x160], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x160]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x164]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x168]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002c589
xor eax, eax
cmp eax, 5
je 0x18002c589
mov rcx, qword [rsp + 0x410]
call fcn.180029a60
nop
jmp 0x18002c8d0
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x16c], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x16c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x174], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 3
mov dword [rsp + 0x170], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x170]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x174]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002c8d0
movzx eax, byte [0x180076cd7]
movsx eax, al
mov dword [rsp + 0x178], eax
call fcn.180029e90
movsx eax, al
mov ecx, dword [rsp + 0x178]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x17c], eax
call fcn.180029e80
movsx eax, al
shl eax, 3
movzx ecx, byte [0x18007a7e0]
movsx ecx, cl
imul eax, ecx
mov ecx, dword [rsp + 0x17c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x180], eax
call fcn.180029eb0
movsx eax, al
mov ecx, dword [rsp + 0x180]
sub ecx, eax
mov eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x190], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x184], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x184]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x18c], eax
call fcn.180029e70
movsx eax, al
shl eax, 3
mov dword [rsp + 0x188], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x188]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x18c]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x190]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002c8ca
xor eax, eax
cmp eax, 9
je 0x18002c8ca
movsd xmm0, qword [0x180060148]
call fcn.18002b530
nop
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x194], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x194]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x19c], eax
call fcn.180029e70
movsx eax, al
mov dword [rsp + 0x198], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x198]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x19c]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002c8c8
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x1a0], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x1a0]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x1a8], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 6
mov dword [rsp + 0x1a4], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x1a4]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1a8]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x1b8], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x1ac], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x1ac]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x1b4], eax
call fcn.180029e70
movsx eax, al
shl eax, 1
mov dword [rsp + 0x1b0], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x1b0]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1b4]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x1b8]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002c8c8
xor eax, eax
cmp eax, 7
je 0x18002c8c8
movsd xmm0, qword [0x180060100]
call fcn.18002b530
nop
jmp 0x18002c8d0
call fcn.180038e10
nop
jmp 0x18002d7d8
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x1bc], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x1bc]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x1c4], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 7
mov dword [rsp + 0x1c0], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x1c0]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1c4]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002d7d8
movzx eax, byte [0x180076cd7]
movsx eax, al
mov dword [rsp + 0x1c8], eax
call fcn.180029e90
movsx eax, al
mov ecx, dword [rsp + 0x1c8]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x1cc], eax
call fcn.180029e80
movsx eax, al
imul eax, eax, 6
movzx ecx, byte [0x18007a7e0]
movsx ecx, cl
imul eax, ecx
mov ecx, dword [rsp + 0x1cc]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x1d0], eax
call fcn.180029eb0
movsx eax, al
mov ecx, dword [rsp + 0x1d0]
sub ecx, eax
mov eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x1e0], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x1d4], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x1d4]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x1dc], eax
call fcn.180029e70
movsx eax, al
shl eax, 1
mov dword [rsp + 0x1d8], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x1d8]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1dc]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x1e0]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002cc17
xor eax, eax
cmp eax, 7
je 0x18002cc17
movsd xmm0, qword [0x180060118]
call fcn.18002b530
nop
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x1e4], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x1e4]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x1ec], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 5
mov dword [rsp + 0x1e8], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x1e8]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1ec]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002cc12
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x1f0], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x1f0]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x1f8], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 0xa
mov dword [rsp + 0x1f4], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x1f4]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1f8]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x208], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x1fc], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x1fc]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x204], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 6
mov dword [rsp + 0x200], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x200]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x204]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x208]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002cc12
xor eax, eax
cmp eax, 1
je 0x18002cc12
movsd xmm0, qword [0x180060140]
call fcn.18002b530
nop
jmp 0x18002d7d8
mov rcx, qword [rsp + 0x410]
call fcn.180029810
mov ecx, 0x7d0
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rax, qword [rsp + 0x410]
inc rax
mov rcx, qword [rsp + 0x410]
mov rdx, rax
call fcn.180007780
nop
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x20c], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x20c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x214], eax
call fcn.180029e70
movsx eax, al
shl eax, 3
mov dword [rsp + 0x210], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x210]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x214]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002d7d8
mov eax, 0x104
imul rax, rax, 0
mov rcx, qword [rsp + 0x410]
lea rax, [rcx + rax + 0x117]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x18002cd25
mov eax, 0x104
imul rax, rax, 2
mov rcx, qword [rsp + 0x410]
lea rax, [rcx + rax + 0x117]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x18002cd25
mov qword [rsp + 0x348], 1
jmp 0x18002cd31
mov qword [rsp + 0x348], 0
cvtsi2sd xmm0, qword [rsp + 0x348]
call fcn.18002b530
mov dword [rsp + 0x224], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x218], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x218]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x220], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 3
mov dword [rsp + 0x21c], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x21c]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x220]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x224]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002d493
xor eax, eax
cmp eax, 4
je 0x18002d493
mov rcx, qword [rsp + 0x410]
call fcn.18002a160
mov dword [rsp + 0x228], 0
cmp dword [rsp + 0x228], 3
jge 0x18002ce0c
mov qword [rsp + 0x350], 1
jmp 0x18002ce18
mov qword [rsp + 0x350], 0
cvtsi2sd xmm0, qword [rsp + 0x350]
call fcn.18002b530
mov dword [rsp + 0x238], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x22c], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x22c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x234], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 9
mov dword [rsp + 0x230], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x230]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x234]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x238]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002d355
xor eax, eax
cmp eax, 4
je 0x18002d355
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x23c], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x23c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x244], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 5
mov dword [rsp + 0x240], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x240]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x244]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002d344
mov rcx, qword [rsp + 0x410]
call fcn.180023dd0
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x254], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x248], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x248]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x250], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 0xa
mov dword [rsp + 0x24c], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x24c]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x250]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x254]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002cff8
xor eax, eax
cmp eax, 1
je 0x18002cff8
jmp 0x18002d355
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x258], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x258]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x260], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 9
mov dword [rsp + 0x25c], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x25c]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x260]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002d344
movzx eax, byte [0x180076cd7]
movsx eax, al
mov dword [rsp + 0x264], eax
call fcn.180029e90
movsx eax, al
mov ecx, dword [rsp + 0x264]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x268], eax
call fcn.180029e80
movsx eax, al
shl eax, 3
movzx ecx, byte [0x18007a7e0]
movsx ecx, cl
imul eax, ecx
mov ecx, dword [rsp + 0x268]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x26c], eax
call fcn.180029eb0
movsx eax, al
mov ecx, dword [rsp + 0x26c]
sub ecx, eax
mov eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x27c], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x270], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x270]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x278], eax
call fcn.180029e70
movsx eax, al
shl eax, 2
mov dword [rsp + 0x274], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x274]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x278]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x27c]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002d336
xor eax, eax
cmp eax, 9
je 0x18002d336
movsd xmm0, qword [0x180060128]
call fcn.18002b530
nop
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x280], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x280]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x288], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 7
mov dword [rsp + 0x284], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x284]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x288]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002d334
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x28c], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x28c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x294], eax
call fcn.180029e70
movsx eax, al
shl eax, 1
mov dword [rsp + 0x290], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x290]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x294]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x2a4], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x298], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x298]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x2a0], eax
call fcn.180029e70
movsx eax, al
shl eax, 1
mov dword [rsp + 0x29c], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x29c]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x2a0]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x2a4]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002d334
xor eax, eax
cmp eax, 3
je 0x18002d334
movsd xmm0, qword [0x180060100]
call fcn.18002b530
nop
jmp 0x18002d344
mov rcx, qword [rsp + 0x410]
call fcn.18002a160
nop
mov ecx, 0x2710
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
jmp 0x18002cdf4
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x2a8], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x2a8]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x2b0], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 0xa
mov dword [rsp + 0x2ac], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x2ac]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x2b0]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002d48e
mov rcx, qword [rsp + 0x410]
call fcn.1800230e0
cdqe
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x2c0], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x2b4], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x2b4]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x2bc], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 5
mov dword [rsp + 0x2b8], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x2b8]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x2bc]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x2c0]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002d48e
xor eax, eax
cmp eax, 6
je 0x18002d48e
mov rcx, qword [rsp + 0x410]
call fcn.180029a60
nop
jmp 0x18002d7d8
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x2c4], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x2c4]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x2cc], eax
call fcn.180029e70
movsx eax, al
shl eax, 2
mov dword [rsp + 0x2c8], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x2c8]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x2cc]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002d7d8
movzx eax, byte [0x180076cd7]
movsx eax, al
mov dword [rsp + 0x2d0], eax
call fcn.180029e90
movsx eax, al
mov ecx, dword [rsp + 0x2d0]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x2d4], eax
call fcn.180029e80
movsx eax, al
imul eax, eax, 3
movzx ecx, byte [0x18007a7e0]
movsx ecx, cl
imul eax, ecx
mov ecx, dword [rsp + 0x2d4]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x2d8], eax
call fcn.180029eb0
movsx eax, al
mov ecx, dword [rsp + 0x2d8]
sub ecx, eax
mov eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x2e8], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x2dc], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x2dc]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x2e4], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 9
mov dword [rsp + 0x2e0], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x2e0]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x2e4]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x2e8]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002d7d2
xor eax, eax
cmp eax, 4
je 0x18002d7d2
movsd xmm0, qword [0x180060100]
call fcn.18002b530
nop
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x2ec], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x2ec]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x2f4], eax
call fcn.180029e70
movsx eax, al
shl eax, 1
mov dword [rsp + 0x2f0], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x2f0]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x2f4]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x18002d7d0
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x2f8], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x2f8]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x300], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 7
mov dword [rsp + 0x2fc], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x2fc]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x300]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
mov dword [rsp + 0x310], eax
movzx ecx, byte [0x180076cda]
movsx ecx, cl
mov dword [rsp + 0x304], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x304]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30c], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 7
mov dword [rsp + 0x308], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x308]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x30c]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x310]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x18002d7d0
xor eax, eax
cmp eax, 8
je 0x18002d7d0
movsd xmm0, qword [0x180060128]
call fcn.18002b530
nop
jmp 0x18002d7d8
call fcn.180038e10
nop
mov dword [rsp + 0x3c], 0
jmp 0x18002d7ec
mov eax, dword [rsp + 0x3c]
inc eax
mov dword [rsp + 0x3c], eax
movzx eax, byte [0x180076cda]
movsx eax, al
mov dword [rsp + 0x314], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x314]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x31c], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 0xa
mov dword [rsp + 0x318], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x318]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x31c]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076cd6]
movsx ecx, cl
sub eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18002b530
cmp dword [rsp + 0x3c], eax
jge 0x18002d89a
mov dword [rsp + 0x40], 0
jmp 0x18002d888
cmp dword [rsp + 0x40], 0x55
jae 0x18002d895
xor eax, eax
jmp 0x18002d89a
jmp 0x18002d7e2
mov rcx, qword [rsp + 0x3f0]
xor rcx, rsp
call fcn.18003c9d0
add rsp, 0x408
ret