Function at 0x575028
Capabilities:
Terminate process

Disassembly:
mov eax, 0x679c78
call fcn.006313fc
sub esp, 0x94
cmp dword [0x792820], 0
push ebx
push ebp
mov ebp, ecx
je 0x575054
mov ecx, dword [0x7927e8]
test ecx, ecx
je 0x575054
call fcn.005a8c16
mov ebx, dword [esp + 0xb0]
mov eax, ebx
test ebx, ebx
jne 0x575066
mov eax, 0x70522c
push eax
push str.DoDestroy__s
call fcn.00409edb
add esp, 8
call fcn.004843c5
call fcn.0047a568
test al, al
jne 0x575777
push esi
push edi
lea ecx, [ebp + 0xa4]
mov byte [0x75fe61], al
call fcn.005ca1c5
lea ecx, [ebp + 0xb4]
call fcn.005ca1c5
lea ecx, [ebp + 0xc4]
call fcn.005ca1c5
lea ecx, [ebp + 0xd4]
call fcn.005ca1c5
lea ecx, [ebp + 0xe4]
call fcn.005ca1c5
lea ecx, [ebp + 0xf4]
call fcn.005ca1c5
call fcn.004a2684
mov edi, dword [eax]
mov esi, dword [edi]
jmp 0x5750e4
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 8]
mov esi, dword [esi]
cmp esi, edi
jne 0x5750da
xor eax, eax
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], eax
mov byte [esp + 0x74], al
push 0x695be8
lea ecx, [esp + 0x44]
mov dword [esp + 0xb0], eax
call fcn.00409ba7
push ebx
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb0], 1
call fcn.00409ba7
xor ebx, ebx
mov byte [esp + 0xac], 2
push ebx
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x68]
push eax
call fcn.00483a6d
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x80]
mov byte [esp + 0xb8], 3
call fcn.00409c77
xor esi, esi
lea ecx, [esp + 0x5c]
push ebx
inc esi
push esi
call fcn.0040a0e9
push ebx
push esi
lea ecx, [esp + 0x20]
call fcn.0040a0e9
push ebx
push esi
lea ecx, [esp + 0x48]
mov byte [esp + 0xb4], bl
call fcn.0040a0e9
push str.ShutdownBegin
lea ecx, [esp + 0x44]
call fcn.00409ba7
push esi
push ebx
push ebx
lea eax, [esp + 0x4c]
mov byte [esp + 0xb8], 4
push eax
lea eax, [esp + 0x84]
push eax
push 0x1e
call fcn.00484725
push ebx
push esi
lea ecx, [esp + 0x48]
mov byte [esp + 0xb4], bl
call fcn.0040a0e9
push dword [0x7705d4]
call dword [sym.imp.USER32.dll_IsIconic]
push dword [0x7705d4]
test eax, eax
setne byte [esp + 0x40]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
setne byte [esp + 0x30]
call fcn.0047a58c
mov eax, dword [0x7927e8]
push esi
push dword [eax + 4]
call fcn.00579751
mov ecx, ebp
cmp byte [0x75f98d], bl
je 0x575216
push 4
call fcn.00574754
mov byte [0x75f98d], bl
jmp 0x575220
push 0x200
call fcn.00574754
mov ecx, ebp
call fcn.00574e56
call fcn.005d9859
lea ecx, [ebp + 0x74]
call fcn.0058a4d2
mov ecx, ebp
call fcn.0057952c
push esi
call fcn.004bdd47
mov byte [esp + 0x17], 1
call fcn.00475044
mov ecx, dword [0x763900]
mov byte [esp + 0xac], 5
mov eax, dword [ecx]
call dword [eax + 0x64]
mov eax, dword [0x766a50]
or byte [eax + 0x28], 1
mov eax, dword [0x766a54]
test eax, eax
je 0x575274
or byte [eax + 0x28], 1
mov eax, dword [0x766a58]
or byte [eax + 0x1c], 1
mov eax, dword [0x766a5c]
test eax, eax
je 0x57528a
or byte [eax + 0x1c], 1
mov ecx, dword [0x764adc]
test ecx, ecx
je 0x57529b
push 1
call fcn.004755e9
mov ecx, dword [0x764ae0]
test ecx, ecx
je 0x5752ac
push 1
call fcn.004755e9
mov byte [esp + 0xac], bl
call fcn.00475085
push ebx
push dword [ebp + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov esi, dword [0x7705d0]
test esi, esi
je 0x5752e0
mov ecx, esi
call fcn.005ca568
push esi
call fcn.0040a313
pop ecx
mov dword [0x7705d0], ebx
mov ecx, dword [ebp + 0x6c]
test ecx, ecx
je 0x5752f3
mov dword [ebp + 0x6c], ebx
xor esi, esi
mov eax, dword [ecx]
inc esi
push esi
call dword [eax + 0x14]
mov edi, dword [0x7706c8]
mov esi, ebx
test edi, edi
je 0x57532b
push esi
mov ecx, 0x7706b8
call fcn.0041f637
mov ebx, dword [eax]
test ebx, ebx
je 0x575324
mov ecx, ebx
call fcn.0057389c
push ebx
call fcn.0040a313
mov edi, dword [0x7706c8]
pop ecx
inc esi
cmp esi, edi
jb 0x5752ff
xor ebx, ebx
mov ecx, 0x7706b8
call fcn.0041fd99
call fcn.0066340e
push 0x32
mov edi, ebx
pop esi
call fcn.0048a1a7
mov edx, dword [0x73fb08]
inc edi
mov dword [esp + 0x10], eax
mov ecx, eax
test edx, edx
je 0x575371
imul eax, edx, 0x3e8
cdq
idiv esi
cmp edi, eax
jl 0x57536d
mov eax, ecx
and eax, 0xfffffff7
mov dword [esp + 0x10], eax
jmp 0x575371
mov eax, dword [esp + 0x10]
cmp byte [0x73fb01], 0
je 0x575389
cmp edi, 0xc8
jl 0x575396
cmp eax, 1
jne 0x575396
jmp 0x575391
cmp edi, 0xc8
jl 0x575396
and dword [esp + 0x10], 0
test cl, 2
jne 0x5753b8
test bl, bl
jne 0x5753b8
push 1
call fcn.0057a761
push dword [ebp + 4]
lea ebx, [eax - 1]
neg bl
sbb bl, bl
inc bl
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp dword [esp + 0x10], 0
je 0x5755b6
mov eax, edi
mov ecx, 0x4b0
cdq
idiv ecx
test edx, edx
jne 0x5755aa
and dword [esp + 0x28], edx
mov dword [esp + 0x2c], 0xf
mov byte [esp + 0x18], dl
push str.Shutdown_pending:
mov byte [esp + 0xb0], 6
call fcn.00409db4
pop ecx
push eax
push str.Shutdown_pending:
lea ecx, [esp + 0x20]
call fcn.00409d17
test byte [esp + 0x10], 1
mov esi, 0x6d67b0
jne 0x575418
mov esi, 0x70522c
push esi
call fcn.00409db4
pop ecx
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.00409d17
test byte [esp + 0x10], 2
mov esi, str.DiskIO
jne 0x57543b
mov esi, 0x70522c
push esi
call fcn.00409db4
pop ecx
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.00409d17
test byte [esp + 0x10], 4
mov esi, str.DelTorrents
jne 0x57545e
mov esi, 0x70522c
push esi
call fcn.00409db4
pop ecx
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.00409d17
test byte [esp + 0x10], 8
mov esi, str.UPnP
jne 0x575481
mov esi, 0x70522c
push esi
call fcn.00409db4
pop ecx
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.00409d17
cmp dword [esp + 0x2c], 0x10
mov eax, dword [esp + 0x18]
jae 0x5754a2
lea eax, [esp + 0x18]
push eax
call fcn.00408ce1
mov dword [esp], 0x705798
call fcn.00408ce1
cmp dword [esp + 0x30], 0x10
mov eax, dword [esp + 0x1c]
pop ecx
jae 0x5754c4
lea eax, [esp + 0x18]
push eax
push 0x10
call fcn.00484d2b
and dword [esp + 0x58], 0
pop ecx
pop ecx
mov dword [esp + 0x54], 0xf
mov byte [esp + 0x40], 0
push 0x695be8
lea ecx, [esp + 0x60]
mov byte [esp + 0xb0], 7
call fcn.00409ba7
xor esi, esi
mov byte [esp + 0xac], 8
push esi
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x98]
push eax
call fcn.00483a6d
push 0xffffffffffffffff
push esi
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0xb8], 9
call fcn.00409c77
push esi
push 1
lea ecx, [esp + 0x94]
call fcn.0040a0e9
push esi
push 1
lea ecx, [esp + 0x64]
mov byte [esp + 0xb4], 7
call fcn.0040a0e9
push str.ShutdownPending
lea ecx, [esp + 0x60]
call fcn.00409ba7
push 1
push esi
push esi
lea eax, [esp + 0x68]
mov byte [esp + 0xb8], 0xa
push eax
lea eax, [esp + 0x50]
push eax
push 0x1e
call fcn.00484725
push esi
push 1
lea ecx, [esp + 0x64]
call fcn.0040a0e9
push esi
push 1
lea ecx, [esp + 0x48]
call fcn.0040a0e9
push esi
push 1
lea ecx, [esp + 0x20]
mov byte [esp + 0xb4], 0
call fcn.0040a0e9
push 0x32
pop esi
push esi
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x57533f
xor eax, eax
push eax
push eax
push eax
push 0xa
call fcn.005008d9
test eax, eax
je 0x5755cb
add eax, 0xc
jmp 0x5755cd
xor eax, eax
push 0
push eax
call fcn.005024e4
test bl, bl
jne 0x5755e9
push 0
call fcn.0057a761
lea ebx, [eax - 1]
neg bl
sbb bl, bl
inc bl
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.00490c03
call fcn.00490b05
mov esi, eax
call fcn.00490ab9
push eax
push esi
push dword [esp + 0x60]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.004909f5
push eax
lea eax, [esp + 0xa4]
push str._action_:__s._d._d._02d._d._05d_
push eax
call fcn.00472228
add esp, 0x20
lea ecx, [esp + 0x74]
push eax
call fcn.00409822
push 0
push 1
lea ecx, [esp + 0x94]
call fcn.0040a0e9
push str.ShutdownDone
lea ecx, [esp + 0x60]
call fcn.00409ba7
push 1
push 0
push 0
lea eax, [esp + 0x68]
mov byte [esp + 0xb8], 0xb
push eax
lea eax, [esp + 0x84]
push eax
push 0x1e
call fcn.00484725
push 0
push 1
lea ecx, [esp + 0x64]
mov byte [esp + 0xb4], 0
call fcn.0040a0e9
call fcn.004a2684
mov edi, dword [eax]
mov esi, dword [edi]
jmp 0x5756a6
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, dword [esi]
cmp esi, edi
jne 0x57569c
pop edi
pop esi
test bl, bl
jne 0x5756c4
xor ebx, ebx
push ebx
push 1
call fcn.00489700
push ebx
push 1
call fcn.00489987
jmp 0x5756c6
xor ebx, ebx
mov byte [esp + 0xf], 1
call fcn.00475044
mov ecx, dword [0x766a50]
push ebx
mov byte [esp + 0xa8], 0xc
call fcn.004755e9
mov ecx, dword [0x766a54]
test ecx, ecx
je 0x5756f4
push ebx
call fcn.004755e9
mov ecx, dword [0x766a58]
push ebx
call fcn.004755e9
mov ecx, dword [0x766a5c]
test ecx, ecx
je 0x575710
push ebx
call fcn.004755e9
mov byte [esp + 0xa4], bl
call fcn.00475085
call fcn.004843e8
cmp byte [esp + 0xb4], 0
je 0x575750
push dword [0x7705e4]
call dword [sym.imp.KERNEL32.DLL_ReleaseMutex]
push dword [0x7705e4]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push dword [esp + 0x28]
push dword [esp + 0x38]
call fcn.00592e7b
push ebx
push 0x107
call fcn.00489603
cmp byte [esp + 0xb8], 0
push ebx
je 0x57576c
call dword [sym.imp.KERNEL32.DLL_ExitProcess]
push 1
lea ecx, [esp + 0x74]
call fcn.0040a0e9
mov ecx, dword [esp + 0x9c]
pop ebp
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc