Function at 0x40a2c0
Capabilities:
Create thread
Get geographical location

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push ebx
call fcn.0046f410
mov dword [ebx + 0xe0], vtable.IUseExtras.0
mov dword [ebx + 0xe4], vtable.INotifier.0
xorps xmm0, xmm0
mov dword [ebx + 0xe8], vtable.INetworkControl.0
mov dword [ebx + 0xec], vtable.IHueState.0
xor edi, edi
mov dword [ebx + 0xf0], edi
mov dword [ebx + 0xf4], vtable.IRemoteEvent.0
mov dword [ebx + 0xf8], vtable.IMediaUpdate.0
mov dword [ebx + 0xfc], vtable.INotifierClick.0
mov dword [ebx + method.IytUnknown.virtual_4], vtable.IFluxDisconnect.0
lea esi, [ebx + 0x118]
mov dword [ebx], vtable.FluxUI.0
mov dword [ebx + 0xe0], vtable.FluxUI.1.0
mov dword [ebx + 0xe4], vtable.FluxUI.2.0
mov dword [ebx + 0xe8], vtable.FluxUI.3.0
mov dword [ebx + 0xec], vtable.FluxUI.4.0
mov dword [ebx + 0xf4], vtable.FluxUI.5.0
mov dword [ebx + 0xf8], vtable.FluxUI.6.0
mov dword [ebx + 0xfc], vtable.FluxUI.7.0
mov dword [ebx + method.FluxUI.8.virtual_0], vtable.FluxUI.8.0
mov byte [ebx + 0x104], 0
mov byte [ebx + 0x105], 0
mov byte [ebx + 0x106], 1
mov byte [ebx + 0x107], 1
mov byte [ebx + 0x108], 1
mov byte [ebx + 0x109], 1
mov byte [ebx + 0x10a], 0
mov byte [ebx + 0x10b], 1
mov byte [ebx + 0x10c], 1
mov byte [ebx + 0x10d], 0
mov byte [ebx + 0x10e], 0
movsd qword [ebx + 0x110], xmm0
call fcn.0044a930
mov dword [ebx + 0x128], edi
movsd xmm0, qword [0x4bab50]
movsd qword [ebx + 0x130], xmm0
xorps xmm0, xmm0
mov dword [ebx + 0x138], edi
movss dword [ebx + 0x144], xmm0
movss dword [ebx + 0x140], xmm0
xorps xmm0, xmm0
mov dword [ebx + 0x13c], edi
movsd qword [ebx + 0x148], xmm0
mov dword [ebx + 0x150], edi
mov dword [ebx + 0x154], edi
mov dword [ebx + 0x158], edi
mov dword [ebx + 0x15c], edi
mov dword [ebx + 0x160], edi
mov dword [ebx + 0x164], edi
push 4
mov byte [ebx + 0x168], 0
movsd qword [ebx + 0x170], xmm0
lea eax, [ebx + 0x180]
push str.anim
mov dword [ebx + 0x178], edi
mov dword [ebx + 0x17c], edi
push eax
mov dword [eax], edi
call fcn.0043c500
xorps xmm0, xmm0
push 7
mov byte [ebx + 0x188], 0
movsd qword [ebx + 0x190], xmm0
lea eax, [ebx + 0x1a0]
push str.disable
mov dword [ebx + 0x198], edi
mov dword [ebx + 0x19c], edi
push eax
mov dword [eax], edi
call fcn.0043c500
xorps xmm0, xmm0
mov byte [ebx + 0x1a8], 0
movsd qword [ebx + 0x1b0], xmm0
push 5
lea eax, [ebx + 0x1c0]
push str.movie
mov dword [ebx + 0x1b8], edi
mov dword [ebx + 0x1bc], edi
push eax
mov dword [eax], edi
call fcn.0043c500
xorps xmm0, xmm0
push 7
mov byte [ebx + 0x1c8], 0
movsd qword [ebx + 0x1d0], xmm0
lea eax, [ebx + 0x1e0]
push str.reverse
mov dword [ebx + 0x1d8], edi
mov dword [ebx + 0x1dc], edi
push eax
mov dword [eax], edi
call fcn.0043c500
xorps xmm0, xmm0
mov byte [ebx + 0x1e8], 0
movsd qword [ebx + 0x1f0], xmm0
mov dword [ebx + 0x1f8], edi
mov dword [ebx + 0x1fc], edi
mov dword [ebx + 0x200], edi
push 6
mov byte [ebx + 0x208], 0
movsd qword [ebx + 0x210], xmm0
lea eax, [ebx + 0x220]
push str.custom
mov dword [ebx + 0x218], edi
mov dword [ebx + 0x21c], edi
push eax
mov dword [eax], edi
call fcn.0043c500
xorps xmm0, xmm0
push 0xa
mov byte [ebx + 0x228], 0
movsd qword [ebx + 0x230], xmm0
lea eax, [ebx + 0x240]
push str.brightAnim
mov dword [ebx + 0x238], edi
mov dword [ebx + 0x23c], edi
push eax
mov dword [eax], edi
call fcn.0043c500
xorps xmm0, xmm0
mov byte [ebx + 0x248], 0
movsd qword [ebx + 0x250], xmm0
mov dword [ebx + 0x258], edi
mov dword [ebx + 0x25c], edi
mov dword [ebx + 0x260], edi
push 7
mov byte [ebx + 0x268], 0
movsd qword [ebx + 0x270], xmm0
lea eax, [ebx + 0x280]
push str.preview
mov dword [ebx + 0x278], edi
mov dword [ebx + 0x27c], edi
push eax
mov dword [eax], edi
call fcn.0043c500
xorps xmm0, xmm0
mov byte [ebx + 0x288], 1
mov byte [ebx + 0x289], 0
mov byte [ebx + 0x28a], 0
mov byte [ebx + 0x28b], 0
mov byte [ebx + 0x28c], 0
mov byte [ebx + 0x28d], 0
mov dword [ebx + 0x290], edi
mov dword [ebx + 0x294], edi
mov byte [ebx + 0x298], 1
mov byte [ebx + 0x299], 0
movsd qword [ebx + 0x2a0], xmm0
movsd qword [ebx + 0x2a8], xmm0
movsd qword [ebx + 0x2b0], xmm0
movsd qword [ebx + 0x2b8], xmm0
movsd qword [ebx + 0x2c0], xmm0
movsd xmm0, qword [0x4bab50]
movsd qword [ebx + 0x2c8], xmm0
lea esi, [ebx + 0x2d0]
call fcn.0044a930
xorps xmm0, xmm0
mov dword [ebx + 0x2e0], edi
movsd qword [ebx + 0x2e8], xmm0
movsd xmm1, qword [0x4bab50]
movsd qword [ebx + 0x2f0], xmm1
movsd qword [ebx + 0x2f8], xmm0
mov byte [ebx + 0x300], 0
movsd qword [ebx + 0x308], xmm0
mov dword [ebx + 0x318], edi
mov dword [ebx + 0x320], edi
mov dword [ebx + 0x324], edi
mov dword [ebx + 0x328], edi
lea eax, [ebx + 0x32c]
mov dword [eax + 0x400], edi
mov byte [eax], 0
mov dword [eax + 0x404], eax
mov dword [ebx + 0x31c], edi
mov byte [ebx + 0x734], 1
lea esi, [ebx + 0x73c]
mov dword [ebx + 0x738], edi
call fcn.00402d70
lea esi, [ebx + 0xe8]
lea eax, [ebx + 0x788]
push esi
push eax
call fcn.00403550
lea eax, [ebx + 0x920]
push esi
push eax
call fcn.00403550
mov dword [ebx + 0xab8], edi
mov dword [ebx + 0xabc], edi
xorps xmm0, xmm0
mov byte [ebx + 0xac0], 0
mov dword [ebx + 0xac4], edi
movss dword [ebx + 0xaec], xmm0
movss dword [ebx + 0xaf0], xmm0
movss dword [ebx + 0xb00], xmm0
mov dword [ebx + 0xb04], edi
mov dword [ebx + 0xb0c], edi
mov dword [ebx + 0xb10], edi
mov eax, 0x7c1
mov dword [ebx + 0xb08], eax
mov dword [ebx + 0xb14], edi
mov byte [ebx + 0xb18], 0
mov byte [ebx + 0xb19], 0
mov byte [ebx + 0xb1c], 0
mov dword [ebx + 0xb20], edi
movss dword [ebx + 0xb48], xmm0
movss dword [ebx + 0xb4c], xmm0
movss dword [ebx + 0xb5c], xmm0
mov dword [ebx + 0xb60], edi
mov dword [ebx + 0xb64], eax
mov dword [ebx + 0xb68], edi
mov dword [ebx + 0xb6c], edi
mov dword [ebx + 0xb70], edi
mov byte [ebx + 0xb74], 0
mov byte [ebx + 0xb75], 0
mov byte [ebx + 0xb78], 0
mov dword [ebx + 0xb7c], edi
movss dword [ebx + 0xba4], xmm0
movss dword [ebx + 0xba8], xmm0
movss dword [ebx + 0xbb8], xmm0
mov dword [ebx + 0xbbc], edi
mov dword [ebx + 0xbc0], eax
mov dword [ebx + 0xbc4], edi
mov dword [ebx + 0xbc8], edi
mov dword [ebx + 0xbcc], edi
mov byte [ebx + 0xbd0], 0
mov byte [ebx + 0xbd1], 0
mov byte [ebx + 0xbd4], 0
mov dword [ebx + 0xbd8], edi
movss dword [ebx + 0xc00], xmm0
movss dword [ebx + 0xc04], xmm0
movss dword [ebx + 0xc14], xmm0
mov dword [ebx + 0xc18], edi
mov dword [ebx + 0xc1c], eax
mov dword [ebx + 0xc20], edi
mov dword [ebx + 0xc24], edi
mov dword [ebx + 0xc28], edi
mov byte [ebx + 0xc2c], 0
mov byte [ebx + 0xc2d], 0
pxor xmm0, xmm0
movq qword [ebx + 0xc30], xmm0
movq qword [ebx + 0xc38], xmm0
movq qword [ebx + 0xc40], xmm0
movq qword [ebx + 0xc48], xmm0
movq qword [ebx + 0xc50], xmm0
xorps xmm0, xmm0
mov dword [ebx + 0xc58], edi
mov dword [ebx + 0xc5c], edi
mov byte [ebx + 0xc60], 1
mov byte [ebx + 0xc61], 0
mov dword [ebx + 0xc64], edi
mov dword [ebx + 0xc68], edi
mov dword [ebx + 0xc6c], edi
mov dword [ebx + 0xc70], edi
mov dword [ebx + 0xc74], edi
mov dword [ebx + 0xc78], edi
mov byte [ebx + 0xc7c], 0
mov byte [ebx + 0xc7e], 0
mov byte [ebx + 0xc7f], 0
mov byte [ebx + 0xc81], 0
mov byte [ebx + 0xc82], 0
mov dword [ebx + 0xc84], edi
mov dword [ebx + 0xc88], edi
mov dword [ebx + 0xc8c], edi
mov byte [ebx + 0xc90], 0
push 6
mov byte [ebx + 0xc98], 0
movsd qword [ebx + 0xca0], xmm0
lea eax, [ebx + 0xcb0]
push str.fadeup
mov dword [ebx + 0xca8], edi
mov dword [ebx + 0xcac], edi
push eax
mov dword [eax], edi
call fcn.0043c500
lea esi, [ebx + 0xcb8]
call fcn.00409d90
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0xefc], edi
mov dword [ebx + 0xf00], edi
mov dword [ebx + 0xf04], edi
mov dword [ebx + 0xf08], eax
mov dword [ebx + 0xf0c], edi
mov dword [ebx + 0xf10], edi
mov byte [ebx + 0xf14], 0
mov byte [ebx + 0xf15], 0
push 4
mov dword [ebx + 0xf18], edi
mov dword [ebx + 0xf1c], edi
call fcn.0049d99f
add esp, 4
mov dword [ebx + 0xf24], eax
cmp eax, edi
je 0x40a9b5
mov dword [eax], 1
lea esi, [ebx + 0xf48]
mov byte [ebx + 0xf38], 1
mov dword [ebx + 0xf40], edi
mov dword [ebx + 0xf3c], edi
mov dword [ebx + 0xf28], edi
mov dword [ebx + 0xf2c], edi
mov dword [ebx + 0xf30], edi
mov dword [ebx + 0xf44], edi
mov dword [ebx + 0xf34], edi
mov dword [esi + 8], edi
mov dword [esi + 4], edi
mov dword [esi], edi
mov dword [esi + 0xc], edi
call fcn.0046c640
movsd xmm0, qword [0x4d3c50]
mov dword [ebx + 0x1b70], edi
mov dword [ebx + 0x1b74], edi
mov dword [ebx + 0x1b78], edi
mov dword [ebx + 0x1b80], edi
mov dword [ebx + 0x1b84], edi
mov dword [ebx + 0x1b88], edi
mov dword [ebx + 0x118], edi
mov dword [ebx + 0x11c], edi
mov byte [ebx + 0x168], 1
movsd qword [ebx + 0x170], xmm0
mov esi, dword [ebx + 0x178]
cmp esi, edi
je 0x40aa52
call fcn.0045f5a0
and dword [ebx + 0x17c], 1
mov dword [ebx + 0x178], edi
mov byte [ebx + 0x228], 1
movsd xmm0, qword [0x4bab50]
movsd qword [ebx + 0x230], xmm0
mov esi, dword [ebx + 0x238]
cmp esi, edi
je 0x40aa85
call fcn.0045f5a0
and dword [ebx + 0x23c], 1
lea esi, [ebx + 0xac0]
mov dword [ebx + 0x238], edi
call fcn.004090e0
movss xmm0, dword [0x4d362c]
lea ecx, [esp + 0x14]
push ecx
push str.Preferences
lea edx, [esp + 0x8c]
push edx
mov ecx, str.Latitude
movss dword [ebx + 0x140], xmm0
mov dword [esp + 0x20], 0xe10
call fcn.0041e8c0
lea eax, [esp + 0x14]
push eax
push str.Preferences
lea ecx, [esp + 0x44]
push ecx
mov ecx, str.Longitude
mov dword [esp + 0xac], edi
mov byte [esp + 0xb0], 1
mov dword [esp + 0x20], edi
call fcn.0041e8c0
lea edx, [esp + 0x14]
push edx
push str.Preferences
lea eax, [esp + 0x68]
push eax
mov ecx, str.ZipCode
mov dword [esp + 0x64], edi
mov byte [esp + 0x68], 1
mov dword [esp + 0x20], edi
call fcn.0041e8c0
lea eax, [esp + 0x84]
mov dword [esp + 0x7c], edi
mov byte [esp + 0x80], 1
call fcn.00402890
test eax, eax
je 0x40ab55
cmp byte [esp + 0xa4], 0
je 0x40ab55
lea eax, [esp + 0x84]
call fcn.004029a0
mov eax, dword [esp + 0x90]
cvtsi2sd xmm0, eax
mulsd xmm0, qword [0x4d38e8]
mov dword [esp + 0x9c], eax
cvtsd2ss xmm0, xmm0
lea eax, [esp + 0x3c]
movss dword [ebx + 0x140], xmm0
call fcn.00402890
test eax, eax
je 0x40ab98
cmp byte [esp + 0x5c], 0
je 0x40ab98
lea eax, [esp + 0x3c]
call fcn.004029a0
mov eax, dword [esp + 0x48]
cvtsi2sd xmm0, eax
mulsd xmm0, qword [0x4d38e8]
mov dword [esp + 0x54], eax
cvtsd2ss xmm0, xmm0
lea eax, [esp + 0x60]
movss dword [ebx + 0x144], xmm0
call fcn.00402890
test eax, eax
je 0x40abd8
cmp byte [esp + 0x80], 0
je 0x40abd8
lea eax, [esp + 0x60]
call fcn.004029a0
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x7c], eax
mov dword [ebx + 0x13c], eax
call fcn.00433d40
add esp, 4
lea edx, [esp + 0xc]
push edx
push str.Preferences
lea eax, [esp + 0x20]
push eax
mov ecx, str.beta
mov dword [esp + 0x18], edi
call fcn.0041e8c0
lea eax, [esp + 0x18]
mov dword [esp + 0x34], edi
mov byte [esp + 0x38], 1
call fcn.00402890
test eax, eax
je 0x40ac36
cmp byte [esp + 0x38], 0
je 0x40ac36
lea eax, [esp + 0x18]
call fcn.004029a0
mov eax, dword [esp + 0x24]
lea edi, [esp + 0x18]
mov dword [esp + 0x30], eax
mov esi, eax
call fcn.00402a90
xor edi, edi
cmp esi, edi
je 0x40acbc
push 0x22
push str.https:__justgetflux.com_update_v4_
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x18], edi
call fcn.0043c500
push str.windows_beta.json
lea eax, [esp + 0x10]
call fcn.0043c300
mov esi, dword [esp + 0xc]
cmp esi, edi
je 0x40ac7f
lea edx, [esi + 4]
jmp 0x40ac81
xor edx, edx
lea eax, [ebx + 0x73c]
push eax
call fcn.004318e0
cmp esi, edi
je 0x40ad26
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x80
jl 0x40acb1
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x40ad26
cmp eax, edi
jne 0x40ad26
call fcn.0045f5a0
jmp 0x40ad26
mov eax, dword [esp + 0x14]
cmp eax, edi
je 0x40acd0
lea esi, [eax + 4]
cmp esi, edi
je 0x40acd0
cmp byte [esi], 0
jne 0x40ace3
lea eax, [ebx + 0x73c]
push eax
mov edx, str.https:__justgetflux.com_update_v4_windows.json
call fcn.004318e0
jmp 0x40ad26
push 0x22
push str.https:__justgetflux.com_update_v4_
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], edi
call fcn.0043c500
push esi
lea eax, [esp + 0x10]
call fcn.0043c300
mov eax, dword [esp + 0xc]
cmp eax, edi
je 0x40ad0f
lea edx, [eax + 4]
jmp 0x40ad11
xor edx, edx
lea eax, [ebx + 0x73c]
push eax
call fcn.004318e0
lea ecx, [esp + 0xc]
call fcn.00401420
lea esi, [ebx + 0x73c]
mov eax, esi
call fcn.00431980
lea edi, [ebx + 0x788]
lea eax, [edi + 0x10]
push eax
mov dword [edi + 4], 0
mov dword [esp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
push 0
push 0x43cff0
call fcn.0049dc4e
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x18]
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [ebx + 0x168]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
lea edi, [ebx + 0x158]
push ecx
mov eax, edi
call fcn.0041ec30
lea eax, [ebx + 0x1a8]
lea edx, [esp + 0xc]
mov dword [esp + 0xc], eax
push edx
mov eax, edi
call fcn.0041ec30
lea eax, [ebx + 0x188]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
mov eax, edi
call fcn.0041ec30
lea eax, [ebx + 0xc98]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
push ecx
mov eax, edi
call fcn.0041ec30
lea eax, [ebx + 0x1c8]
lea edx, [esp + 0xc]
mov dword [esp + 0xc], eax
push edx
mov eax, edi
call fcn.0041ec30
lea eax, [ebx + 0x1e8]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
mov eax, edi
call fcn.0041ec30
lea eax, [ebx + 0x208]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
push ecx
mov eax, edi
call fcn.0041ec30
lea eax, [ebx + 0x228]
lea edx, [esp + 0xc]
mov dword [esp + 0xc], eax
push edx
mov eax, edi
call fcn.0041ec30
lea eax, [ebx + 0x268]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
mov eax, edi
call fcn.0041ec30
lea edi, [ebx + 0xf8]
push edi
push str.https:__justgetflux.com_windows_preset.json
push esi
call fcn.00402ed0
push edi
push str.https:__justgetflux.com_offer_windows.json
push esi
call fcn.00402ed0
lea ecx, [esp + 0xc]
push ecx
push str.Preferences
lea edx, [esp + 0x20]
push edx
mov ecx, str.sensorURL
mov dword [esp + 0x18], 0
call fcn.0041e6a0
lea edx, [esp + 0xc]
lea ecx, [esp + 0x18]
call fcn.004024a0
mov esi, dword [esp + 0xc]
mov dword [esp + 0xc], esi
test esi, esi
je 0x40aecd
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
push esi
call edi
and eax, 0xff
cmp eax, 0x80
jl 0x40aeac
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x80
jl 0x40aec4
push esi
call edi
jmp 0x40aecd
test eax, eax
jne 0x40aecd
call fcn.0045f5a0
lea edi, [esp + 0x18]
call fcn.004026d0
test esi, esi
je 0x40af2f
lea eax, [esi + 4]
test eax, eax
je 0x40af2f
cmp byte [eax], 0
je 0x40af2f
lea eax, [esp + 0xc]
push eax
lea edi, [ebx + 0x94c]
call fcn.00401250
lea edi, [ebx + 0x920]
lea eax, [edi + 0x10]
push eax
mov dword [edi + 4], 0
mov dword [esp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
push 0
push 0x43cff0
call fcn.0049dc4e
mov ecx, dword [esp + 0x18]
add esp, 0xc
push ecx
mov dword [edi + 0xc], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 1
mov eax, ebx
call fcn.00411680
test esi, esi
je 0x40af61
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x80
jl 0x40af58
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x40af61
test eax, eax
jne 0x40af61
call fcn.0045f5a0
mov esi, dword [esp + 0x14]
test esi, esi
je 0x40af8e
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x80
jl 0x40af85
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x40af8e
test eax, eax
jne 0x40af8e
call fcn.0045f5a0
lea edi, [esp + 0x60]
call fcn.00402a90
lea edi, [esp + 0x3c]
call fcn.00402a90
lea edi, [esp + 0x84]
call fcn.00402a90
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8