Function at 0x10054320
Capabilities:
Create thread

Disassembly:
push 0xffffffffffffffff
push 0x1012cc67
mov eax, dword fs:[0]
push eax
sub esp, 0x2a4
mov eax, dword [0x101636d0]
xor eax, esp
mov dword [esp + 0x29c], eax
push ebp
push esi
push edi
mov eax, dword [0x101636d0]
xor eax, esp
push eax
lea eax, [esp + 0x2b4]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x2c4]
xor esi, esi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x18], vtable.t_mutex::t_locker.0
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2bc], esi
mov byte [esp + 0x28], 0
mov dword [esp + 0x24], esi
lea eax, [esp + 0x24]
push eax
mov edi, 0x10166820
mov byte [esp + 0x2c0], 1
call fcn.100657b0
test al, al
je 0x100543a4
mov esi, edi
mov dword [esp + 0x1c], esi
cmp byte [ebp], 0
jne 0x100543dd
test esi, esi
je 0x100543b7
mov edi, esi
call fcn.100658f0
xor esi, esi
lea ecx, [esp + 0x24]
call fcn.10061940
mov dword [esp + 0x2bc], 0xffffffff
test esi, esi
je 0x100543d6
mov edi, esi
call fcn.100658f0
xor al, al
jmp 0x10054b61
lea ecx, [ebp + 0xc]
mov dword [esp + 0x20], 3
mov dword [esp + 0x2c], ecx
lea esp, [esp]
mov byte [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov byte [esp + 0x2bc], 2
call fcn.1005b1a0
mov edi, eax
cmp word [edi], 0
jne 0x10054425
push str..pipeSogouPicFaceTaskPipeNameC3
push 0x104
push edi
call fcn.100d1048
add esp, 0xc
push edi
lea edi, [esp + 0x188]
call fcn.10062630
push 0x1013fe74
push 0x1013c7e4
mov edx, edi
mov byte [esp + 0x2c4], 3
call fcn.10062cd0
call fcn.10002720
mov eax, dword [eax + 0x118]
push eax
push 0x1013f9d8
mov edx, edi
call fcn.10062cd0
push 0x1013fe74
push 0x1013c7e4
mov edx, edi
call fcn.10062cd0
push 0xb
push 0x1013f9d8
mov edx, edi
call fcn.10062cd0
add esp, 0x20
call fcn.1005b1a0
cmp word [eax + 0x410], 0
lea edi, [eax + 0x410]
jne 0x100544ad
push str.LocalSogouPicFaceAgentPipeEventNameC3
push 0x104
push edi
call fcn.100d1048
add esp, 0xc
push edi
lea edi, [esp + 0x60]
call fcn.10062630
push 0x1013fe74
push 0x1013c7e4
mov edx, edi
mov byte [esp + 0x2c4], 4
call fcn.10062cd0
call fcn.10002720
mov eax, dword [eax + 0x118]
push eax
push 0x1013f9d8
mov edx, edi
call fcn.10062cd0
push 0x1013fe74
push 0x1013c7e4
mov edx, edi
call fcn.10062cd0
push 0xb
push 0x1013f9d8
mov edx, edi
call fcn.10062cd0
add esp, 0x20
cmp byte [esp + 0x178], 0
mov dword [esp + 0x40], 0xffffffff
mov byte [esp + 0x17], 0
lea ecx, [esp + 0x68]
jne 0x10054529
mov ecx, dword [esp + 0x64]
cmp byte [esp + 0x2a0], 0
lea eax, [esp + 0x190]
jne 0x10054541
mov eax, dword [esp + 0x18c]
mov edi, dword [esp + 0x2c]
lea edx, [esp + 0x17]
push edx
lea edx, [esp + 0x44]
push edx
add ecx, 4
push ecx
add eax, 4
push eax
mov esi, edi
call fcn.10055ab0
test al, al
je 0x100548f4
mov esi, dword [esp + 0x40]
test esi, esi
jl 0x10054587
cmp esi, dword [edi]
jge 0x10054587
mov ecx, dword [edi + 4]
mov eax, esi
shl eax, 5
mov eax, dword [ecx + eax + 0x14]
mov dword [esp + 0x38], eax
or edi, 0xffffffff
jmp 0x10054590
or edi, 0xffffffff
mov eax, edi
mov dword [esp + 0x38], edi
cmp byte [esp + 0x17], 0
je 0x1005460b
mov edx, dword [ebp + 8]
push 0
push esi
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
test eax, eax
je 0x100549bd
mov eax, dword [ebp + 4]
cmp eax, 1
jge 0x1005460b
cmp dword [ebp + eax*4 + 0x2e8], edi
je 0x100545d6
mov eax, dword [ebp + eax*4 + 0x2e8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 4]
mov dword [ebp + ecx*4 + 0x2e8], edi
push 0
push 0
push ebp
push 0x10053e30
push 0
push 0
call fcn.100d1a8f
mov edx, dword [ebp + 4]
mov dword [ebp + edx*4 + 0x2e8], eax
mov eax, dword [ebp + 4]
add esp, 0x18
cmp dword [ebp + eax*4 + 0x2e8], 0
je 0x10054894
inc eax
mov dword [ebp + 4], eax
lea eax, [esi + esi*2]
lea edi, [ebp + eax*8]
add ebp, 0x14
push ebp
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov dword [edi + 0x18], eax
mov ecx, dword [ebx + 0x390]
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], 0
mov edx, dword [ebx + 0x38c]
mov dword [edi + 0x24], edx
cmp dword [ebx + 8], 0xfffffff6
jne 0x1005468f
push 0
push 0x101673ec
push 0x101673cc
push 0
push ebx
call fcn.101239e9
mov ebp, eax
add esp, 0x14
test ebp, ebp
je 0x1005468f
mov eax, dword [ebp + 0x3ac]
test eax, eax
je 0x10054a16
cmp dword [eax + 8], 0
je 0x10054a16
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [ebp + 0x3a8]
mov dword [edi + 0x2c], eax
mov ecx, dword [ebp + 0x3ac]
mov dword [edi + 0x28], ecx
mov ecx, dword [ebx + 0x144]
mov edx, dword [ebx + 0x268]
mov eax, dword [ebx + 0x20]
add edx, ecx
add edx, eax
lea eax, [edx + edx + 0x28]
add eax, 4
mov dword [esp + 0x50], eax
add eax, 0xc
mov dword [esp + 0x58], eax
add eax, 8
push eax
mov dword [esp + 0x4c], 0xb
mov dword [esp + 0x50], 0
mov byte [esp + 0x58], 0x53
mov byte [esp + 0x59], 0x47
mov byte [esp + 0x5a], 0x50
mov byte [esp + 0x5b], 0x54
call fcn.100cf978
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x100547ee
mov eax, dword [esp + 0x58]
add eax, 8
push eax
push 0
push ebp
call fcn.100d6e40
add esp, 0xc
push 4
lea ecx, [esp + 0x58]
push ecx
push 8
push ebp
call fcn.100d07bb
add esp, 0x10
test eax, eax
sete al
test al, al
je 0x10054884
mov edx, dword [esp + 0x58]
push 4
lea eax, [esp + 0x48]
push eax
lea ecx, [ebp + 4]
push 4
push ecx
mov dword [esp + 0x54], edx
call fcn.100d07bb
add esp, 0x10
test eax, eax
sete al
test al, al
je 0x10054884
lea eax, [ebp + 8]
lea edi, [esp + 0x48]
call fcn.1005aa60
test al, al
je 0x10054884
mov edx, dword [ebx + 0x268]
mov ecx, dword [ebx + 0x144]
mov eax, dword [ebx + 0x20]
lea edi, [edx + ecx]
lea edx, [ebp + 0x14]
add edi, eax
push edx
lea edi, [edi + edi + 0x2c]
push ebx
call fcn.1005aae0
test al, al
je 0x10054884
mov eax, dword [esp + 0x2c]
test esi, esi
jl 0x1005479e
cmp esi, dword [eax]
jge 0x1005479e
mov ecx, esi
shl ecx, 5
add ecx, dword [eax + 4]
jmp 0x100547a0
xor ecx, ecx
test esi, esi
jl 0x100547b6
cmp esi, dword [eax]
jge 0x100547b6
mov eax, dword [eax + 4]
mov edx, esi
shl edx, 5
mov edx, dword [eax + edx + 0x1c]
jmp 0x100547b8
xor edx, edx
mov eax, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x3c]
push 0
push 0x800
push edx
add eax, 8
push eax
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_TransactNamedPipe]
test eax, eax
jne 0x10054aaa
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x10054aaa
mov edx, dword [esp + 0x3c]
push edx
mov eax, esi
call fcn.10054280
dec dword [esp + 0x20]
test ebp, ebp
je 0x1005480b
push ebp
call fcn.100cf89b
add esp, 4
cmp byte [esp + 0x178], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x5c], esi
jne 0x10054833
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x68]
cmp eax, ecx
je 0x10054833
push eax
call fcn.100cf89b
add esp, 4
cmp byte [esp + 0x2a0], 0
mov dword [esp + 0x184], esi
jne 0x1005485f
mov eax, dword [esp + 0x18c]
lea edx, [esp + 0x190]
cmp eax, edx
je 0x1005485f
push eax
call fcn.100cf89b
add esp, 4
lea ecx, [esp + 0x30]
mov byte [esp + 0x2bc], 1
call fcn.10061940
cmp dword [esp + 0x20], 0
jle 0x10054b1d
mov ebp, dword [esp + 0x3c]
jmp 0x100543f0
push ebp
call fcn.100cf89b
add esp, 4
xor ebp, ebp
jmp 0x100547ee
cmp dword [esp + 0x1c], 0
mov dword [ebp + eax*4 + 0x2e8], edi
je 0x100548b6
mov edi, dword [esp + 0x1c]
call fcn.100658f0
mov dword [esp + 0x1c], 0
or edi, 0xffffffff
lea ecx, [esp + 0x5c]
call fcn.1005f910
lea ecx, [esp + 0x184]
call fcn.1005f910
lea ecx, [esp + 0x30]
call fcn.10061940
lea ecx, [esp + 0x24]
call fcn.10061940
lea ecx, [esp + 0x18]
mov dword [esp + 0x2bc], edi
call fcn.10065480
xor al, al
jmp 0x10054b61
xor eax, eax
cmp dword [edi], eax
jle 0x10054914
xor ecx, ecx
lea esp, [esp]
mov edx, dword [edi + 4]
mov edx, dword [ecx + edx + 0x18]
cmp edx, 5
jne 0x10054927
inc eax
add ecx, 0x20
cmp eax, dword [edi]
jl 0x10054900
mov esi, ebp
call fcn.10053d40
mov byte [ebp + 3], 0
mov byte [ebp + 1], 0
mov byte [ebp + 2], 0
cmp dword [esp + 0x1c], 0
je 0x1005493f
mov edi, dword [esp + 0x1c]
call fcn.100658f0
mov dword [esp + 0x1c], 0
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x3a0
call fcn.100cfcae
add esp, 4
test eax, eax
je 0x10054963
mov esi, eax
call fcn.1005ac60
mov edi, eax
jmp 0x10054965
xor edi, edi
mov esi, ebx
call fcn.1005acf0
inc dword [edi + 0x394]
push edi
call fcn.10054e70
call fcn.10054f00
lea ecx, [esp + 0x5c]
call fcn.1005f910
lea ecx, [esp + 0x184]
call fcn.1005f910
lea ecx, [esp + 0x30]
call fcn.10061940
lea ecx, [esp + 0x24]
call fcn.10061940
lea ecx, [esp + 0x18]
mov dword [esp + 0x2bc], 0xffffffff
call fcn.10065480
jmp 0x10054b5f
cmp dword [esp + 0x1c], 0
je 0x100549d8
mov edi, dword [esp + 0x1c]
call fcn.100658f0
mov dword [esp + 0x1c], 0
or edi, 0xffffffff
lea ecx, [esp + 0x5c]
call fcn.1005f910
lea ecx, [esp + 0x184]
call fcn.1005f910
lea ecx, [esp + 0x30]
call fcn.10061940
lea ecx, [esp + 0x24]
call fcn.10061940
lea ecx, [esp + 0x18]
mov dword [esp + 0x2bc], edi
call fcn.10065480
xor al, al
jmp 0x10054b61
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x10054a25
call fcn.100658f0
xor edi, edi
cmp byte [esp + 0x178], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x5c], esi
jne 0x10054a4d
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x68]
cmp eax, ecx
je 0x10054a4d
push eax
call fcn.100cf89b
add esp, 4
cmp byte [esp + 0x2a0], 0
mov dword [esp + 0x184], esi
jne 0x10054a79
mov eax, dword [esp + 0x18c]
lea edx, [esp + 0x190]
cmp eax, edx
je 0x10054a79
push eax
call fcn.100cf89b
add esp, 4
lea ecx, [esp + 0x30]
call fcn.10061940
lea ecx, [esp + 0x24]
call fcn.10061940
mov dword [esp + 0x2bc], 0xffffffff
test edi, edi
je 0x100543d6
call fcn.100658f0
xor al, al
jmp 0x10054b61
push ebp
call fcn.100cf89b
add esp, 4
cmp byte [esp + 0x178], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x5c], esi
jne 0x10054adb
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x68]
cmp eax, ecx
je 0x10054adb
push eax
call fcn.100cf89b
add esp, 4
cmp byte [esp + 0x2a0], 0
mov dword [esp + 0x184], esi
jne 0x10054b07
mov eax, dword [esp + 0x18c]
lea edx, [esp + 0x190]
cmp eax, edx
je 0x10054b07
push eax
call fcn.100cf89b
add esp, 4
lea ecx, [esp + 0x30]
mov byte [esp + 0x2bc], 1
call fcn.10061940
cmp dword [esp + 0x20], 0
mov edi, dword [esp + 0x1c]
jne 0x10054b37
test edi, edi
je 0x10054a82
call fcn.100658f0
xor edi, edi
jmp 0x10054a82
test edi, edi
je 0x10054b42
call fcn.100658f0
xor edi, edi
lea ecx, [esp + 0x24]
call fcn.10061940
mov dword [esp + 0x2bc], 0xffffffff
test edi, edi
je 0x10054b5f
call fcn.100658f0
mov al, 1
mov ecx, dword [esp + 0x2b4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x29c]
xor ecx, esp
call fcn.100cf604
add esp, 0x2b0
ret 4