Function at 0x10014010
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006cc68
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x1009d350]
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 eax, ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], 0
call fcn.100121e0
mov esi, dword [ebp + 8]
push ecx
mov dword [ebp - 0x20], 0x776f6853
mov dword [ebp - 0x15], 0x656d6f63
mov byte [ebp - 0x11], 0
mov word [ebp - 0x1a], 0x7362
mov word [ebp - 0x17], 0x6c65
mov word [ebp - 0x1c], 0x6154
mov byte [ebp - 0x18], 0x57
mov ecx, dword [esi - 0x10]
mov dword [ebp - 0x2c], esp
mov eax, dword [ecx]
mov dword [ebp - 0x24], esp
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
mov edi, 1
jl 0x100140a6
cmp ecx, dword [esi - 0x10]
jne 0x100140a6
lea ebx, [esi - 0x10]
mov eax, edi
lock xadd dword [edx], eax
jmp 0x100140d3
mov eax, dword [ecx]
push 1
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x100140ba
call fcn.10008235
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
inc ecx
push ecx
push esi
push ecx
lea eax, [ebx + 0x10]
push eax
call fcn.1004d8fb
add esp, 0x10
mov ecx, dword [ebp - 0x24]
lea eax, [ebx + 0x10]
mov dword [ecx], eax
mov esi, dword [ebp - 0x28]
mov byte [ebp - 4], 1
mov esi, dword [esi + 0x34]
push ecx
mov ecx, dword [esi - 0x10]
mov dword [ebp - 0x30], esp
mov eax, dword [ecx]
mov dword [ebp - 0x24], esp
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x1001410f
cmp ecx, dword [esi - 0x10]
jne 0x1001410f
lea ebx, [esi - 0x10]
mov eax, edi
lock xadd dword [edx], eax
jmp 0x1001413c
mov eax, dword [ecx]
push 1
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x10014123
call fcn.10008235
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
inc ecx
push ecx
push esi
push ecx
lea eax, [ebx + 0x10]
push eax
call fcn.1004d8fb
add esp, 0x10
mov ecx, dword [ebp - 0x24]
lea eax, [ebx + 0x10]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 2
mov esi, dword [eax + 0x30]
push ecx
mov ecx, dword [esi - 0x10]
mov dword [ebp - 0x24], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x10014175
cmp ecx, dword [esi - 0x10]
jne 0x10014175
lea ebx, [esi - 0x10]
mov eax, edi
lock xadd dword [edx], eax
jmp 0x100141a2
mov eax, dword [ecx]
push 1
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x10014189
call fcn.10008235
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
inc ecx
push ecx
push esi
push ecx
lea eax, [ebx + 0x10]
push eax
call fcn.1004d8fb
add esp, 0x10
mov ecx, dword [ebp - 0x24]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x28]
mov dword [ecx], eax
mov ecx, ebx
mov byte [ebp - 4], 0
call fcn.10016040
mov esi, dword [ebx + 0x3c]
push 1
push ecx
mov ecx, dword [esi - 0x10]
mov dword [ebp - 0x30], esp
mov eax, dword [ecx]
mov dword [ebp - 0x24], esp
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x100141e7
cmp ecx, dword [esi - 0x10]
jne 0x100141e7
lea ebx, [esi - 0x10]
mov eax, edi
lock xadd dword [edx], eax
jmp 0x10014214
mov eax, dword [ecx]
push 1
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x100141fb
call fcn.10008235
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
inc ecx
push ecx
push esi
push ecx
lea eax, [ebx + 0x10]
push eax
call fcn.1004d8fb
add esp, 0x10
mov ecx, dword [ebp - 0x24]
lea eax, [ebx + 0x10]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 3
mov esi, dword [eax + 0x38]
push ecx
mov ecx, dword [esi - 0x10]
mov dword [ebp - 0x24], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x1001424d
cmp ecx, dword [esi - 0x10]
jne 0x1001424d
lea ebx, [esi - 0x10]
mov eax, edi
lock xadd dword [edx], eax
jmp 0x1001427a
mov eax, dword [ecx]
push 1
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x10014261
call fcn.10008235
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
inc ecx
push ecx
push esi
push ecx
lea eax, [ebx + 0x10]
push eax
call fcn.1004d8fb
add esp, 0x10
mov ecx, dword [ebp - 0x24]
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0x28]
mov dword [ecx], eax
mov ecx, ebx
mov byte [ebp - 4], 0
call fcn.10016170
mov esi, dword [ebx + 0x40]
push 1
push ecx
mov ecx, dword [esi - 0x10]
mov dword [ebp - 0x30], esp
mov eax, dword [ecx]
mov dword [ebp - 0x24], esp
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x100142bf
cmp ecx, dword [esi - 0x10]
jne 0x100142bf
lea ebx, [esi - 0x10]
mov eax, edi
lock xadd dword [edx], eax
jmp 0x100142ec
mov eax, dword [ecx]
push 1
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x100142d3
call fcn.10008235
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
inc ecx
push ecx
push esi
push ecx
lea eax, [ebx + 0x10]
push eax
call fcn.1004d8fb
add esp, 0x10
mov ecx, dword [ebp - 0x24]
lea eax, [ebx + 0x10]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 4
mov esi, dword [eax + 0x38]
push ecx
mov ecx, dword [esi - 0x10]
mov dword [ebp - 0x24], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x10014325
cmp ecx, dword [esi - 0x10]
jne 0x10014325
lea ebx, [esi - 0x10]
mov eax, edi
lock xadd dword [edx], eax
jmp 0x10014352
mov eax, dword [ecx]
push 1
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x10014339
call fcn.10008235
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
inc ecx
push ecx
push esi
push ecx
lea eax, [ebx + 0x10]
push eax
call fcn.1004d8fb
add esp, 0x10
mov ecx, dword [ebp - 0x24]
lea eax, [ebx + 0x10]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.10016170
mov eax, dword [0x1009d2a8]
push 0
push ecx
mov ebx, esp
mov ecx, 0x1009d2a8
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x2c], ebx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 5
test eax, 0xffff0000
jne 0x100143aa
movzx esi, ax
mov ecx, esi
call fcn.100017b9
test eax, eax
je 0x100143c5
push esi
push eax
mov ecx, ebx
call fcn.10007221
jmp 0x100143c5
lea ecx, [ebp - 0x20]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100143b0
sub ecx, edx
push ecx
lea eax, [ebp - 0x20]
push eax
mov ecx, ebx
call fcn.100081be
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 6
mov esi, dword [eax + 0x38]
push ecx
mov ecx, dword [esi - 0x10]
mov dword [ebp - 0x24], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
mov ecx, eax
lea eax, [esi - 4]
jl 0x100143f5
cmp ecx, dword [esi - 0x10]
jne 0x100143f5
lea ebx, [esi - 0x10]
lock xadd dword [eax], edi
inc edi
jmp 0x10014422
mov eax, dword [ecx]
push 1
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x10014409
call fcn.10008235
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
inc ecx
push ecx
push esi
push ecx
lea eax, [ebx + 0x10]
push eax
call fcn.1004d8fb
add esp, 0x10
mov ecx, dword [ebp - 0x24]
lea eax, [ebx + 0x10]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.10016170
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x1001445a
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.1004bbda
mov esp, ebp
pop ebp
ret 4