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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov ebx, dword [rsp + 0xe0]
lea eax, [r8 - 0x12]
mov dword [rsp + 0x78], eax
mov rbp, r9
mov r13d, r8d
mov r12, rdx
mov r15, rcx
cmp r8d, eax
jbe case.0x1800473d0.51
lea rdx, [0x180000000]
lea eax, [r13 - 0x33]
cmp eax, 0x4b
ja case.0x1800473d0.64
movzx eax, byte [rdx + rax + 0x479a0]
mov ecx, dword [rdx + rax*4 + 0x47968]
add rcx, rdx
jmp rcx
movsxd rcx, dword [r15 + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
movsxd r8, dword [r15 + 8]
mov rcx, rax
mov rdx, qword [r15]
mov rdi, rax
mov qword [rsp + 0x80], rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [r15], rdi
jmp 0x180047649
xor ebx, ebx
jmp case.0x1800473d0.64
mov qword [rsp + 0x88], r12
jmp case.0x1800473d0.64
mov edx, dword [r12]
test edx, edx
je 0x18004742a
mov ecx, dword [r15 + 0x28]
add ecx, edx
cmp ecx, dword [r15 + 0x24]
jg 0x180047951
add dword [r15 + 0x28], edx
jmp 0x180047649
movsxd rcx, dword [r15 + 0x18]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
movsxd r8, dword [r15 + 0x18]
mov rcx, rax
mov rdx, qword [r15 + 0x10]
mov qword [rsp + 0x80], rax
call sub.VCRUNTIME140.dll_memcpy
jmp 0x180047649
test r12, r12
je 0x18004794a
mov ecx, dword [r12 + 4]
test ecx, ecx
je 0x18004794a
add ecx, dword [r15 + 4]
cmp dword [r15], ecx
jge 0x1800474c4
mov edi, 0x55
nop
mov eax, edi
sub eax, 0x55
je 0x1800474ac
cmp eax, 0x3b
jne 0x1800474b9
movsxd rdx, dword [r15]
mov rcx, qword [r15 + 8]
shl rdx, 2
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x18004795b
mov qword [r15 + 8], rax
jmp 0x1800474b9
mov eax, dword [r15]
add eax, dword [r12 + 4]
add eax, eax
mov dword [r15], eax
add edi, 0x3b
cmp edi, 0xcb
jb 0x180047480
mov r10d, dword [r12 + 4]
xor ebp, ebp
xor esi, esi
xor r14d, r14d
mov eax, r10d
test r10d, r10d
jle 0x180047607
mov r9d, dword [r15 + 4]
mov ecx, r10d
mov eax, ecx
cmp r14d, r9d
jge 0x180047607
mov rax, qword [r12 + 8]
mov r11d, dword [rax + rsi*4]
lea r8, [rax + rsi*4]
mov r13, qword [r15 + 8]
nop
lea eax, [r9 + r14]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
cmp dword [r13 + rdx*4], r11d
lea eax, [rdx + 1]
cmovge eax, r14d
cmovge r9d, edx
movsxd r14, eax
cmp r14d, r9d
jl 0x180047500
mov r9d, dword [r15 + 4]
mov eax, r10d
cmp r14d, r9d
jge 0x180047607
lea rax, [r14*4]
add rax, r13
mov qword [rsp + 0x70], rax
mov eax, dword [rax]
cmp eax, r11d
jne 0x180047563
mov rdi, qword [rsp + 0xd8]
inc ebp
inc rsi
mov r12d, 1
jmp 0x1800475e9
mov dword [rsp + 0xe0], ebp
mov r11d, ebp
cmp ebp, r10d
jge 0x180047588
movsxd rcx, r10d
cmp dword [r8], eax
jge 0x180047588
inc ebp
inc rsi
add r8, 4
cmp rsi, rcx
jl 0x180047575
mov rdx, qword [rsp + 0x70]
sub r9d, r14d
movsxd r8, r9d
mov r12d, ebp
sub r12d, r11d
shl r8, 2
movsxd rdi, r12d
lea rax, [rdi + r14]
lea rcx, [rax*4]
add rcx, r13
call sub.VCRUNTIME140.dll_memmove
movsxd rcx, dword [rsp + 0xe0]
lea r8, [rdi*4]
mov rdi, qword [rsp + 0xd8]
mov rax, qword [rdi + 8]
lea rdx, [rax + rcx*4]
mov rax, qword [r15 + 8]
lea rcx, [rax + r14*4]
call sub.VCRUNTIME140.dll_memcpy
add dword [r15 + 4], r12d
mov r9d, dword [r15 + 4]
mov r10d, dword [rdi + 4]
add r14d, r12d
mov r12, qword [rsp + 0xd8]
mov ecx, r10d
mov eax, r10d
cmp ebp, r10d
jl 0x1800474e3
mov r13d, 0x6c
cmp ebp, eax
jge 0x180047641
sub eax, ebp
movsxd rcx, ebp
movsxd r8, eax
mov rax, qword [r12 + 8]
shl r8, 2
lea rdx, [rax + rcx*4]
mov rax, qword [r15 + 8]
movsxd rcx, r14d
lea rcx, [rax + rcx*4]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [r12 + 4]
sub eax, ebp
add dword [r15 + 4], eax
mov rbp, qword [rsp + 0xe8]
lea rdx, [0x180000000]
dec r13d
mov dword [rsp + 0xe0], r13d
cmp r13d, dword [rsp + 0x78]
ja 0x1800473b1
mov eax, ebx
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov dword [rsp + 0x50], 0
jmp case.0x1800473d0.64
mov rcx, qword [r15 + 0x28]
call qword [r15 + 0x20]
test al, al
je 0x180047714
mov r13d, dword [rsp + 0x54]
mov ebx, 0xa1
mov eax, ebx
sub eax, 0xa1
je 0x1800476ec
sub eax, 1
je 0x1800476bc
cmp eax, 1
jne 0x1800476f5
call qword [r15 + 0x50]
jmp 0x1800476f5
mov r8d, 0xf9
mov rdx, r15
xor ecx, ecx
call fcn.18001c590
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
sub ecx, r13d
mul ecx
mov r12d, edx
shr r12d, 6
mov dword [rsp + 0x50], r12d
jmp 0x1800476f5
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r13d, eax
inc ebx
cmp ebx, 0xa4
jb 0x1800476a3
mov r12, qword [rsp + 0xd8]
mov dword [rsp + 0x54], r13d
mov r13d, dword [rsp + 0xe0]
mov rcx, qword [0x180357730]
xor r9d, r9d
mov qword [rsp + 0x30], 0
xor r8d, r8d
mov dword [rsp + 0x28], 0x11b
xor edx, edx
mov qword [rsp + 0x20], 0
call fcn.180028e90
mov ebx, dword [rsp + 0x50]
jmp 0x180047649
mov r8, qword [0x180357730]
mov r9d, 0xd0
xor edx, edx
xor ecx, ecx
call fcn.18001b270
test al, al
je 0x18004794a
jmp 0x180047649
mov rax, qword [rsp + 0x80]
mov qword [r15 + 0x10], rax
jmp case.0x1800473d0.64
mov r14, qword [rsp + 0x88]
xor r9d, r9d
mov r8, r15
xor ecx, ecx
mov rsi, qword [r14 + 0x18]
lea edx, [r9 + 0x4e]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call fcn.18002d7b0
mov rdx, qword [rsp + 0xf0]
test rdx, rdx
je 0x18004789f
mov edi, 0xdc
nop word [rax + rax]
mov eax, edi
sub eax, 0xda
je case.0x1800473d0.51
sub eax, 1
je 0x18004788c
cmp eax, 1
jne 0x180047891
movsxd rcx, dword [r14 + 4]
lea r8, [rsp + 0x58]
mov eax, dword [r14]
lea r9, [rsp + 0x68]
movd xmm0, dword [rsi + 0x10]
mov qword [rsp + 0x40], r8
lea r8, [rsp + 0xe0]
mov qword [rsp + 0x38], r8
lea r8, [rsp + 0x60]
mov dword [rsp + 0xe0], ecx
mov dword [rsp + 0x60], eax
cvtdq2ps xmm0, xmm0
mov dword [rsp + 0x30], ILAppendID
mov qword [rsp + 0x28], r8
mov r8, rdx
movss dword [rsp + 0x70], xmm0
movss xmm0, dword [rdx + rcx*4]
mov rdx, rbp
movsxd rcx, dword [r15 + 0x2c]
movss dword [rsp + 0x68], xmm0
mov eax, dword [r14 + rcx*4 + 0x10]
mov dword [rsp + 0x58], eax
mov rax, qword [r14 + 8]
mov rax, qword [rax + rcx*8]
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x20], rax
call fcn.180061930
mov rdx, qword [rsp + 0xf0]
jmp 0x180047891
mov ebx, 1
dec edi
cmp edi, 0xd9
ja 0x1800477e0
movsxd rax, dword [r15 + 0x2c]
xor edx, edx
mov rcx, rbp
movsxd r8, dword [r14 + rax*4 + 0x10]
shl r8, 2
call sub.VCRUNTIME140.dll_memset
jmp 0x180047649
mov rax, qword [0x180357730]
lea rdx, [rsp + 0xe0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
mov r8d, 0x10e
mov byte [rsp + 0xe0], 1
xor ecx, ecx
call fcn.18005e060
mov qword [rsp + 0x30], 0
mov r9, r15
mov qword [rsp + 0x28], 0
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], 0
mov ecx, 0xb6
call fcn.180099b80
test al, al
jne 0x180047649
mov rcx, qword [0x180357730]
xor r9d, r9d
mov qword [rsp + 0x30], 0
xor r8d, r8d
mov dword [rsp + 0x28], 0x11b
xor edx, edx
mov qword [rsp + 0x20], 0
call fcn.180028e90
xor eax, eax
jmp 0x180047668
mov eax, 0xffffff7d
jmp 0x180047668
mov eax, 0xc
jmp 0x180047668