Function at 0x4424f0
Capabilities:
Accept command line arguments
Check if file exists
Create process on windows
Get file attributes
Identify system language via api
Query or enumerate registry value
Read .ini file
Resume thread
Set current directory
Set registry value
Terminate process

Disassembly:
cld
call sub.KERNEL32.DLL_GetUserDefaultUILanguage
mov cl, 8
cmp al, 0x22
je 0x442504
mov cl, 4
cmp al, 0x19
je 0x442504
mov cl, 0
mov byte [0x4520ec], cl
call sub.KERNEL32.DLL_GetCommandLineA
mov edx, eax
mov bl, byte [eax]
inc eax
test bl, bl
jne 0x442511
cmp dword [eax - 5], 0x656e7554
jne 0x44252f
cmp word [eax - 7], 0x2d20
jne 0x44252f
call fcn.00442b78
ret
mov ah, byte [edx]
inc edx
test ah, ah
je 0x442555
cmp ah, 0x22
je 0x44253d
mov ah, 0x20
mov al, byte [edx]
test al, al
je 0x442555
inc edx
cmp al, ah
jne 0x44253d
mov al, byte [edx]
test al, al
je 0x442555
cmp al, 0x20
jne 0x442555
inc edx
jmp 0x442548
mov al, byte [edx]
test al, al
jne 0x44255d
xor edx, edx
mov dword [0x452468], edx
push 0x45248c
call sub.KERNEL32.DLL_GetStartupInfoA
mov esi, 0x4521f4
push 0x104
push esi
push 0
call sub.KERNEL32.DLL_GetModuleFileNameA
mov edi, 0x452364
test eax, eax
mov al, 0xc
je 0x442958
xor edx, edx
xor ecx, ecx
mov al, byte [esi + ecx]
mov byte [edi + ecx], al
inc ecx
test al, al
je 0x4425a5
cmp al, 0x2e
jne 0x442592
mov edx, ecx
jmp 0x442592
test edx, edx
je 0x442586
mov dword [esi + edx], 0x696e69
mov dword [edi + edx], 0x6c6c64
xchg byte [0x4524d1], al
test al, al
je 0x44260c
push esi
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0xffffffff
jne 0x44260c
mov edx, dword [0x4520ec]
push 0x24
push dword [edx + 0x443c40]
push dword [edx + 0x443c4c]
push 0
call sub.USER32.DLL_MessageBoxA
cmp eax, 6
jne 0x44260c
push 0
push 0
call sub.OLE32.DLL_CoInitializeEx
test eax, eax
jne 0x44260c
push 0
call fcn.00442a08
push 1
call fcn.00442a08
call sub.OLE32.DLL_CoUninitialize
cmp byte [0x4524d0], 1
jl 0x442636
push esi
push 0x103
push 0x4520f0
push 0
push 0x443cb5
push 0x443ee4
call sub.KERNEL32.DLL_GetPrivateProfileStringA
cmp eax, 8
jae 0x44266d
mov eax, dword [0x4520ec]
mov eax, dword [eax + 0x443c58]
mov dword [0x452348], eax
push 0x452318
call sub.COMDLG32.DLL_GetOpenFileNameA
test eax, eax
je 0x442936
push esi
push 0x4520f0
push 0x443cb5
push 0x443ee4
call sub.KERNEL32.DLL_WritePrivateProfileStringA
push esi
push 0
push 0x443f71
push 0x443ee4
call sub.KERNEL32.DLL_GetPrivateProfileIntA
mov dword [0x452480], eax
cmp eax, 0xc8
ja 0x44271b
cmp eax, 1
jb 0x44271b
push 0x45247c
push 0x20003
push 0
push 0x443f3b
push reloc.WS2_32.DLL_accept
call sub.ADVAPI32.DLL_RegOpenKeyExA
test eax, eax
jne 0x44271b
push ecx
mov ecx, esp
mov eax, 0x452484
mov dword [eax], 4
push eax
push 0x452488
push ecx
push 0
push 0x443f6e
push dword [0x45247c]
call sub.ADVAPI32.DLL_RegQueryValueExA
pop ecx
test eax, eax
jne 0x4426f5
cmp ecx, 4
jne 0x4426f5
mov eax, dword [0x452480]
cmp eax, dword [0x452488]
je 0x442710
push 4
push 0x452480
push 4
push 0
push 0x443f6e
push dword [0x45247c]
call sub.ADVAPI32.DLL_RegSetValueExA
push dword [0x45247c]
call sub.ADVAPI32.DLL_RegCloseKey
mov edi, 0x443ee7
push esi
push 0xfe
push 0x443eed
push edi
call sub.KERNEL32.DLL_GetPrivateProfileIntA
mov dword [0x45246c], eax
push esi
push 0xfe
push 0x443ef1
push edi
call sub.KERNEL32.DLL_GetPrivateProfileIntA
mov dword [0x452470], eax
push esi
push 0xa
push 0x443ef5
push edi
call sub.KERNEL32.DLL_GetPrivateProfileIntA
mov dword [0x452474], eax
push esi
push 0
push 0x443efa
push edi
call sub.KERNEL32.DLL_GetPrivateProfileIntA
mov dword [0x452478], eax
push esi
push 0
push 0x443ee4
push 0x443ee4
call sub.KERNEL32.DLL_GetPrivateProfileIntA
mov ecx, 0x443f3a
mov edx, ecx
mov edi, ecx
test al, 1
je 0x442796
mov ecx, 0x443f29
test al, 2
je 0x44279f
mov edx, 0x443f32
test al, 4
je 0x4427a8
mov edi, 0x443f21
mov eax, dword [0x452468]
test eax, eax
je 0x4427cf
push eax
push edi
push edx
push ecx
push 0x4520f0
push 0x443f09
push 0x104
push esi
call sub.SHLWAPI.DLL_wnsprintfA
add esp, 0x20
jmp 0x4427ea
push edi
push edx
push ecx
push 0x4520f0
push 0x443efe
push 0x104
push esi
call sub.SHLWAPI.DLL_wnsprintfA
add esp, 0x1c
push 0x45247c
push 0x45248c
push 0
push 0
push 0x24
push 0
push 0
push 0
push esi
push 0
call sub.KERNEL32.DLL_CreateProcessA
test eax, eax
jne 0x44282e
call sub.KERNEL32.DLL_GetLastError
cmp eax, 2
je 0x44281b
cmp eax, 3
jne 0x442827
dec byte [0x4524d0]
jge 0x44256d
mov al, 0
jmp 0x442958
mov edi, 0x4520f0
xor edx, edx
mov al, byte [edi]
inc edi
test al, al
je 0x442844
cmp al, 0x5c
jne 0x442835
mov edx, edi
jmp 0x442835
test edx, edx
mov cl, 1
je 0x442943
mov byte [edx - 1], 0
push 0x4520f0
call sub.KERNEL32.DLL_SetCurrentDirectoryA
test eax, eax
mov cl, 2
je 0x442943
push dword [0x452478]
push dword [0x452474]
push dword [0x452470]
push dword [0x45246c]
push dword [0x45247c]
push 0
call fcn.00408670
add esp, 0x18
test eax, eax
mov cl, 5
je 0x442943
push 0x1a
push 0x4013cb
call fcn.0044298f
mov al, 0x24
jb 0x442948
mov esi, 0x4521f4
mov edi, 0x4440a8
mov ecx, 0x1a
repe cmpsb byte [esi], byte es:[edi]
jne 0x442948
push 0x104
push 0x452364
push 0x400ef0
call fcn.004429b1
mov cl, 6
jb 0x442943
push 4
push 0x443c74
push 0x4013cc
call fcn.004429b1
mov cl, 7
jb 0x442943
mov esi, 0x443c64
mov edi, dword [esi]
test edi, edi
je 0x442921
push 1
push edi
call fcn.0044298f
jb 0x44291c
mov al, byte [esi + 4]
cmp al, byte [0x4521f4]
jne 0x44291c
lea eax, [esi + 5]
push 1
push eax
push edi
call fcn.004429b1
add esi, 6
jmp 0x4428f5
push dword [0x452480]
call sub.KERNEL32.DLL_ResumeThread
push 1
call fcn.00408670
add esp, 4
push 2
call fcn.00408670
add esp, 4
xor eax, eax
ret
mov al, 0x18
movzx ecx, cl
push eax
push ecx
push esp
push dword [0x45247c]
call sub.KERNEL32.DLL_TerminateProcess
pop ecx
pop eax
movzx eax, al
mov esi, 0x4521f4
mov edi, dword [0x4520ec]
mov eax, dword [edi + eax + 0x443bf8]
push ecx
push eax
push 0x104
push esi
call sub.SHLWAPI.DLL_wnsprintfA
add esp, 0x10
push 0x10
push dword [edi + 0x443c28]
push esi
push 0
call sub.USER32.DLL_MessageBoxA
jmp 0x442936