Function at 0x437630
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x494b98
mov eax, dword fs:[0]
push eax
sub esp, 0x350
push ebx
push esi
push edi
mov eax, dword [0x4b30f0]
xor eax, esp
push eax
lea eax, [esp + 0x360]
mov dword fs:[0], eax
xor ebx, ebx
push 2
mov dword [esp + 0x28], ebx
call dword [0x4961b0]
call dword [0x496120]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, eax
call fcn.00403a70
mov dword [esp + 0x368], ebx
mov esi, dword [esp + 0x1c]
call fcn.00437390
test eax, eax
je 0x4376b3
mov edx, dword [esp + 0x1c]
push edx
call fcn.004374a0
add esp, 4
mov dword [esp + 0x368], 0xffffffff
jmp 0x437c2a
mov esi, dword [0x496300]
lea eax, [esp + 0x3c]
push eax
push 0x4b83a0
mov dword [esp + 0x44], ebx
call esi
push eax
call dword [0x496124]
push 1
call esi
push eax
call dword [0x4962a8]
mov esi, dword [ebp + 0x10]
lea ecx, [esp + 0x18]
push ecx
mov ecx, esi
call fcn.00403a70
mov byte [esp + 0x368], 1
lea edi, [esp + 0x18]
call fcn.00403590
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
jl 0x437731
push str._delayrun
push ecx
call fcn.00470a54
add esp, 8
test eax, eax
je 0x437731
sub eax, dword [esp + 0x18]
or edi, 0xffffffff
sar eax, 1
cmp eax, edi
je 0x437734
mov dword [0x4b839c], 1
jmp 0x437734
or edi, 0xffffffff
call fcn.00410a10
push eax
call fcn.00410f30
mov ecx, esi
call fcn.00436870
test eax, eax
je 0x437754
call fcn.00436fd0
jmp 0x437c12
mov ecx, esi
call fcn.00436920
test eax, eax
je 0x43778b
call fcn.00436d60
test eax, eax
jne 0x437c12
push 0
call dword [0x496590]
call fcn.0043efb0
test eax, eax
jl 0x437c12
call fcn.004596e0
jmp 0x437c12
mov ecx, esi
call fcn.004369e0
test eax, eax
je 0x4377a0
call fcn.00436cc0
jmp 0x437c12
mov ecx, esi
call fcn.00436a70
test eax, eax
je 0x4377ca
push 0
call dword [0x496590]
call fcn.0043efb0
test eax, eax
jl 0x437c12
call fcn.004319a0
jmp 0x437c12
mov ecx, esi
call fcn.00436de0
test eax, eax
jne 0x43776c
mov ecx, esi
call fcn.00436b00
test eax, eax
je 0x437810
call fcn.0041df30
test eax, eax
je 0x437c12
call fcn.0046c950
mov edi, eax
call fcn.0046ca10
call fcn.0046c1f0
call fcn.0046c370
call fcn.0046c4f0
or edi, 0xffffffff
jmp 0x437c12
push 0
call dword [0x496590]
call fcn.0043efb0
test eax, eax
jge 0x437826
call fcn.004395a0
lea edx, [esp + 0x14]
push edx
call fcn.004273c0
mov byte [esp + 0x368], 2
lea esi, [esp + 0x14]
call fcn.00427120
test eax, eax
jge 0x43785a
mov byte [esp + 0x368], 1
mov eax, esi
push eax
call fcn.0041e8b0
jmp 0x437bd4
mov dword [esp + 0x28], 0
call fcn.00436630
cmp dword [esp + 0x14], 0
mov esi, eax
mov dword [esp + 0x20], esi
je 0x4378a3
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.0041b9c0
mov byte [esp + 0x368], 3
mov ebx, 1
mov dword [esp + 0x24], ebx
mov eax, dword [eax]
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
mov dword [esp + 0x368], 2
test bl, 1
je 0x4378c3
and ebx, 0xfffffffe
lea ecx, [esp + 0x2c]
mov dword [esp + 0x24], ebx
call fcn.00404520
test esi, esi
je 0x437912
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.0041b9c0
mov byte [esp + 0x368], 4
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x24]
push eax
call edx
test eax, eax
sete bl
mov byte [esp + 0x368], 2
lea ecx, [esp + 0x2c]
call fcn.00404520
test bl, bl
je 0x43790f
push str.WriteSpeedTimeStamp_failed
call fcn.00439580
add esp, 4
or edi, 0xffffffff
call dword [0x4962e8]
cmp al, 5
jbe 0x43793c
call fcn.00436840
test eax, eax
jne 0x43793c
mov byte [esp + 0x368], 1
lea eax, [esp + 0x14]
push eax
call fcn.0041e8b0
jmp 0x437bd4
push str.Q360SoftManagerMutexRunner
push 1
push 0
call dword [0x496128]
test eax, eax
je 0x437973
call dword [0x4962bc]
cmp eax, 0xb7
jne 0x437973
mov byte [esp + 0x368], 1
lea ecx, [esp + 0x14]
push ecx
call fcn.0041e8b0
jmp 0x437bd4
call fcn.004375a0
push 0
push 0
push 0
push 0
call dword [0x49648c]
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x30], 8
mov dword [esp + 0x34], 0x404
call dword [0x49609c]
call fcn.004394a0
call fcn.00437010
mov edi, eax
mov eax, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], eax
lea eax, [esp + 0x40]
push eax
push 0x4b8394
lea ecx, [esp + 0x34]
push ecx
push str.SpeedIdProfile
push str.Software360softmgr_softmgrs
push 0x80000002
call dword [0x4963f8]
call dword [0x4962f0]
push 0x20804
call dword [0x4962ec]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x80]
push eax
call fcn.0041e980
mov byte [esp + 0x368], 5
lea ecx, [esp + 0x7c]
push ecx
call fcn.00424050
test eax, eax
jne 0x437a23
cmp dword [0x4b8394], eax
jne 0x437a23
xor ebx, ebx
jmp 0x437a28
mov ebx, 1
test esi, esi
je 0x437a4b
test edi, edi
jne 0x437a4b
mov edx, dword [esp + 0x14]
push edi
push edi
push edx
push 0x4371f0
push edi
push edi
call fcn.00470d15
add esp, 0x18
mov dword [0x4b8398], eax
lea esi, [esp + 0x7c]
call fcn.00424240
mov esi, dword [esp + 0x20]
test esi, esi
je 0x437a60
test edi, edi
je 0x437a65
call fcn.004656c0
call fcn.00436e80
test ebx, ebx
je 0x437bae
cmp dword [esp + 0x28], 0
je 0x437b6b
push 0
push 0
lea eax, [esp + 0x84]
push eax
push 0x4242c0
push 0
push 0
call fcn.00470d15
add esp, 0x18
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x2f4], eax
call fcn.00437c50
mov byte [esp + 0x368], 6
lea edx, [esp + 0x44]
push edx
call fcn.004393b0
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], 0
mov eax, esp
lea esi, [esp + 0x84]
mov dword [esp + 0x28], esp
mov dword [eax], 0
call fcn.00437d30
test eax, eax
jne 0x437b3b
mov byte [esp + 0x368], 5
lea eax, [esp + 0x44]
push eax
call fcn.00437cb0
mov byte [esp + 0x368], 2
mov ecx, esi
call fcn.0041eca0
mov byte [esp + 0x368], 1
lea ecx, [esp + 0x14]
push ecx
call fcn.0041e8b0
mov byte [esp + 0x368], 0
lea ecx, [esp + 0x18]
call fcn.004011b0
mov dword [esp + 0x368], 0xffffffff
jmp 0x437c2a
mov edx, dword [esp + 0x80]
push 1
push edx
call dword [0x4964b0]
lea edi, [esp + 0x44]
call fcn.00439300
call fcn.00439190
mov byte [esp + 0x368], 5
mov eax, edi
push eax
call fcn.00437cb0
jmp 0x437bae
test esi, esi
je 0x437bae
test edi, edi
jne 0x437b80
lea ecx, [esp + 0x14]
push ecx
call fcn.0041b340
add esp, 4
mov eax, dword [0x4b8398]
test eax, eax
je 0x437b9f
push 0x1388
push eax
call dword [0x4962f4]
mov dword [0x4b8398], 0
push 0
call dword [0x496300]
push eax
call dword [0x4962c0]
mov byte [esp + 0x368], 2
lea ecx, [esp + 0x7c]
call fcn.0041eca0
mov byte [esp + 0x368], 1
lea edx, [esp + 0x14]
push edx
call fcn.0041e8b0
or edi, 0xffffffff
mov eax, dword [0x4b8398]
test eax, eax
je 0x437bf3
push 0x1388
push eax
call dword [0x4962f4]
mov dword [0x4b8398], 0
push 0
call dword [0x496300]
push eax
call dword [0x4962c0]
call fcn.00439090
call fcn.00439030
call dword [0x496594]
mov byte [esp + 0x368], 0
lea ecx, [esp + 0x18]
call fcn.004011b0
mov dword [esp + 0x368], edi
lea ecx, [esp + 0x1c]
call fcn.004011b0
xor eax, eax
mov ecx, dword [esp + 0x360]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10