Function at 0x10014ae0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10081a38
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x100bb2a8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 4], 0
call fcn.10012d10
mov esi, dword [ebp + 8]
push ecx
mov dword [ebp - 0x24], 0x776f6853
mov dword [ebp - 0x19], 0x656d6f63
mov byte [ebp - 0x15], 0
mov word [ebp - 0x1e], 0x7362
mov word [ebp - 0x1b], 0x6c65
mov word [ebp - 0x20], 0x6154
mov byte [ebp - 0x1c], 0x57
mov ecx, dword [esi - 0x10]
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x28], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
mov ecx, eax
lea eax, [esi - 4]
jl 0x10014b6b
cmp ecx, dword [esi - 0x10]
jne 0x10014b6b
lea edi, [esi - 0x10]
lock inc dword [eax]
jmp 0x10014b96
mov eax, dword [ecx]
push 1
push dword [esi - 0xc]
call dword [eax]
mov edi, eax
test edi, edi
jne 0x10014b7f
call fcn.10008e8b
mov eax, dword [esi - 0xc]
lea ecx, [edi + 0x10]
mov dword [edi + 4], eax
mov edx, dword [esi - 0xc]
inc edx
push edx
push esi
call fcn.100010b0
add esp, 8
mov ecx, dword [ebp - 0x28]
lea eax, [edi + 0x10]
mov dword [ecx], eax
mov byte [ebp - 4], 1
mov eax, dword [ebx + 0x34]
push ecx
mov ecx, dword [eax - 0x10]
lea esi, [eax - 0x10]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x2c], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x10014bce
cmp ecx, dword [esi]
jne 0x10014bce
lock inc dword [eax]
jmp 0x10014bfb
mov eax, dword [ecx]
lea edi, [esi + 4]
push 1
push dword [edi]
call dword [eax]
mov esi, eax
test esi, esi
jne 0x10014be4
call fcn.10008e8b
mov eax, dword [edi]
lea ecx, [esi + 0x10]
mov dword [esi + 4], eax
mov edx, dword [edi]
inc edx
push edx
push dword [ebp - 0x28]
call fcn.100010b0
add esp, 8
mov ecx, dword [ebp - 0x2c]
lea eax, [esi + 0x10]
mov dword [ecx], eax
mov byte [ebp - 4], 2
mov eax, dword [ebx + 0x30]
lea esi, [eax - 0x10]
mov dword [ebp - 0x2c], eax
push ecx
mov ecx, dword [esi]
mov dword [ebp - 0x28], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x10014c2f
cmp ecx, dword [esi]
jne 0x10014c2f
lock inc dword [eax]
jmp 0x10014c5c
mov eax, dword [ecx]
lea edi, [esi + 4]
push 1
push dword [edi]
call dword [eax]
mov esi, eax
test esi, esi
jne 0x10014c45
call fcn.10008e8b
mov eax, dword [edi]
lea ecx, [esi + 0x10]
mov dword [esi + 4], eax
mov edx, dword [edi]
inc edx
push edx
push dword [ebp - 0x2c]
call fcn.100010b0
add esp, 8
mov ecx, dword [ebp - 0x28]
lea eax, [esi + 0x10]
mov dword [ecx], eax
mov ecx, ebx
mov byte [ebp - 4], 0
call fcn.10016a20
mov eax, dword [ebx + 0x3c]
push 1
push ecx
mov ecx, dword [eax - 0x10]
lea esi, [eax - 0x10]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x28], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x10014c9d
cmp ecx, dword [esi]
jne 0x10014c9d
lock inc dword [eax]
jmp 0x10014cca
mov eax, dword [ecx]
lea edi, [esi + 4]
push 1
push dword [edi]
call dword [eax]
mov esi, eax
test esi, esi
jne 0x10014cb3
call fcn.10008e8b
mov eax, dword [edi]
lea ecx, [esi + 0x10]
mov dword [esi + 4], eax
mov edx, dword [edi]
inc edx
push edx
push dword [ebp - 0x2c]
call fcn.100010b0
add esp, 8
mov ecx, dword [ebp - 0x28]
lea eax, [esi + 0x10]
mov dword [ecx], eax
mov byte [ebp - 4], 3
mov eax, dword [ebx + 0x38]
lea esi, [eax - 0x10]
mov dword [ebp - 0x2c], eax
push ecx
mov ecx, dword [esi]
mov dword [ebp - 0x28], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x10014cfe
cmp ecx, dword [esi]
jne 0x10014cfe
lock inc dword [eax]
jmp 0x10014d2b
mov eax, dword [ecx]
lea edi, [esi + 4]
push 1
push dword [edi]
call dword [eax]
mov esi, eax
test esi, esi
jne 0x10014d14
call fcn.10008e8b
mov eax, dword [edi]
lea ecx, [esi + 0x10]
mov dword [esi + 4], eax
mov edx, dword [edi]
inc edx
push edx
push dword [ebp - 0x2c]
call fcn.100010b0
add esp, 8
mov ecx, dword [ebp - 0x28]
lea eax, [esi + 0x10]
mov dword [ecx], eax
mov ecx, ebx
mov byte [ebp - 4], 0
call fcn.10016b50
mov eax, dword [ebx + 0x40]
push 1
push ecx
mov ecx, dword [eax - 0x10]
lea esi, [eax - 0x10]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x28], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x10014d6c
cmp ecx, dword [esi]
jne 0x10014d6c
lock inc dword [eax]
jmp 0x10014d99
mov eax, dword [ecx]
lea edi, [esi + 4]
push 1
push dword [edi]
call dword [eax]
mov esi, eax
test esi, esi
jne 0x10014d82
call fcn.10008e8b
mov eax, dword [edi]
lea ecx, [esi + 0x10]
mov dword [esi + 4], eax
mov edx, dword [edi]
inc edx
push edx
push dword [ebp - 0x2c]
call fcn.100010b0
add esp, 8
mov ecx, dword [ebp - 0x28]
lea eax, [esi + 0x10]
mov dword [ecx], eax
mov byte [ebp - 4], 4
mov eax, dword [ebx + 0x38]
lea esi, [eax - 0x10]
mov dword [ebp - 0x2c], eax
push ecx
mov ecx, dword [esi]
mov dword [ebp - 0x28], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x10014dcd
cmp ecx, dword [esi]
jne 0x10014dcd
lock inc dword [eax]
jmp 0x10014dfa
mov eax, dword [ecx]
lea edi, [esi + 4]
push 1
push dword [edi]
call dword [eax]
mov esi, eax
test esi, esi
jne 0x10014de3
call fcn.10008e8b
mov eax, dword [edi]
lea ecx, [esi + 0x10]
mov dword [esi + 4], eax
mov edx, dword [edi]
inc edx
push edx
push dword [ebp - 0x2c]
call fcn.100010b0
add esp, 8
mov ecx, dword [ebp - 0x28]
lea eax, [esi + 0x10]
mov dword [ecx], eax
mov ecx, ebx
mov byte [ebp - 4], 0
call fcn.10016b50
push 0
push ecx
mov esi, esp
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x30], esi
call fcn.10001e63
mov ecx, eax
test ecx, ecx
jne 0x10014e2d
push 0x80004005
call fcn.10001bd3
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 5
test eax, 0xffff0000
jne 0x10014e5e
movzx edi, ax
mov ecx, edi
call fcn.10001cf0
test eax, eax
je 0x10014e79
push edi
push eax
mov ecx, esi
call fcn.10007d68
jmp 0x10014e79
lea ecx, [ebp - 0x24]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10014e64
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
mov ecx, esi
call fcn.10008e96
mov byte [ebp - 4], 6
mov eax, dword [ebx + 0x38]
lea esi, [eax - 0x10]
mov dword [ebp - 0x2c], eax
push ecx
mov ecx, dword [esi]
mov dword [ebp - 0x28], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x10014ea5
cmp ecx, dword [esi]
jne 0x10014ea5
lock inc dword [eax]
jmp 0x10014ed2
mov eax, dword [ecx]
lea edi, [esi + 4]
push 1
push dword [edi]
call dword [eax]
mov esi, eax
test esi, esi
jne 0x10014ebb
call fcn.10008e8b
mov eax, dword [edi]
lea ecx, [esi + 0x10]
mov dword [esi + 4], eax
mov edx, dword [edi]
inc edx
push edx
push dword [ebp - 0x2c]
call fcn.100010b0
add esp, 8
mov ecx, dword [ebp - 0x28]
lea eax, [esi + 0x10]
mov dword [ecx], eax
mov ecx, ebx
mov byte [ebp - 4], 0
call fcn.10016b50
mov dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10014f07
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1005a19b
mov esp, ebp
pop ebp
ret 4