Function at 0x430c20
Capabilities:
Create process on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46f9c2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5f8
mov eax, dword [0x48aaf0]
xor eax, ebp
mov dword [esp + 0x5f0], eax
mov eax, dword [ebp + 8]
push ebx
push esi
add eax, 0xffff7ff7
cmp eax, 4
push edi
mov esi, ecx
ja case.default.0x430c65
jmp dword [eax*4 + 0x4311d8]
push 0xffffffffffffffff
lea edi, [esi + 0xf84]
push 0
mov ecx, edi
mov dword [esi + 0x105c], 1
call sub.MFC71.DLL_CStringArray::SetSize
push 0
push 0x489618
push 0x81a04
push 0
push 0
push 1
lea ecx, [esp + 0x110]
call fcn.004125a0
lea ecx, [esp + 0xf8]
mov dword [esp + 0x60c], 0
call fcn.00412640
cmp eax, 1
jne 0x430e44
push 0xffffffffffffffff
push 0
mov ecx, edi
call sub.MFC71.DLL_CStringArray::SetSize
push 0xffffffffffffffff
lea ebx, [esi + 0xdf4]
push 0
mov ecx, ebx
call sub.MFC71.DLL_CStringArray::SetSize
lea ecx, [esp + 0xf8]
call fcn.004127b0
test eax, eax
mov dword [esp + 0x10], eax
je 0x430d5b
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x100]
call fcn.004126b0
lea ecx, [esp + 0xc]
mov byte [esp + 0x60c], 1
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::IsEmpty]
test al, al
jne 0x430d41
mov eax, dword [edi + 8]
lea edx, [esp + 0xc]
push edx
push eax
mov ecx, edi
call sub.MFC71.DLL_CStringArray::SetAtGrow_1
mov eax, dword [ebx + 8]
lea ecx, [esp + 0xc]
push ecx
push eax
mov ecx, ebx
call sub.MFC71.DLL_CStringArray::SetAtGrow_1
lea ecx, [esp + 0xc]
mov byte [esp + 0x60c], 0
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x430cf5
mov eax, dword [esi + 0xf8c]
test eax, eax
jle 0x430e44
mov eax, dword [edi + 8]
test eax, eax
jg 0x430d75
call fcn.0046ae8a
mov eax, dword [edi + 4]
push eax
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_5]
mov bl, 2
lea ecx, [esp + 0xc]
mov byte [esp + 0x60c], bl
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::IsEmpty]
test al, al
jne 0x430e3a
push 1
push 0
mov ecx, edi
call sub.MFC71.DLL_CStringArray::RemoveAt
mov al, byte [esi + 0x18de]
test al, al
mov byte [esi + 0x11a0], 1
mov dword [esi + 0x290], 0
je 0x430ddd
mov eax, dword [esi + 0x340]
test eax, eax
je 0x430ddd
push 0
add eax, 0x40c
push eax
mov ecx, esi
call fcn.0041b940
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x47316f
mov byte [esi + 0x18de], 0
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_4]
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x47316f
mov byte [esp + 0x61c], 3
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_4]
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
mov byte [esp + 0x620], 4
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_5]
mov ecx, esi
mov byte [esp + 0x61c], bl
call fcn.004304f0
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0xf8]
mov dword [esi + 0x105c], 0
mov dword [esp + 0x60c], 0xffffffff
call fcn.00412600
jmp case.default.0x430c65
mov eax, dword [esi + 0x1000]
push 0
push eax
lea ecx, [esp + 0x80]
mov dword [esi + 0x18c8], 1
call fcn.0040d480
mov ebx, 5
lea ecx, [esp + 0x78]
mov dword [esp + 0x60c], ebx
call sub.MFC71.DLL_CDialog::DoModal
cmp eax, 1
jne 0x431009
push 0
push 0x477e94
lea ecx, [esp + 0xf4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Find_1]
test eax, eax
jle 0x431009
push 9
push str.ppfilm:__
lea ecx, [esp + 0xf4]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
mov edi, dword [sym.imp.MSVCR71.dll__strnicmp]
push eax
call edi
add esp, 0xc
test eax, eax
je 0x430f63
push 7
push str.pvod:__
lea ecx, [esp + 0xf4]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call edi
add esp, 0xc
test eax, eax
je 0x430f63
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x47316f
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_4]
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x47316f
mov byte [esp + 0x61c], 6
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_4]
push ecx
lea edx, [esp + 0xfc]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x620], 7
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_5]
mov ecx, esi
mov byte [esp + 0x61c], bl
call fcn.004304f0
jmp 0x431009
xor eax, eax
mov byte [esp + 0xf8], 0
mov ecx, 0x7f
lea edi, [esp + 0xf9]
rep stosd dword es:[edi], eax
mov ecx, dword [0x48af30]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0xec]
push eax
push str.jfCacheMgr.exe
push ecx
lea edx, [esp + 0x104]
push str._s_s___s_
push edx
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0x14
xor eax, eax
mov ecx, 0x11
lea edi, [esp + 0x30]
rep stosd dword es:[edi], eax
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
lea edx, [esp + 0x34]
push edx
push eax
push eax
push eax
push eax
push eax
push eax
mov dword [esp + 0x44], eax
lea eax, [esp + 0x118]
push eax
push 0
mov dword [esp + 0x58], 0x44
call dword [0x472170]
mov eax, dword [esp + 0x1c]
test eax, eax
mov edi, dword [0x47216c]
je 0x430ffe
push eax
call edi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x431009
push eax
call edi
lea ecx, [esp + 0x78]
mov dword [esi + 0x18c8], 0
mov dword [esp + 0x60c], 0xffffffff
call fcn.0040d500
jmp case.default.0x430c65
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
mov ecx, dword [0x48af30]
push ecx
lea edx, [esp + 0x10]
push str._sKmFileTypeSetting.exe
push edx
mov dword [esp + 0x618], 8
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0xc
xor eax, eax
mov ecx, 0x11
lea edi, [esp + 0x30]
rep stosd dword es:[edi], eax
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
lea edx, [esp + 0x34]
push edx
push eax
push eax
push eax
push eax
push eax
push eax
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x54], 0x44
mov dword [esp + 0x48], eax
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::GetBuffer_1]
push eax
push 0
call dword [0x472170]
mov eax, dword [esp + 0x1c]
test eax, eax
mov esi, dword [0x47216c]
je 0x4310b5
push eax
call esi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4310c0
push eax
call esi
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
jmp case.default.0x430c65
lea eax, [esp + 0x10]
push eax
lea ecx, [esi + 0xb0c]
call fcn.0043b0c0
lea ecx, [esp + 0x10]
mov dword [esp + 0x60c], 9
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::IsEmpty]
test al, al
jne 0x431187
lea ecx, [esp + 0x3f8]
push ecx
lea edx, [esp + 0x4fc]
push edx
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call dword [sym.imp.MSVCR71.dll__splitpath]
add esp, 0x14
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x2f8]
push edx
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push 0x473d44
push ecx
mov byte [esp + 0x61c], 0xa
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0x10
push 5
push 0
push 0
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push str.open
push 0
call dword [0x472bd4]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
jmp case.default.0x430c65
mov eax, dword [esi + 0xfc8]
test eax, eax
je case.default.0x430c65
push eax
call dword [0x472da0]
test eax, eax
je case.default.0x430c65
push 1
mov ecx, esi
call fcn.0042baa0
mov ecx, dword [esp + 0x604]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x5fc]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046b58e
mov esp, ebp
pop ebp
ret 4