Function at 0x446c80
Capabilities:
Create process on windows

Disassembly:
sub esp, 0x50
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esp + 0x60]
push edi
mov eax, ecx
and eax, 0xffff
shr ecx, 0x10
js case.0x446cc4.20169
mov ebp, 1
cmp ecx, ebp
jg case.0x446cc4.20169
lea ecx, [eax - 0x4e8c]
cmp ecx, 0xf7
ja case.0x446cc4.20169
xor edx, edx
mov dl, byte [ecx + 0x4477d0]
jmp dword [edx*4 + 0x4476d8]
push eax
mov ecx, esi
call fcn.004435f0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
push 0
mov ecx, esi
call fcn.004441e0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.004451c0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00445330
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov al, byte [0x4eb486]
test al, al
jne case.0x446cc4.20169
push ebp
mov ecx, esi
call fcn.00441960
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov al, byte [0x4eb486]
test al, al
jne case.0x446cc4.20169
mov ecx, esi
call fcn.00440060
mov eax, dword [esi + 0xc]
push eax
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
jne 0x446d79
mov eax, dword [0x4eb3f4]
test eax, eax
je 0x446d79
mov ecx, esi
call fcn.0043ef10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, dword [esi + 0xc]
push 0xfffffffffffffff0
push ecx
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0xc00000
jne case.0x446cc4.20169
push 0
mov ecx, esi
call fcn.0043f610
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov edx, dword [esi]
push ebp
mov ecx, esi
call dword [edx + 0x1c]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x2c]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 4]
push 0x4eb4c1
push eax
push ecx
call fcn.00452bb0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00442730
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00442990
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x24]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x14]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00441b30
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x60]
lea edx, [eax - 1]
cmp ecx, edx
jge case.0x446cc4.20169
add eax, 0xfffffffe
xor edx, edx
cmp ecx, eax
sete dl
xor ebx, ebx
mov dword [esi + 0x70], edx
mov dword [esi + 0x74], ebx
mov eax, dword [0x4eb464]
cmp eax, ebx
je 0x446eab
mov eax, dword [esi + 0x10]
push 0x4eb4
push eax
call fcn.00404250
add esp, 8
test eax, eax
je 0x446eab
mov edi, ebp
jmp 0x446ead
xor edi, edi
push ebx
push ebx
mov ecx, esi
mov dword [esi + 0x94], ebx
call fcn.0043ff60
push eax
mov ecx, esi
call fcn.0043fcd0
cmp edi, ebx
je case.0x446cc4.20169
mov ecx, dword [esi + 0x10]
push 0x4eb4
push ecx
call fcn.004041d0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00441b30
mov eax, dword [esi + 0x60]
xor ebx, ebx
cmp eax, ebx
jle case.0x446cc4.20169
xor edx, edx
cmp eax, ebp
setne dl
mov dword [esi + 0x70], edx
mov dword [esi + 0x74], ebx
cmp dword [0x4eb464], ebx
je 0x446f2b
mov eax, dword [esi + 0x10]
push 0x4eb3
push eax
call fcn.00404250
add esp, 8
test eax, eax
je 0x446f2b
mov edi, ebp
jmp 0x446f2d
xor edi, edi
push ebx
push ebp
mov ecx, esi
mov dword [esi + 0x94], ebx
call fcn.0043ff60
push eax
mov ecx, esi
call fcn.0043fcd0
cmp edi, ebx
je case.0x446cc4.20169
mov ecx, dword [esi + 0x10]
push 0x4eb3
push ecx
call fcn.004041d0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00441b30
mov ecx, dword [esi + 0x60]
xor eax, eax
cmp ecx, eax
jle case.0x446cc4.20169
push eax
mov ecx, esi
mov dword [esi + 0x94], eax
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], eax
call fcn.0043fcd0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00441b30
mov edx, dword [esi + 0x44]
mov eax, dword [esi + 0x60]
dec edx
cmp eax, edx
jge case.0x446cc4.20169
xor eax, eax
mov dword [esi + 0x70], ebp
mov dword [esi + 0x94], eax
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0x44]
mov ecx, esi
dec eax
push eax
call fcn.0043fcd0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x28]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00443080
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00443120
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00443390
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.004434c0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
push 0x3ff00000
push 0
mov ecx, esi
call fcn.00448550
mov eax, dword [0x4eb3f4]
test eax, eax
je 0x447083
mov eax, dword [esi + 0xc]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0xc00000
je 0x447083
mov ecx, dword [esi + 0xc]
push ecx
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
jne 0x447083
mov ecx, esi
call fcn.0043ef10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov dword [esi + 0xa4], 0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
push ebp
push ebp
mov ecx, esi
mov dword [esi + 0xa8], 0
call fcn.0043f3b0
mov edx, dword [esi + 0xc]
push 0xfffffffffffffff0
push edx
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0xc00000
je case.0x446cc4.20169
mov eax, dword [0x4eb3f4]
test eax, eax
je case.0x446cc4.20169
mov eax, dword [esi + 0xc]
push eax
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
jne case.0x446cc4.20169
mov ecx, esi
call fcn.0043ef10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, dword [esi + 8]
mov eax, dword [ecx + 0x6e0]
test eax, eax
jne 0x44713b
mov eax, dword [ecx + 0x40]
test eax, eax
jne 0x44713b
mov ecx, dword [ecx + 0x50]
push ecx
call dword [sym.imp.USER32.dll_SetCapture]
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x28]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov ecx, dword [esi + 8]
pop edi
xor eax, eax
mov dword [ecx + 0x6e0], ebp
mov dword [esi + 0xb4], ebp
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 8
call fcn.0045f630
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x30]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00443760
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.004439b0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00443be0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00443f40
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov al, byte [0x4eb487]
test al, al
jne case.0x446cc4.20169
mov eax, dword [esi + 0x60]
lea ecx, [esi + 0x3c]
push eax
call fcn.0042cac0
mov ebx, eax
test ebx, ebx
je case.0x446cc4.20169
mov ecx, dword [esi + 0x90]
push 0
push ecx
mov ecx, ebx
call fcn.0045b1b0
mov edx, dword [esi + 0xc]
push eax
mov eax, dword [esi + 4]
push edx
push eax
call fcn.00403e30
mov edi, eax
add esp, 0x14
test edi, edi
je case.0x446cc4.20169
mov ecx, dword [0x4eb330]
mov edx, dword [0x4eb32c]
push ecx
push edx
push edi
mov ecx, ebx
call fcn.0045b1b0
push eax
call fcn.0044b810
mov eax, dword [esi + 0x90]
push eax
call fcn.004be975
add esp, 0x14
mov ecx, esi
mov dword [esi + 0x90], edi
call fcn.00441f90
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, dword [esi + 0xc]
push 0
push 0xf020
push 0x112
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov edx, dword [0x4eb420]
mov edi, dword [sym.imp.USER32.dll_GetWindowLongA]
xor eax, eax
test edx, edx
sete al
test eax, eax
mov dword [0x4eb420], eax
je 0x44728f
mov edx, dword [esi + 0xc]
push 0xfffffffffffffff0
push edx
call edi
test eax, 0xc00000
je 0x44728f
mov eax, dword [esi + 0x1c]
jmp 0x447291
xor eax, eax
push eax
mov eax, dword [esi + 0xc]
push eax
call dword [sym.imp.USER32.dll_SetMenu]
mov ecx, dword [esi + 0xc]
push 0xfffffffffffffff0
push ecx
call edi
test eax, 0xc00000
je 0x4472c9
mov eax, dword [0x4eb3f4]
test eax, eax
je 0x4472c9
mov edx, dword [esi + 0xc]
push edx
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
jne 0x4472c9
mov ecx, esi
call fcn.0043ef10
mov ecx, esi
call fcn.00441cf0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov edx, dword [0x4eb418]
mov edi, dword [sym.imp.USER32.dll_GetWindowLongA]
xor eax, eax
test edx, edx
sete al
test eax, eax
mov dword [0x4eb418], eax
je 0x44730b
mov eax, dword [esi + 0xc]
push 0xfffffffffffffff0
push eax
call edi
test eax, 0xc00000
je 0x44730b
mov eax, ebp
jmp 0x44730d
xor eax, eax
mov ecx, dword [esi + 0xc]
push 0xfffffffffffffff0
push ecx
mov dword [esi + 0x98], eax
call edi
test eax, 0xc00000
je 0x44739f
mov eax, dword [0x4eb3f4]
test eax, eax
je 0x44739f
mov edx, dword [esi + 0xc]
push edx
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
jne 0x44739f
jmp 0x447398
mov edx, dword [0x4eb41c]
mov edi, dword [sym.imp.USER32.dll_GetWindowLongA]
xor eax, eax
test edx, edx
sete al
test eax, eax
mov dword [0x4eb41c], eax
je 0x44736a
mov eax, dword [esi + 0xc]
push 0xfffffffffffffff0
push eax
call edi
test eax, 0xc00000
je 0x44736a
mov eax, ebp
jmp 0x44736c
xor eax, eax
mov ecx, dword [esi + 0xc]
push 0xfffffffffffffff0
push ecx
mov dword [esi + 0x9c], eax
call edi
test eax, 0xc00000
je 0x44739f
mov eax, dword [0x4eb3f4]
test eax, eax
je 0x44739f
mov edx, dword [esi + 0xc]
push edx
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
jne 0x44739f
mov ecx, esi
call fcn.0043ef10
mov ecx, esi
call fcn.00441cf0
mov ecx, esi
call fcn.00447a80
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov edi, dword [sym.imp.USER32.dll_LoadCursorA]
push 0x7f02
push 0
call edi
mov ebx, dword [sym.imp.USER32.dll_SetCursor]
push eax
call ebx
mov ecx, dword [esi + 4]
lea eax, [esp + 0x10]
push 0x50
push eax
push 0xc5
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
push ebp
push 0
lea edx, [esp + 0x18]
push 0
push edx
push 0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push 0x7f00
push 0
mov ebp, eax
call edi
push eax
call ebx
cmp ebp, 0x1f
jg case.0x446cc4.20169
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 4]
push 0x20c
push eax
push ecx
call fcn.0044aec0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 8
mov edx, dword [esi + 0x60]
lea ecx, [esi + 0x3c]
push edx
call fcn.0042cac0
test eax, eax
je case.0x446cc4.20169
push str.Open
push 0
mov ecx, eax
call fcn.0045b1b0
push eax
mov eax, dword [esi + 0xc]
push eax
call fcn.00404ed0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 8
mov ecx, dword [esi + 0x60]
push ecx
lea ecx, [esi + 0x3c]
call fcn.0042cac0
test eax, eax
je case.0x446cc4.20169
push str.Edit
push 0
mov ecx, eax
call fcn.0045b1b0
mov edx, dword [esi + 0xc]
push eax
push edx
call fcn.00404ed0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 8
mov eax, dword [esi + 0x60]
lea ecx, [esi + 0x3c]
push eax
call fcn.0042cac0
test eax, eax
je case.0x446cc4.20169
push ebp
push str.Open
mov ecx, eax
call fcn.0045b1b0
mov ecx, dword [esi + 0xc]
push eax
push ecx
call fcn.00404d90
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 8
mov edx, dword [esi + 0x60]
lea ecx, [esi + 0x3c]
push edx
call fcn.0042cac0
test eax, eax
je case.0x446cc4.20169
push ebp
push str.Edit
mov ecx, eax
call fcn.0045b1b0
push eax
mov eax, dword [esi + 0xc]
push eax
call fcn.00404d90
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00444430
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00444570
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00444660
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00444ab0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.004448d0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.004449c0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, dword [esi + 0xc]
push 0xfffffffffffffff0
push ecx
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0xc00000
je case.0x446cc4.20169
mov edx, dword [esi + 0xc]
mov eax, dword [str.SoftwareACD_SystemsACDSee32]
push edx
push str.ViewerWndPos
push eax
call fcn.00449620
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00444b40
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00448580
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00444b60
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00444de0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
push eax
mov ecx, esi
call fcn.00443290
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, esi
call fcn.00444860
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov ecx, dword [esi + 0xc]
push 0
push 0xb
push str.ACDSee32.hlp
push ecx
call dword [sym.imp.USER32.dll_WinHelpA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
mov edx, dword [esi + 0xc]
push 3
push ebp
push str.ACDSee32.hlp
push edx
call dword [sym.imp.USER32.dll_WinHelpA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
push 0
mov ecx, esi
call fcn.00444f70
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
push 0xffffffffffffffa6
mov ecx, esi
call fcn.00444f70
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
push 0x5a
mov ecx, esi
call fcn.00444f70
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8
push 0xb4
mov ecx, esi
call fcn.00444f70
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 8