Function at 0x407670
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 0x406cb0
push 0
call fcn.00405310
mov ebp, eax
add esp, 0xc
mov dword [esp + 0xc], ebp
test ebp, ebp
jne 0x4076bf
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00404fa0
push eax
push 0x4000022a
push ebp
push ebp
call fcn.00405180
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 0x4076fa
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 0x407728
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.00405390
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 0x4077a3
push eax
push 0x3ed
push ebp
call ebx
cmp dword [esp + 0x3c], 0x67
jne 0x4077a3
push 0x3ef
push ebp
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
test esi, esi
je 0x407ea8
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 0x407ea8
cmp dword [esp + 0x3c], 0x68
jne 0x407ea8
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 0x4077f6
mov eax, dword [0x4233c8]
lea edx, [edi + 0x8418]
push edx
push 0x3e8
push eax
jmp 0x407809
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 0x407908
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 0x40794a
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 0x40794a
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 0x4079b9
lea edx, [esp + 0x14]
push edx
mov edx, dword [edi + 0x40408]
lea ecx, [esp + 0x40]
push ecx
push eax
push edx
call fcn.0040ade0
add esp, 0x10
test eax, eax
je 0x407992
mov eax, dword [esp + 0x10]
push str.nssm_dlg__
push str.dependencies
push 0xc00003eb
push 0x30
push eax
call fcn.00405180
add esp, 0x14
jmp 0x4079b9
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 0x4079eb
push eax
call fcn.0040c780
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 0x407ace
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 0x407a89
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 0x407a75
cmp ecx, ebx
je 0x407a89
mov edx, dword [esp + 0x10]
push 0x4000025a
push 0x30
push edx
call fcn.00405180
add esp, 0xc
xor ebx, ebx
call fcn.00409820
test eax, eax
jle 0x407ace
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.00412e40
and eax, dword [edi + 0x40400]
and edx, dword [edi + 0x40404]
or eax, edx
jne 0x407ac4
push ebx
push eax
mov eax, dword [esp + 0x1c]
push 0x185
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
inc ebx
call fcn.00409820
cmp ebx, eax
jl 0x407a94
cmp dword [edi + 0x40420], 0
je 0x407af2
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 0x407b28
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 0x407b7b
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 0x407bc8
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 0x407c03
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 0x407cc1
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 0x407d1d
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 0x407d2f
cmp dword [edi + 0x70468], 0
je 0x407d49
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 0x407d80
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 0x407dac
test eax, eax
je 0x407d9e
cmp eax, 4
je 0x407d9e
cmp eax, 2
jne 0x407dac
test ecx, ecx
je 0x407dc2
cmp ecx, 4
je 0x407dc2
cmp ecx, 2
je 0x407dc2
mov ebp, dword [esp + 0x10]
push 0x4000025c
push 0x30
push ebp
call fcn.00405180
add esp, 0xc
jmp 0x407dc6
mov ebp, dword [esp + 0x10]
cmp dword [edi + 0x70474], 0
je 0x407ddf
push 0x4000025d
push 0x30
push ebp
call fcn.00405180
add esp, 0xc
mov esi, dword [edi + 0x40418]
test esi, esi
je 0x407df1
mov ebx, dword [edi + 0x40414]
jmp 0x407e1c
mov esi, dword [edi + 0x40410]
mov ebx, dword [edi + 0x403f8]
test esi, esi
je 0x407e7e
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 0x407e7e
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x40]
push ecx
push esi
push ebx
call fcn.0040ade0
add esp, 0x10
test eax, eax
je 0x407e54
push str.nssm_dlg__
push str.environment
push 0xc00003eb
push 0x30
push ebp
call fcn.00405180
add esp, 0x14
jmp 0x407e7e
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 0x407ea4
cmp dword [edi + 0x40418], 0
je 0x407ea4
mov edx, dword [esp + 0x10]
push 0x4000025e
push 0x30
push edx
call fcn.00405180
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 0x407eff
mov edi, dword [sym.imp.USER32.dll_IsDialogMessageW]
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
jmp 0x407ed0
lea ecx, [esp + 0x1c]
push ecx
push ebp
call edi
test eax, eax
jne 0x407eee
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 0x407ed0
mov eax, dword [esp + 0x24]
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x28
ret