Function at 0x407960
Capabilities:
Hide graphical window

Disassembly:
sub esp, 0x28
push ebp
push esi
movzx esi, word [esp + 0x34]
push edi
mov edi, dword [esp + 0x3c]
push edi
push 0x406fa0
push 0
call fcn.00405600
mov ebp, eax
add esp, 0xc
mov dword [esp + 0xc], ebp
test ebp, ebp
jne 0x4079af
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004052c0
push eax
push 0x4000022a
push ebp
push ebp
call fcn.004054a0
add esp, 0x14
pop edi
pop esi
lea eax, [ebp + 1]
pop ebp
add esp, 0x28
ret
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push ebx
push 0
push 0x32
call esi
push eax
push 0x31
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
push 1
push 0x65
push 0
call ebx
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
test eax, eax
je 0x4079ea
push eax
push 0
push 0x80
push ebp
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0xc
call esi
push eax
push 0xb
call esi
push eax
push 1
push 0x65
push 0
call ebx
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
test eax, eax
je 0x407a18
push eax
push 1
push 0x80
push ebp
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x3c]
mov esi, dword [sym.imp.USER32.dll_SetWindowLongW]
push eax
push 0xffffffffffffffeb
push ebp
call esi
push ebp
call fcn.00405680
add esp, 4
push 5
push ebp
call dword [sym.imp.USER32.dll_ShowWindow]
cmp word [edi + 2], 0
mov ebx, dword [sym.imp.USER32.dll_SetDlgItemTextW]
lea eax, [edi + 2]
je 0x407a93
push eax
push 0x3ed
push ebp
call ebx
cmp dword [esp + 0x3c], 0x67
jne 0x407a93
push 0x3ef
push ebp
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
test esi, esi
je 0x408198
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x201
push esi
call edi
push 0
push 0
push 0x202
push esi
call edi
jmp 0x408198
cmp dword [esp + 0x3c], 0x68
jne 0x408198
push edi
push 8
push ebp
call esi
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0
push 0x3ed
push ebp
call esi
mov ebp, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call ebp
mov ecx, dword [esp + 0x10]
push 1
push ecx
call esi
push eax
call dword [sym.imp.USER32.dll_SetFocus]
cmp byte [edi], 0
je 0x407ae6
mov eax, dword [0x4233c8]
lea edx, [edi + 0x8418]
push edx
push 0x3e8
push eax
jmp 0x407af9
mov edx, dword [0x4233c8]
lea ecx, [edi + 0x18416]
push ecx
push 0x3e8
push edx
call ebx
mov ecx, dword [0x4233c8]
lea eax, [edi + 0x30412]
push eax
push 0x400
push ecx
call ebx
mov eax, dword [0x4233c8]
lea edx, [edi + 0x28414]
push edx
push 0x3ec
push eax
call ebx
mov edx, dword [0x4233cc]
lea ecx, [edi + 0x202]
push ecx
push 0x409
push edx
call ebx
mov ecx, dword [0x4233cc]
lea eax, [edi + 0x402]
push eax
push 0x40a
push ecx
call ebx
mov edx, dword [0x4233cc]
push 0x40b
push edx
call esi
mov ecx, dword [edi + 0x8400]
push 0
push ecx
push 0x14e
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [edi + 0x8404], 0
je 0x407bf8
mov edx, dword [0x4233d0]
push 0x40e
push 0x40e
push 0x40c
push edx
call dword [sym.imp.USER32.dll_CheckRadioButton]
mov eax, dword [edi + 0x8404]
mov ecx, dword [0x4233d0]
push eax
push 0x40f
push ecx
call ebx
mov edx, dword [0x4233d0]
push 0
push 0x40d
push edx
call esi
push eax
call ebp
mov eax, dword [0x4233d0]
push 1
push 0x40f
push eax
call esi
push eax
call ebp
mov ecx, dword [0x4233d0]
push 1
push 0x410
push ecx
call esi
push eax
call ebp
mov edx, dword [0x4233d0]
push 1
push 0x411
push edx
call esi
push eax
call ebp
jmp 0x407c3a
mov eax, dword [0x4233d0]
push 0x40c
push 0x40e
push 0x40c
push eax
call dword [sym.imp.USER32.dll_CheckRadioButton]
test dword [edi + 0x8414], 0x100
je 0x407c3a
mov ecx, dword [0x4233d0]
push 0
push 1
push 0xf1
push 0x40d
push ecx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov eax, dword [edi + 0x4040c]
test eax, eax
je 0x407ca9
lea edx, [esp + 0x14]
push edx
mov edx, dword [edi + 0x40408]
lea ecx, [esp + 0x40]
push ecx
push eax
push edx
call fcn.0040b010
add esp, 0x10
test eax, eax
je 0x407c82
mov eax, dword [esp + 0x10]
push str.nssm_dlg__
push str.dependencies
push 0xc00003eb
push 0x30
push eax
call fcn.004054a0
add esp, 0x14
jmp 0x407ca9
mov ecx, dword [esp + 0x3c]
mov edx, dword [0x4233d4]
push ecx
push 0x416
push edx
call ebx
mov eax, dword [esp + 0x3c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [edi + 0x4041c]
test eax, eax
je 0x407cdb
push eax
call fcn.0040c9b0
mov ecx, dword [0x4233d8]
add esp, 4
push 0x412
push ecx
mov ebx, eax
call esi
push 0
push ebx
push 0x14e
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [edi + 0x40400]
or edx, dword [edi + 0x40404]
je 0x407dbe
mov eax, dword [0x4233d8]
push 0x414
push eax
call esi
mov ecx, dword [0x4233d8]
push 0
push 0
push 0xf1
push 0x413
push ecx
mov dword [esp + 0x28], eax
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov edx, dword [0x4233d8]
push 1
push 0x414
push edx
call esi
push eax
call ebp
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessAffinityMask]
test eax, eax
je 0x407d79
mov edx, dword [edi + 0x40400]
mov eax, dword [esp + 0x3c]
mov ebx, dword [edi + 0x40404]
xor ecx, ecx
and eax, edx
and ecx, ebx
cmp eax, edx
jne 0x407d65
cmp ecx, ebx
je 0x407d79
mov edx, dword [esp + 0x10]
push 0x4000025a
push 0x30
push edx
call fcn.004054a0
add esp, 0xc
xor ebx, ebx
call fcn.00409b10
test eax, eax
jle 0x407dbe
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.004130b0
and eax, dword [edi + 0x40400]
and edx, dword [edi + 0x40404]
or eax, edx
jne 0x407db4
push ebx
push eax
mov eax, dword [esp + 0x1c]
push 0x185
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
inc ebx
call fcn.00409b10
cmp ebx, eax
jl 0x407d84
cmp dword [edi + 0x40420], 0
je 0x407de2
mov ecx, dword [0x4233d8]
push 0
push 0
push 0xf1
push 0x415
push ecx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
test byte [edi + 0x70484], 1
jne 0x407e18
mov edx, dword [0x4233dc]
push 0
push 0
push 0xf1
push 0x3f0
push edx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov eax, dword [0x4233dc]
push 0
push 0x3f4
push eax
call esi
push eax
call ebp
mov ecx, dword [edi + 0x70488]
mov edx, dword [0x4233dc]
mov ebx, dword [sym.imp.USER32.dll_SetDlgItemInt]
push 0
push ecx
push 0x3f4
push edx
call ebx
test byte [edi + 0x70484], 2
jne 0x407e6b
mov eax, dword [0x4233dc]
push 0
push 0
push 0xf1
push 0x3f1
push eax
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov ecx, dword [0x4233dc]
push 0
push 0x3f5
push ecx
call esi
push eax
call ebp
mov edx, dword [edi + 0x7048c]
mov eax, dword [0x4233dc]
push 0
push edx
push 0x3f5
push eax
call ebx
test byte [edi + 0x70484], 4
jne 0x407eb8
mov ecx, dword [0x4233dc]
push 0
push 0
push 0xf1
push 0x3f2
push ecx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov edx, dword [0x4233dc]
push 0
push 0x3f6
push edx
call esi
push eax
call ebp
mov eax, dword [edi + 0x70490]
mov ecx, dword [0x4233dc]
push 0
push eax
push 0x3f6
push ecx
call ebx
test byte [edi + 0x70484], 8
jne 0x407ef3
mov edx, dword [0x4233dc]
push 0
push 0
push 0xf1
push 0x3f3
push edx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov eax, dword [edi + 0x70480]
mov ecx, dword [0x4233e0]
push 0
push eax
push 0x3fd
push ecx
call ebx
mov edx, dword [0x4233e0]
push 0x3fe
push edx
call esi
mov ecx, dword [edi + 0x70478]
push 0
push ecx
push 0x14e
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [edi + 0x7047c]
mov eax, dword [0x4233e0]
push 0
push edx
push 0x3ff
push eax
call ebx
mov edx, dword [0x4233e4]
lea ecx, [edi + 0x40424]
push ecx
push 0x3f7
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov ecx, dword [0x4233e4]
lea eax, [edi + 0x50430]
push eax
push 0x3f8
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov eax, dword [0x4233e4]
lea edx, [edi + 0x60448]
push edx
push 0x3f9
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
cmp dword [edi + 0x60434], 2
jne 0x407fb1
mov ecx, dword [0x4233e8]
push 0
push 1
push 0xf1
push 0x404
push ecx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
cmp byte [edi + 0x70460], 0
je 0x40800d
mov edx, dword [0x4233e8]
push 0
push 1
push 0xf1
push 0x405
push edx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov eax, dword [0x4233e8]
push 1
push 0x406
push eax
call esi
push eax
call ebp
mov ecx, dword [0x4233e8]
push 1
push 0x407
push ecx
call esi
push eax
call ebp
mov edx, dword [0x4233e8]
push 1
push 0x408
push edx
call esi
push eax
call ebp
cmp dword [edi + 0x70464], 0
jne 0x40801f
cmp dword [edi + 0x70468], 0
je 0x408039
mov eax, dword [0x4233e8]
push 0
push 1
push 0xf1
push 0x406
push eax
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov ecx, dword [edi + 0x7046c]
mov edx, dword [0x4233e8]
push 0
push ecx
push 0x407
push edx
call ebx
cmp dword [edi + 0x70474], 0
jne 0x408070
mov eax, dword [edi + 0x70470]
mov ecx, dword [0x4233e8]
push 0
push eax
push 0x408
push ecx
call ebx
mov eax, dword [edi + 0x60434]
mov ecx, dword [edi + 0x7044c]
cmp eax, ecx
jne 0x40809c
test eax, eax
je 0x40808e
cmp eax, 4
je 0x40808e
cmp eax, 2
jne 0x40809c
test ecx, ecx
je 0x4080b2
cmp ecx, 4
je 0x4080b2
cmp ecx, 2
je 0x4080b2
mov ebp, dword [esp + 0x10]
push 0x4000025c
push 0x30
push ebp
call fcn.004054a0
add esp, 0xc
jmp 0x4080b6
mov ebp, dword [esp + 0x10]
cmp dword [edi + 0x70474], 0
je 0x4080cf
push 0x4000025d
push 0x30
push ebp
call fcn.004054a0
add esp, 0xc
mov esi, dword [edi + 0x40418]
test esi, esi
je 0x4080e1
mov ebx, dword [edi + 0x40414]
jmp 0x40810c
mov esi, dword [edi + 0x40410]
mov ebx, dword [edi + 0x403f8]
test esi, esi
je 0x40816e
mov edx, dword [0x4233ec]
push 0
push 1
push 0xf1
push 0x403
push edx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
test esi, esi
je 0x40816e
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x40]
push ecx
push esi
push ebx
call fcn.0040b010
add esp, 0x10
test eax, eax
je 0x408144
push str.nssm_dlg__
push str.environment
push 0xc00003eb
push 0x30
push ebp
call fcn.004054a0
add esp, 0x14
jmp 0x40816e
mov edx, dword [esp + 0x3c]
mov eax, dword [0x4233ec]
push edx
push 0x402
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov ecx, dword [esp + 0x3c]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [edi + 0x40410], 0
je 0x408194
cmp dword [edi + 0x40418], 0
je 0x408194
mov edx, dword [esp + 0x10]
push 0x4000025e
push 0x30
push edx
call fcn.004054a0
add esp, 0xc
mov ebp, dword [esp + 0x10]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x28]
push eax
call esi
test eax, eax
je 0x4081ef
mov edi, dword [sym.imp.USER32.dll_IsDialogMessageW]
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
jmp 0x4081c0
lea ecx, [esp + 0x1c]
push ecx
push ebp
call edi
test eax, eax
jne 0x4081de
lea edx, [esp + 0x1c]
push edx
call ebx
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea ecx, [esp + 0x28]
push ecx
call esi
test eax, eax
jne 0x4081c0
mov eax, dword [esp + 0x24]
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x28
ret