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

Disassembly:
push r12
push r14
sub rsp, 0x58
movzx r14d, byte [0x140140267]
mov rax, qword [0x140140518]
movsxd r12, ecx
or r14b, byte [0x140140266]
mov qword [rsp + 0x80], rax
mov byte [rsp + 0x78], r14b
jne 0x140015241
xor edx, edx
xor ecx, ecx
add rsp, 0x58
pop r14
pop r12
jmp fcn.140016090
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rdi
mov rdi, qword [0x140140500]
test rdi, rdi
jne 0x1400153e0
mov ecx, 0x1800
call qword [sym.imp.MSVCR100.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov qword [0x140140500], rax
test rax, rax
je 0x1400153d6
mov ecx, 0x3000
call qword [sym.imp.MSVCR100.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov qword [0x140140508], rax
test rax, rax
je 0x1400153d6
mov ecx, 0x20000
call qword [sym.imp.MSVCR100.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov qword [0x1401404e8], rax
test rax, rax
je 0x1400153d6
mov ecx, 0x40000
call qword [sym.imp.MSVCR100.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov rbp, rax
mov qword [0x1401404f0], rax
test rax, rax
je 0x1400153d6
movsxd rcx, dword [0x140140520]
add rcx, rcx
call qword [sym.imp.MSVCR100.dll_malloc]
mov rbx, rax
mov qword [0x1401404f8], rax
test rax, rax
je 0x1400153d6
mov rdi, qword [0x140140500]
xor edx, edx
mov r8d, 0x1800
mov rcx, rdi
call sub.MSVCR100.dll_memset
mov rsi, qword [0x140140508]
xor edx, edx
mov rcx, rsi
mov r8d, 0x3000
call sub.MSVCR100.dll_memset
mov byte [rdi + 0x1a4], 3
mov byte [rdi + 0xf3c], 1
mov byte [rdi + 0xf54], 2
mov byte [rdi + 0x1bc], reloc.WSOCK32.dll_ioctlsocket
mov byte [rdi + 0xf6c], 4
mov byte [rdi + 0xf84], 8
mov byte [rdi + 0x18c], gethostbyaddr
mov byte [rdi + 0xf0c], 0x10
mov byte [rdi + 0xf24], 0x20
mov byte [rdi + 0x894], 0x40
mov byte [rdi + 0x8ac], 0x80
mov byte [rsi + 0x2c4], 1
mov byte [rsi + 0x1ac4], 2
mov byte [rsi + 0x54c], 4
mov byte [rsi + 0x1d4c], 8
mov byte [rsi + 0x3fc], 0x10
mov byte [rsi + 0x1d1c], 0x20
mov byte [rsi + 0x2094], 0x40
mov byte [rsi + 0x20ac], 0x80
lea rax, [0x14013b1d4]
mov qword [rdi + 0xd98], rax
lea rax, [0x14013b1d0]
mov qword [rdi + 0x1e0], rax
lea rax, str._a_a_a_v
mov qword [rdi + 0xd80], rax
jmp 0x1400153f5
call fcn.1400167a0
jmp 0x140015eb4
mov rsi, qword [0x140140508]
mov rbp, qword [0x1401404f0]
mov rbx, qword [0x1401404f8]
mov qword [rsp + 0x38], r13
lea rax, [rdi + 0xd]
mov ecx, 0x40
mov qword [rsp + 0x30], r15
mov r9d, 0x7fff
nop
and byte [rax + 3], 8
and byte [rax + 0x1b], 8
and byte [rax + 0x33], 8
and byte [rax + 0x4b], 8
mov word [rax - 3], r9w
mov word [rax], 0
mov byte [rax + 2], 0
mov byte [rax + 0xa], 0
mov word [rax + 0x15], r9w
mov word [rax + 0x18], 0
mov byte [rax + 0x1a], 0
mov byte [rax + 0x22], 0
mov word [rax + 0x2d], r9w
mov word [rax + 0x30], 0
mov byte [rax + 0x32], 0
mov byte [rax + 0x3a], 0
mov word [rax + 0x45], r9w
mov word [rax + 0x48], 0
mov byte [rax + 0x4a], 0
mov byte [rax + 0x52], 0
add rax, 0x60
dec rcx
jne 0x140015410
lea rax, [rsi + 0xd]
mov ecx, 0x80
nop dword [rax]
and byte [rax + 3], 8
and byte [rax + 0x1b], 8
and byte [rax + 0x33], 8
and byte [rax + 0x4b], 8
mov word [rax - 3], r9w
mov word [rax], 0
mov byte [rax + 2], 0
mov byte [rax + 0xa], 0
mov word [rax + 0x15], r9w
mov word [rax + 0x18], 0
mov byte [rax + 0x1a], 0
mov byte [rax + 0x22], 0
mov word [rax + 0x2d], r9w
mov word [rax + 0x30], 0
mov byte [rax + 0x32], 0
mov byte [rax + 0x3a], 0
mov word [rax + 0x45], r9w
mov word [rax + 0x48], 0
mov byte [rax + 0x4a], 0
mov byte [rax + 0x52], 0
add rax, 0x60
dec rcx
jne 0x140015480
lea rdx, [0x14013ca28]
lea edi, [rcx + 0xd]
mov r8d, 0x1fe
movzx ecx, word [rdx]
lea eax, [rcx - 1]
cmp ax, r8w
ja 0x14001550c
movzx eax, cx
lea rcx, [rax + rax*2]
mov byte [rsi + rcx*8 + 0x17], 1
add rdx, 0x10
dec rdi
jne 0x1400154f4
mov rdi, qword [0x1401404e8]
movzx eax, r9w
mov ecx, 0x10000
rep stosw word [rdi], ax
movzx eax, r9w
mov rdi, rbp
mov ecx, 0x20000
rep stosw word [rdi], ax
xor eax, eax
cmp dword [0x140140520], eax
jle 0x140015562
nop word [rax + rax]
mov word [rbx], r9w
inc eax
add rbx, 2
cmp eax, dword [0x140140520]
jl 0x140015550
mov rax, qword [0x14013ccd8]
movzx ecx, word [rax]
mov eax, reloc.WSOCK32.dll_ioctlsocket
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call qword [sym.imp.MSVCR100.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
xor ecx, ecx
xor r15d, r15d
xor r13d, r13d
mov qword [rsp + 0x88], r12
mov qword [rax], rcx
mov qword [rsp + 0x20], rax
test r12d, r12d
jle 0x140015d06
mov rbx, qword [0x140140500]
mov rsi, qword [0x140140508]
mov r14, rax
add r14, 6
mov ecx, 0x1ff
mov r8d, 0x8000
nop dword [rax]
mov rax, qword [rsp + 0x80]
mov rdi, qword [rax + r13*8]
movzx eax, byte [rdi + 0x12]
test al, al
je 0x14001582b
cmp al, 4
jae 0x14001582b
cmp byte [0x14013f888], 0
je 0x140015622
mov rcx, rdi
call fcn.1400113c0
mov rbx, qword [0x140140500]
mov rsi, qword [0x140140508]
test al, al
je 0x14001582b
mov ecx, 0x1ff
mov r8d, 0x8000
cmp word [rdi + 6], 0
je 0x140015679
cmp byte [rdi + 0x19], 0
sete al
test al, al
jne 0x14001582b
movzx edx, byte [rdi + 0x10]
test dl, dl
jne 0x14001564b
cmp word [rdi + 8], 0
je 0x14001582b
cmp dl, 0xff
ja 0x14001582b
movzx eax, word [rdi + 8]
cmp ax, cx
ja 0x14001582b
test dl, dl
jne 0x14001569a
movzx eax, ax
lea rcx, [rax + rax*2]
lea rbp, [rsi + rcx*8]
mov byte [rbp + 0x17], 1
jmp 0x14001577e
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x14001582b
cmp byte [rax + 0x28], 0
jne 0x140015638
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x140015686
jmp 0x14001582b
movzx eax, dl
lea rcx, [rax + rax*2]
lea rbp, [rbx + rcx*8]
movzx ecx, dl
sub ecx, 0x10
je 0x140015740
dec ecx
je 0x140015700
dec ecx
jne 0x14001577e
mov byte [rbx + 0xf6e], 1
mov byte [rbx + 0xf86], 1
mov byte [rsi + 0x54e], 1
mov byte [rsi + 0x1d4e], 1
cmp byte [rdi + 0x16], cl
je 0x14001577e
mov byte [rbx + 0xf6f], 1
mov byte [rbx + 0xf87], 1
mov byte [rsi + 0x54f], 1
mov byte [rsi + 0x1d4f], 1
jmp 0x14001577e
mov byte [rbx + 0xf3e], 1
mov byte [rbx + 0xf56], 1
mov byte [rsi + 0x2c6], 1
mov byte [rsi + 0x1ac6], 1
cmp byte [rdi + 0x16], 0
je 0x14001577e
mov byte [rbx + 0xf3f], 1
mov byte [rbx + 0xf57], 1
mov byte [rsi + 0x2c7], 1
mov byte [rsi + 0x1ac7], 1
jmp 0x14001577e
mov byte [rbx + 0xf0e], 1
mov byte [rbx + 0xf26], 1
mov byte [rsi + 0x3fe], 1
mov byte [rsi + 0x1d1e], 1
cmp byte [rdi + 0x16], 0
je 0x14001577e
mov byte [rbx + 0xf0f], 1
mov byte [rbx + 0xf27], 1
mov byte [rsi + 0x3ff], 1
mov byte [rsi + 0x1d1f], 1
mov byte [rbp + 0xe], 1
cmp byte [rdi + 0x16], 0
movzx r12d, word [rdi + 4]
je 0x140015795
mov byte [rbp + 0xf], 1
or r12w, r8w
movzx ecx, byte [rdi + 0x11]
test cl, cl
jne 0x1400157a8
cmp word [rdi + 0xa], 0
jne 0x1400157a8
xor al, al
jmp 0x1400157aa
mov al, 1
cmp byte [rbp + 0xc], 0
je 0x14001592f
cmp byte [rdi + 0xf], 0
jne 0x14001592f
test al, al
jne 0x140015937
test byte [rdi + 0x13], 2
jne 0x1400157dc
movzx edx, word [rdi + 8]
movzx ecx, byte [rdi + 0x10]
xor r8d, r8d
call fcn.140014f90
cmp byte [rdi + 0xf], 0
jne 0x1400157ec
test byte [rdi + 0x13], 2
je 0x1400157ec
or byte [rbp + 0x10], 1
movzx eax, word [rdi + 6]
test ax, ax
cmovne r12w, ax
inc r15d
add r14, 0xc
mov word [r14 - 8], r12w
movzx eax, byte [rdi + 0x10]
mov byte [r14 - 0xc], al
movzx eax, word [rdi + 8]
mov word [r14 - 0xa], ax
mov eax, dword [rdi]
mov dword [r14 - 0x12], eax
movzx eax, byte [rdi + 0xe]
mov byte [r14 - 0xe], al
movzx eax, byte [rdi + 0x15]
mov byte [r14 - 0xd], al
inc r13
mov ecx, 0x1ff
mov r8d, 0x8000
cmp r13, qword [rsp + 0x88]
jl 0x1400155d0
test r15d, r15d
je 0x140015d00
mov rsi, qword [rsp + 0x20]
movsxd rdi, r15d
lea r9, [0x140014df0]
mov r8d, reloc.WSOCK32.dll_ioctlsocket
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0x28], rdi
call qword [sym.imp.MSVCR100.dll_qsort]
test r15d, r15d
jle 0x140015d00
mov r13, qword [0x1401404f0]
mov r14, qword [0x1401404e8]
lea rdi, [rsi + 0xa]
mov rsi, qword [0x1401404f8]
mov r9d, 8
mov r10d, 0xc0
lea r11, [r13 + 0x270]
lea rbx, [r14 + 0x14a]
mov ecx, 0x7fff
nop word [rax + rax]
movzx r12d, word [rdi]
mov edx, dword [rdi - 0xa]
movzx eax, r12w
and r12w, cx
movzx ecx, byte [rdi - 6]
shr ax, 0xf
mov r8d, edx
mov dword [rsp + 0x88], edx
and al, 1
mov word [rsp + 0x80], ax
test cl, cl
je 0x14001591e
test cl, 0xc0
mov eax, 0
cmovne eax, r9d
test cl, 0xc
je 0x140015903
or eax, 1
test cl, 0x30
je 0x14001590b
or eax, 4
test cl, 3
je 0x140015913
or eax, 2
or r8d, eax
mov dword [rsp + 0x88], r8d
cmp byte [rdi - 5], 0
je 0x140015a61
xor cl, cl
jmp 0x140015a86
test al, al
je 0x1400157dc
test cl, cl
je 0x140015a0d
movzx eax, cl
lea rdx, [rax + rax*2]
cmp byte [rbx + rdx*8 + 0xc], 0
je 0x1400159f3
lea eax, [rcx - 0x10]
cmp al, 2
ja 0x1400159e5
movzx ecx, cl
sub ecx, 0x10
je 0x1400159c0
dec ecx
je 0x140015998
dec ecx
jne 0x140015a4c
mov byte [rbx + 0x1bd], 2
mov byte [rbx + 0xf6d], 2
mov byte [rbx + 0xf85], 2
mov byte [rsi + 0x54d], 2
mov byte [rsi + 0x1d4d], 2
jmp 0x140015a4c
mov byte [rbx + 0x1a5], 2
mov byte [rbx + 0xf3d], 2
mov byte [rbx + 0xf55], 2
mov byte [rsi + 0x2c5], 2
mov byte [rsi + 0x1ac5], 2
jmp 0x140015a4c
mov byte [rbx + 0x18d], 2
mov byte [rbx + 0xf0d], 2
mov byte [rbx + 0xf25], 2
mov byte [rsi + 0x3fd], 2
mov byte [rsi + 0x1d1d], 2
jmp 0x140015a4c
movzx eax, cl
lea rcx, [rax + rax*2]
mov byte [rbx + rcx*8 + 0xd], 1
jmp 0x140015a4c
mov byte [rbx + rdx*8 + 0xd], 1
test byte [rdi + 0x13], 1
je 0x140015a4c
movzx eax, byte [rdi + 0x11]
lea rcx, [rax + rax*2]
or byte [rbx + rcx*8 + 0x10], 1
jmp 0x140015a4c
movzx eax, word [rdi + 0xa]
lea rcx, [rax + rax*2]
cmp byte [rsi + rcx*8 + 0xc], 0
je 0x140015a27
lea rcx, [rax + rax*2]
mov byte [rsi + rcx*8 + 0xd], 1
jmp 0x140015a4c
mov byte [rsi + rcx*8 + 0xd], 1
test byte [rdi + 0x13], 1
je 0x140015a3f
movzx eax, word [rdi + 0xa]
lea rcx, [rax + rax*2]
or byte [rsi + rcx*8 + 0x10], 1
movzx eax, word [rdi + 0xa]
lea rcx, [rax + rax*2]
mov byte [rsi + rcx*8 + 0x17], 1
movzx eax, word [rbp + 0xa]
mov word [rdi + 0xc], ax
movzx eax, word [rdi + 4]
mov word [rbp + 0xa], ax
jmp 0x14001582b
xor al, al
test dl, 8
movzx eax, al
cmovne eax, r10d
test dl, 1
je 0x140015a74
or al, 0xc
test dl, 2
je 0x140015a7b
or al, 3
test dl, 4
je 0x140015a82
or al, 0x30
or cl, al
not cl
xor r9d, r9d
xor ebp, ebp
movzx r15d, cl
xor r10d, r10d
test r9d, r15d
jne 0x140015ca7
test r9b, 0xc0
mov eax, 0
mov ecx, 8
cmovne eax, ecx
test r9b, 0xc
je 0x140015ab5
or eax, 1
test r9b, 0x30
je 0x140015abe
or eax, 4
test r9b, 3
je 0x140015ac7
or eax, 2
and eax, r8d
cmp r8d, eax
jne 0x140015ca7
cmp byte [rdi - 6], 0
je 0x140015aea
movzx ecx, byte [rdi - 6]
mov eax, ecx
and eax, r9d
cmp ecx, eax
jne 0x140015ca7
movzx eax, byte [rdi - 4]
mov ecx, 0x7fff
test al, al
jne 0x140015b93
movzx eax, word [rdi - 2]
add eax, r10d
movsxd r8, eax
movzx edx, word [r13 + r8*2]
cmp dx, cx
jne 0x140015b26
movzx eax, word [rdi]
mov word [r13 + r8*2], ax
mov r8d, dword [rsp + 0x88]
jmp 0x140015cac
movzx eax, dx
shr ax, 0xf
and al, 1
cmp byte [rsp + 0x80], 0
je 0x140015b54
test al, al
jne 0x140015b76
movzx eax, word [rdi]
mov r8d, dword [rsp + 0x88]
and rdx, rcx
mov word [rsi + rdx*2], ax
jmp 0x140015cac
test al, al
je 0x140015b76
movzx eax, r12w
mov word [rsi + rax*2], dx
movzx eax, word [rdi]
mov word [r13 + r8*2], ax
mov r8d, dword [rsp + 0x88]
jmp 0x140015cac
and rdx, rcx
movzx ecx, r12w
movzx eax, word [rsi + rdx*2]
mov word [rsi + rcx*2], ax
movzx eax, word [rdi]
mov word [r13 + r8*2], ax
jmp case.0x140015c26.19
movzx eax, al
add eax, ebp
movsxd r8, eax
movzx edx, word [r14 + r8*2]
cmp dx, cx
je 0x140015bf5
movzx eax, dx
shr ax, 0xf
and al, 1
cmp byte [rsp + 0x80], 0
je 0x140015bd3
test al, al
jne 0x140015be1
movzx eax, word [rdi]
and rdx, rcx
mov word [rsi + rdx*2], ax
mov r8d, dword [rsp + 0x88]
jmp 0x140015cac
test al, al
je 0x140015be1
movzx eax, r12w
mov word [rsi + rax*2], dx
jmp 0x140015bf5
and rdx, rcx
movzx ecx, r12w
movzx eax, word [rsi + rdx*2]
mov word [rsi + rcx*2], ax
mov ecx, 0x7fff
movzx eax, word [rdi]
mov word [r14 + r8*2], ax
movzx eax, byte [rdi - 4]
add eax, 0xfffffff0
cmp eax, 0x95
ja case.default.0x140015c26
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x15ef0]
mov ecx, dword [rdx + rax*4 + 0x15ed4]
add rcx, rdx
jmp rcx
movzx eax, word [rdi]
mov word [rbx - 2], ax
movzx eax, word [rdi]
mov word [r11 - 0x200], ax
cmp byte [rdi - 4], 0xa4
je case.0x140015c26.19
movzx eax, word [rdi]
mov word [rbx], ax
movzx eax, word [rdi]
mov word [r11], ax
jmp case.0x140015c26.19
movzx eax, word [rdi]
mov word [rbx - 0xa], ax
movzx eax, word [rdi]
mov word [r11 - 0x21c], ax
cmp byte [rdi - 4], 0xa0
je case.0x140015c26.19
movzx eax, word [rdi]
mov word [rbx - 8], ax
movzx eax, word [rdi]
mov word [r11 - 4], ax
jmp case.0x140015c26.19
movzx eax, word [rdi]
mov word [rbx - 6], ax
movzx eax, word [rdi]
mov word [r11 - 0x236], ax
cmp byte [rdi - 4], 0xa2
je case.0x140015c26.19
movzx eax, word [rdi]
mov word [rbx - 4], ax
movzx eax, word [rdi]
mov word [r11 - 0x36], ax
mov r8d, dword [rsp + 0x88]
mov ecx, 0x7fff
add r10d, 0x200
inc r9d
add ebp, 0x100
add rbx, 0x200
add r11, 0x400
cmp r10d, 0x1fe00
jle 0x140015a92
add rdi, 0xc
dec qword [rsp + 0x28]
lea r11, [r13 + 0x270]
lea rbx, [r14 + 0x14a]
mov r9d, 8
mov r10d, 0xc0
jne 0x1400158c0
movzx r14d, byte [rsp + 0x78]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void____ptr64_]
mov rdx, qword [0x140140500]
mov r15, qword [rsp + 0x30]
cmp byte [rdx + 0x18e], 0
mov r13, qword [rsp + 0x38]
mov r9d, 0x7fff
je 0x140015da9
movzx r8d, word [rdx + 0x18a]
cmp r8w, r9w
je 0x140015da9
lea rax, [rdx + 0xf0a]
movzx ecx, word [rax]
cmp cx, r9w
je 0x140015d75
mov rdi, qword [0x140140518]
nop word [rax + rax]
movzx eax, cx
mov rax, qword [rdi + rax*8]
movzx ecx, word [rax + 0xc]
add rax, 0xc
cmp cx, r9w
jne 0x140015d60
mov word [rax], r8w
lea rax, [rdx + 0xf22]
movzx ecx, word [rax]
cmp cx, r9w
je 0x140015da5
mov rdi, qword [0x140140518]
movzx eax, cx
mov rax, qword [rdi + rax*8]
movzx ecx, word [rax + 0xc]
add rax, 0xc
cmp cx, r9w
jne 0x140015d90
mov word [rax], r8w
cmp byte [rdx + 0x1a6], 0
je 0x140015e29
movzx r8d, word [rdx + reloc.OLEAUT32.dll_OleCreatePictureIndirect]
cmp r8w, r9w
je 0x140015e29
lea rax, [rdx + 0xf3a]
movzx ecx, word [rax]
cmp cx, r9w
je 0x140015df5
mov rdi, qword [0x140140518]
nop word [rax + rax]
movzx eax, cx
mov rax, qword [rdi + rax*8]
movzx ecx, word [rax + 0xc]
add rax, 0xc
cmp cx, r9w
jne 0x140015de0
mov word [rax], r8w
lea rax, [rdx + 0xf52]
movzx ecx, word [rax]
cmp cx, r9w
je 0x140015e25
mov rdi, qword [0x140140518]
movzx eax, cx
mov rax, qword [rdi + rax*8]
movzx ecx, word [rax + 0xc]
add rax, 0xc
cmp cx, r9w
jne 0x140015e10
mov word [rax], r8w
cmp byte [rdx + 0x1be], 0
je 0x140015ea9
movzx r8d, word [rdx + 0x1ba]
cmp r8w, r9w
je 0x140015ea9
lea rax, [rdx + 0xf6a]
movzx ecx, word [rax]
cmp cx, r9w
je 0x140015e75
mov rdi, qword [0x140140518]
nop word [rax + rax]
movzx eax, cx
mov rax, qword [rdi + rax*8]
movzx ecx, word [rax + 0xc]
add rax, 0xc
cmp cx, r9w
jne 0x140015e60
mov word [rax], r8w
lea rax, [rdx + 0xf82]
movzx ecx, word [rax]
cmp cx, r9w
je 0x140015ea5
mov rdx, qword [0x140140518]
movzx eax, cx
mov rax, qword [rdx + rax*8]
movzx ecx, word [rax + 0xc]
add rax, 0xc
cmp cx, r9w
jne 0x140015e90
mov word [rax], r8w
xor edx, edx
movzx ecx, r14b
call fcn.140016090
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x40]
add rsp, 0x58
pop r14
pop r12
ret