Function at 0x140046878
Capabilities:
Check for time delay via gettickcount
Create thread

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x4b0
mov qword [rax - 0x1f0], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x1401a0e90]
xor rax, rsp
mov qword [rsp + 0x4a0], rax
mov r13, rcx
mov qword [rsp + 0x1f0], rcx
xor r14d, r14d
mov dword [rsp + 0x44], r14d
mov byte [0x1401a3c12], r14b
mov byte [0x1401a8ea4], 1
call fcn.140010d7c
test eax, eax
jne 0x140047ceb
lea rax, [rsp + 0x2c8]
mov qword [rsp + 0xf8], rax
lea rdx, str.247e786e63606766
lea rcx, [rsp + 0x2c8]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x270]
call fcn.140022814
nop
mov rdx, qword [rax]
lea r12, [r13 + 0x20]
test rdx, rdx
je 0x140046934
mov rcx, qword [r12]
cmp dword [rcx - 0x10], r14d
jl 0x140046934
call fcn.1400bde0c
test rax, rax
jne 0x14004693d
or r15, 0xffffffffffffffff
mov eax, r15d
jmp 0x140046948
sub rax, qword [r12]
sar rax, 1
or r15, 0xffffffffffffffff
cmp eax, r15d
setne bl
mov rdx, qword [rsp + 0x270]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046972
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
jne 0x1400469bd
mov qword [r13 + 0x2d8], 0xffffffff80000001
mov qword [0x1401a3d48], 0xffffffff80000001
lea rax, [rsp + 0x2d0]
mov qword [rsp + 0x38], rax
lea r8, [r13 + 0x198]
lea rdx, str.Software_
lea rcx, [rsp + 0x2d0]
call fcn.140017ca4
nop
mov rcx, rax
call fcn.14003da20
mov rax, qword [r13 + 0x2d8]
mov qword [r13 + 0x2c0], rax
call fcn.1400422ac
mov rdx, rax
lea rcx, [r13 + 0x198]
test rax, rax
jne 0x1400469e4
mov eax, r14d
jmp 0x1400469f1
mov rax, r15
inc rax
cmp word [rdx + rax*2], r14w
jne 0x1400469e7
mov r8d, eax
call fcn.14000e294
cmp dword [r13 + 0x2d0], r14d
jne 0x140046a0d
mov dword [r13 + 0x2d0], 1
lea rax, [rsp + 0x138]
mov qword [rsp + 0x38], rax
lea rdx, str.24606e6e7b6a67627d6e62657f636e6f6a796036
lea rcx, [rsp + 0x138]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x260]
call fcn.140022814
nop
mov rdx, qword [rax]
test rdx, rdx
je 0x140046a5c
mov rcx, qword [r12]
cmp dword [rcx - 0x10], r14d
jl 0x140046a5c
call fcn.1400bde0c
test rax, rax
jne 0x140046a61
mov eax, r15d
jmp 0x140046a68
sub rax, qword [r12]
sar rax, 1
test eax, eax
setns bl
mov rdx, qword [rsp + 0x260]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046a91
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140046b64
lea rax, [rsp + 0x148]
mov qword [rsp + 0x38], rax
lea rdx, str.24606e6e7b6a67627d6e62657f636e6f6a796036
lea rcx, [rsp + 0x148]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x158]
call fcn.140022814
nop
mov r8, rax
mov rdx, r12
lea rcx, [rsp + 0x2a0]
call fcn.140021c80
nop
mov rdx, qword [rax]
lea rcx, [rsp + 0x380]
call fcn.140017ecc
nop
mov rcx, qword [rax]
call fcn.1400be1d8
mov dword [r13 + 0x1e0], eax
lea rax, [rsp + 0x388]
mov rcx, qword [rsp + 0x380]
cmp rcx, rax
je 0x140046b1b
call fcn.1400bdb00
nop
mov rdx, qword [rsp + 0x2a0]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046b40
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x158]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046b64
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsp + 0x200]
mov qword [rsp + 0x38], rax
lea rdx, str.247c6a627f7f62666e696e7f7c6e6e6568636e68607836
lea rcx, [rsp + 0x200]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x168]
call fcn.140022814
nop
mov rdx, qword [rax]
test rdx, rdx
je 0x140046bb3
mov rcx, qword [r12]
cmp dword [rcx - 0x10], r14d
jl 0x140046bb3
call fcn.1400bde0c
test rax, rax
jne 0x140046bb8
mov eax, r15d
jmp 0x140046bbf
sub rax, qword [r12]
sar rax, 1
test eax, eax
setns bl
mov rdx, qword [rsp + 0x168]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046be8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140046cbb
lea rax, [rsp + 0x208]
mov qword [rsp + 0x38], rax
lea rdx, str.247c6a627f7f62666e696e7f7c6e6e6568636e68607836
lea rcx, [rsp + 0x208]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x218]
call fcn.140022814
nop
mov r8, rax
mov rdx, r12
lea rcx, [rsp + 0x178]
call fcn.140021c80
nop
mov rdx, qword [rax]
lea rcx, [rsp + 0x410]
call fcn.140017ecc
nop
mov rcx, qword [rax]
call fcn.1400be1d8
mov dword [r13 + 0x1dc], eax
lea rax, [rsp + 0x418]
mov rcx, qword [rsp + 0x410]
cmp rcx, rax
je 0x140046c72
call fcn.1400bdb00
nop
mov rdx, qword [rsp + 0x178]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046c97
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x218]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046cbb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsp + 0x188]
mov qword [rsp + 0x38], rax
lea rdx, str.246f6e697e6c6d62676e
lea rcx, [rsp + 0x188]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x228]
call fcn.140022814
nop
mov rdx, qword [rax]
test rdx, rdx
je 0x140046d0a
mov rcx, qword [r12]
cmp dword [rcx - 0x10], r14d
jl 0x140046d0a
call fcn.1400bde0c
test rax, rax
jne 0x140046d0f
mov eax, r15d
jmp 0x140046d16
sub rax, qword [r12]
sar rax, 1
test eax, eax
setns bl
mov rdx, qword [rsp + 0x228]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046d3f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140046e85
lea rax, [rsp + 0x198]
mov qword [rsp + 0x38], rax
lea rdx, [0x14013c654]
lea rcx, [rsp + 0x108]
call fcn.140002c48
nop
lea rdx, str.246f6e697e6c6d62676e
lea rcx, [rsp + 0x198]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x1a8]
call fcn.140022814
nop
mov r8, rax
mov rdx, r12
lea rcx, [rsp + 0x238]
call fcn.140021c80
nop
mov r8, rax
lea rdx, [rsp + 0x108]
lea rcx, [rsp + 0xf0]
call fcn.14000d870
nop
mov rdx, qword [rsp + 0x238]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046de1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x1a8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046e06
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x108]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046e2a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rcx, [r13 + 0x2b0]
lea rdx, [rsp + 0xf0]
call fcn.140001ff8
lea r9, [r13 + 0x1f0]
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r14d
lea r8, [0x14004b614]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
nop
mov rdx, qword [rsp + 0xf0]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046e85
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdi, [0x1401a09a8]
mov rcx, rdi
mov rax, qword [0x1401a09a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x248]
mov qword [rsp + 0x38], rax
lea rdx, str.244f6767456a666e3d3f5f644265616e687f5f6448637964666e
lea rcx, [rsp + 0x248]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x1b8]
call fcn.140022814
nop
mov rdx, qword [rax]
test rdx, rdx
je 0x140046ef1
mov rcx, qword [r12]
cmp dword [rcx - 0x10], r14d
jl 0x140046ef1
call fcn.1400bde0c
test rax, rax
jne 0x140046ef6
mov eax, r15d
jmp 0x140046efd
sub rax, qword [r12]
sar rax, 1
test eax, eax
setns bl
mov rdx, qword [rsp + 0x1b8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046f26
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140046fcc
lea rax, [rsp + 0x258]
mov qword [rsp + 0x38], rax
lea rdx, str.244f6767456a666e3d3f5f644265616e687f5f6448637964666e
lea rcx, [rsp + 0x258]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x268]
call fcn.140022814
nop
mov r8, rax
mov rdx, r12
lea rcx, [rsp + 0x1c8]
call fcn.140021c80
nop
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.140001ff8
nop
mov rdx, qword [rsp + 0x1c8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046fa8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x268]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140046fcc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, rdi
mov rax, qword [0x1401a09a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x60], rax
mov rcx, rdi
mov rax, qword [0x1401a09a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x1d8]
mov qword [rsp + 0x38], rax
lea rdx, str.244f6767456a666e3d3f543a5f644265616e687f5f6448637964666e36
lea rcx, [rsp + 0x1d8]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x278]
call fcn.140022814
nop
mov rdx, qword [rax]
test rdx, rdx
je 0x140047047
mov rcx, qword [r12]
cmp dword [rcx - 0x10], r14d
jl 0x140047047
call fcn.1400bde0c
test rax, rax
jne 0x14004704c
mov eax, r15d
jmp 0x140047053
sub rax, qword [r12]
sar rax, 1
test eax, eax
setns bl
mov rdx, qword [rsp + 0x278]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x14004707c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140047122
lea rax, [rsp + 0x1e8]
mov qword [rsp + 0x38], rax
lea rdx, str.244f6767456a666e3d3f543a5f644265616e687f5f6448637964666e36
lea rcx, [rsp + 0x1e8]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x1f8]
call fcn.140022814
nop
mov r8, rax
mov rdx, r12
lea rcx, [rsp + 0x288]
call fcn.140021c80
nop
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140001ff8
nop
mov rdx, qword [rsp + 0x288]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1400470fe
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x1f8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047122
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsp + 0x120]
mov qword [rsp + 0x38], rax
lea rdx, str.244f6767456a666e3d3f54395f644265616e687f5f6448637964666e36
lea rcx, [rsp + 0x120]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x2a8]
call fcn.140022814
nop
mov rdx, qword [rax]
test rdx, rdx
je 0x140047171
mov rcx, qword [r12]
cmp dword [rcx - 0x10], r14d
jl 0x140047171
call fcn.1400bde0c
test rax, rax
jne 0x140047176
mov eax, r15d
jmp 0x14004717d
sub rax, qword [r12]
sar rax, 1
test eax, eax
setns bl
mov rdx, qword [rsp + 0x2a8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1400471a6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x14004724c
lea rax, [rsp + 0x210]
mov qword [rsp + 0x38], rax
lea rdx, str.244f6767456a666e3d3f54395f644265616e687f5f6448637964666e36
lea rcx, [rsp + 0x210]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x220]
call fcn.140022814
nop
mov r8, rax
mov rdx, r12
lea rcx, [rsp + 0x2c0]
call fcn.140021c80
nop
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.140001ff8
nop
mov rdx, qword [rsp + 0x2c0]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047228
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x220]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x14004724c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, rdi
mov rax, qword [0x1401a09a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x280]
mov qword [rsp + 0x38], rax
lea rdx, str.2465647d6a3d3f69627f6e736e
lea rcx, [rsp + 0x280]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x230]
call fcn.140022814
nop
mov rdx, qword [rax]
test rdx, rdx
je 0x1400472b1
mov rcx, qword [r12]
cmp dword [rcx - 0x10], r14d
jl 0x1400472b1
call fcn.1400bde0c
test rax, rax
jne 0x1400472b6
mov eax, r15d
jmp 0x1400472bd
sub rax, qword [r12]
sar rax, 1
test eax, eax
setns bl
mov rdx, qword [rsp + 0x230]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1400472e6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x14004738d
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0x38], rax
lea rdx, str.2465647d6a3d3f69627f6e736e
lea rcx, [rsp + 0x2b0]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x290]
call fcn.140022814
nop
mov r8, rax
mov rdx, r12
lea rcx, [rsp + 0x240]
call fcn.140021c80
nop
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.140001ff8
nop
mov rdx, qword [rsp + 0x240]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047368
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x290]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x14004738d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rax, [rsp + 0x250]
mov qword [rsp + 0x348], rax
lea rax, [rsp + 0x128]
mov qword [rsp + 0x358], rax
lea rax, [rsp + 0x130]
mov qword [rsp + 0x368], rax
lea rax, [rsp + 0x140]
mov qword [rsp + 0x340], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x250]
call fcn.140002bac
mov rsi, rax
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x128]
call fcn.140002bac
mov rdi, rax
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x130]
call fcn.140002bac
mov rbx, rax
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x140]
call fcn.140002bac
nop
mov qword [rsp + 0x20], rsi
mov r9, rdi
mov r8, rbx
mov rdx, rax
mov rcx, r13
call fcn.140047dc8
mov edi, 1
mov dl, dil
mov rcx, r13
call fcn.14004bdbc
lea rax, [rsp + 0x150]
mov qword [rsp + 0x300], rax
lea rdx, str.246f64657f7c6a627f6d647967626c637f
lea rcx, [rsp + 0x150]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x160]
call fcn.140022814
mov qword [rsp + 0x378], rax
mov rdx, qword [rax]
mov qword [rsp + 0x310], rdx
mov qword [rsp + 0x350], r12
test rdx, rdx
jne 0x14004749f
mov ecx, r15d
jmp 0x1400474e0
mov rcx, qword [r12]
mov eax, dword [rcx - 0x10]
mov dword [rsp + 0x2b8], eax
test eax, eax
js 0x14004749a
mov qword [rsp + 0x320], rcx
call fcn.1400bde0c
mov rcx, rax
mov qword [rsp + 0x370], rax
test rax, rax
je 0x14004749a
mov rax, qword [r12]
mov qword [rsp + 0x330], rax
sub rcx, rax
sar rcx, 1
mov dword [rsp + 0x48], ecx
cmp ecx, r15d
sete byte [rsp + 0x40]
mov rcx, qword [rsp + 0x160]
add rcx, 0xffffffffffffffe8
mov qword [rsp + 0x170], rcx
mov eax, r15d
lock xadd dword [rcx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047520
mov rdx, qword [rsp + 0x170]
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp byte [rsp + 0x40], r14b
je 0x14004788a
mov rcx, r13
call fcn.14004a400
mov ebx, eax
mov dword [rsp + 0x7c], eax
mov r11d, dword [0x1401a8d80]
lea ecx, [r11 + 1]
imul ecx, r11d
mov eax, 0x38e38e39
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*8]
add eax, eax
sub ecx, eax
cmp ecx, 7
jne 0x1400475df
mov r10d, 0xc4
mov dword [rsp + 0x80], r10d
mov ecx, r14d
mov dword [rsp + 0x78], ecx
cmp ecx, r10d
jge 0x1400475df
mov r9d, r14d
mov dword [rsp + 0x70], r14d
mov eax, r11d
cdq
sub eax, edx
sar eax, 1
cmp r9d, eax
jge 0x1400475db
mov r8d, r14d
mov dword [rsp + 0x84], r14d
mov eax, r11d
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp r8d, eax
jge 0x1400475d1
mov eax, r9d
imul eax, ecx
sub eax, r8d
add r10d, eax
mov dword [rsp + 0x80], r10d
add r8d, edi
mov dword [rsp + 0x84], r8d
jmp 0x14004759f
add r9d, edi
mov dword [rsp + 0x70], r9d
jmp 0x140047587
add ecx, edi
jmp 0x140047576
test ebx, ebx
je 0x14004769c
lea rax, [rsp + 0x180]
mov qword [rsp + 0x360], rax
lea rdx, str.246f6e697e6c6d62676e
lea rcx, [rsp + 0x180]
call fcn.140001f2c
nop
mov rdx, rax
lea rcx, [rsp + 0x190]
call fcn.140022814
mov qword [rsp + 0x2f0], rax
mov ebx, dword [rsp + 0x44]
or ebx, edi
mov dword [rsp + 0x44], ebx
mov rdx, qword [rax]
mov qword [rsp + 0x2f8], rdx
lea rsi, [r13 + 0x20]
mov qword [rsp + 0x308], rsi
test rdx, rdx
je 0x140047695
mov rcx, qword [rsi]
mov eax, dword [rcx - 0x10]
mov dword [rsp + 0x298], eax
test eax, eax
js 0x140047695
mov qword [rsp + 0x318], rcx
call fcn.1400bde0c
mov rcx, rax
mov qword [rsp + 0x328], rax
test rax, rax
je 0x140047695
mov rax, qword [rsi]
mov qword [rsp + 0x338], rax
sub rcx, rax
sar rcx, 1
mov dword [rsp + 0x1e0], ecx
cmp ecx, r15d
jne 0x1400476a0
mov byte [rsp + 0x30], dil
jmp 0x1400476a5
mov ebx, dword [rsp + 0x44]
mov byte [rsp + 0x30], r14b
test dil, bl
je 0x1400476e5
and ebx, 0xfffffffe
mov dword [rsp + 0x44], ebx
mov rcx, qword [rsp + 0x190]
add rcx, 0xffffffffffffffe8
mov qword [rsp + 0x1a0], rcx
mov eax, r15d
lock xadd dword [rcx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1400476e5
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp byte [rsp + 0x30], r14b
je 0x1400477c0
mov rcx, qword [rsp + 0x50]
add rcx, 0xffffffffffffffe8
mov qword [rsp + 0x1b0], rcx
mov eax, r15d
lock xadd dword [rcx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047722
mov rdx, qword [rsp + 0x1b0]
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x68]
add rcx, 0xffffffffffffffe8
mov qword [rsp + 0x1c0], rcx
mov eax, r15d
lock xadd dword [rcx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047754
mov rdx, qword [rsp + 0x1c0]
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x60]
add rcx, 0xffffffffffffffe8
mov qword [rsp + 0x1d0], rcx
mov eax, r15d
lock xadd dword [rcx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047786
mov rdx, qword [rsp + 0x1d0]
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x58]
add rcx, 0xffffffffffffffe8
mov qword [rsp + 0xf8], rcx
mov eax, r15d
lock xadd dword [rcx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1400477b7
mov rdx, qword [rsp + 0xf8]
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, dword [rsp + 0x7c]
jmp 0x140047ceb
mov r8d, dword [0x1401a8d80]
mov ecx, r8d
imul ecx, r8d
imul ecx, r8d
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xd
sub ecx, edx
cmp ecx, 9
jne 0x140047897
mov r9d, r14d
mov dword [rsp + 0x74], r14d
test r8d, r8d
je 0x140047897
add r9d, edi
mov dword [rsp + 0x74], r9d
mov eax, r8d
and eax, 0x80000001
jge 0x14004781b
sub eax, edi
or eax, 0xfffffffe
add eax, edi
test eax, eax
jne 0x140047832
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov dword [0x1401a8d80], eax
jmp 0x140047841
lea r8d, [r8*2 + 1]
mov dword [0x1401a8d80], r8d
mov eax, 0x55555556
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
mov ecx, r8d
sub ecx, eax
je 0x140047865
sub ecx, 2
je 0x140047870
dec ecx
je 0x14004787a
jmp 0x140047885
add r8d, 2
mov dword [0x1401a8d80], r8d
add r8d, edi
mov dword [0x1401a8d80], r8d
add r8d, 2
mov dword [0x1401a8d80], r8d
jmp 0x1400477f9
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [r13 + 0x1d8], eax
mov qword [r13 + 0x2a8], r13
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rbx, rax
lea rax, vtable.WTL::CMessageLoop.0
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], r14
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0xb0], r14
lea rdx, [rsp + 0x90]
call fcn.1400410b8
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [r13 + 0x1e4], eax
lea rcx, [r13 + 0x1f0]
mov rdx, rbx
call fcn.14004d238
test rax, rax
jne 0x140047a29
call fcn.140041cb4
mov rdx, rax
lea rcx, [rsp + 0x100]
call fcn.140001f2c
nop
lea rdx, [rsp + 0x100]
mov rcx, r13
call fcn.14004c728
nop
mov rdx, qword [rsp + 0x100]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047954
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x14004796e
call fcn.1400bdb00
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0xb0], r14
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x140047990
call fcn.1400bdb00
mov qword [rsp + 0x98], r14
mov qword [rsp + 0xa0], r14
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1400479ba
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1400479dc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1400479fe
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047a1f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 2
jmp 0x140047ceb
mov esi, r14d
mov ebx, edi
jmp 0x140047a6d
mov dword [rsp + 0x20], r14d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0xb8]
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x140047a71
mov edx, esi
lea rcx, [rsp + 0x90]
mov rax, qword [rsp + 0x90]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add esi, edi
test eax, eax
jne 0x140047a6d
mov ebx, r14d
test ebx, ebx
jne 0x140047a30
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0xb8]
call qword [sym.imp.USER32.dll_GetMessageW]
cmp eax, r15d
je 0x140047a6d
test eax, eax
je 0x140047aee
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x90]
mov rax, qword [rsp + 0x90]
call qword [rax]
test eax, eax
jne 0x140047aca
lea rcx, [rsp + 0xb8]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0xb8]
call qword [sym.imp.USER32.dll_DispatchMessageW]
mov eax, dword [rsp + 0xc0]
sub eax, 0xf
je 0x140047a6d
sub eax, 0x91
je 0x140047a6d
sub eax, 0x78
je 0x140047a6d
cmp eax, 0xe8
je 0x140047a6d
jmp 0x140047a29
mov rbx, qword [0x1401aae18]
add rbx, 0x18
mov qword [rsp + 0x2d8], rbx
mov byte [rsp + 0x2e0], r14b
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [rsp + 0x2e0], dil
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r8d, eax
mov edx, r14d
mov rcx, qword [0x1401aad98]
cmp dword [rcx + 0x10], r14d
jle 0x140047b46
mov rax, qword [rcx]
cmp dword [rax], r8d
je 0x140047b49
add edx, edi
add rax, 4
cmp edx, dword [rcx + 0x10]
jl 0x140047b36
mov edx, r15d
cmp edx, r15d
je 0x140047b53
call fcn.14004d4c4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [rsp + 0x2e0], r14b
lea rdx, str.task
mov rcx, qword [r13 + 0xe0]
call fcn.1400d0fa0
test eax, eax
sete al
test al, al
je 0x140047b89
mov rcx, r13
call fcn.140014274
nop
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x140047ba3
call fcn.1400bdb00
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0xb0], r14
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x140047bc5
call fcn.1400bdb00
mov qword [rsp + 0x98], r14
mov qword [rsp + 0xa0], r14
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047bef
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047c11
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047c33
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140047c54
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140047ceb
mov rcx, qword [rsp + 0x4a0]
xor rcx, rsp
call fcn.1400bcfc0
lea r11, [rsp + 0x4b0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret