Function at 0x442b10
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 0x442b24
mov cl, 4
cmp al, 0x19
je 0x442b24
mov cl, 0
mov byte [section..data], cl
call sub.KERNEL32.dll_GetCommandLineA
mov edx, eax
mov bl, byte [eax]
inc eax
test bl, bl
jne 0x442b31
cmp dword [eax - 5], 0x656e7554
jne 0x442b4f
cmp word [eax - 7], 0x2d20
jne 0x442b4f
call fcn.00443198
ret
mov ah, byte [edx]
inc edx
test ah, ah
je 0x442b75
cmp ah, 0x22
je 0x442b5d
mov ah, 0x20
mov al, byte [edx]
test al, al
je 0x442b75
inc edx
cmp al, ah
jne 0x442b5d
mov al, byte [edx]
test al, al
je 0x442b75
cmp al, 0x20
jne 0x442b75
inc edx
jmp 0x442b68
mov al, byte [edx]
test al, al
jne 0x442b7d
xor edx, edx
mov dword [0x45337c], edx
push 0x4533a0
call sub.KERNEL32.dll_GetStartupInfoA
mov esi, 0x453108
push 0x104
push esi
push 0
call sub.KERNEL32.dll_GetModuleFileNameA
mov edi, 0x453278
test eax, eax
mov al, 0xc
je 0x442f78
xor edx, edx
xor ecx, ecx
mov al, byte [esi + ecx]
mov byte [edi + ecx], al
inc ecx
test al, al
je 0x442bc5
cmp al, 0x2e
jne 0x442bb2
mov edx, ecx
jmp 0x442bb2
test edx, edx
je 0x442ba6
mov dword [esi + edx], 0x696e69
mov dword [edi + edx], 0x6c6c64
xchg byte [0x4533e5], al
test al, al
je 0x442c2c
push esi
call sub.KERNEL32.dll_GetFileAttributesA
cmp eax, 0xffffffff
jne 0x442c2c
mov edx, dword [section..data]
push 0x24
push dword [edx + 0x445048]
push dword [edx + 0x445054]
push 0
call sub.USER32.dll_MessageBoxA
cmp eax, 6
jne 0x442c2c
push 0
push 0
call sub.ole32.dll_CoInitializeEx
test eax, eax
jne 0x442c2c
push 0
call fcn.00443028
push 1
call fcn.00443028
call sub.ole32.dll_CoUninitialize
cmp byte [0x4533e4], 1
jl 0x442c56
push esi
push 0x103
push 0x453004
push 0
push str.War3.exe
push 0x4452ec
call sub.KERNEL32.dll_GetPrivateProfileStringA
cmp eax, 8
jae 0x442c8d
mov eax, dword [section..data]
mov eax, dword [eax + 0x445060]
mov dword [0x45325c], eax
push 0x45322c
call sub.comdlg32.dll_GetOpenFileNameA
test eax, eax
je 0x442f56
push esi
push 0x453004
push str.War3.exe
push 0x4452ec
call sub.KERNEL32.dll_WritePrivateProfileStringA
push esi
push 0
push 0x445379
push 0x4452ec
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov dword [0x453394], eax
cmp eax, 0xc8
ja 0x442d3b
cmp eax, 1
jb 0x442d3b
push 0x453390
push 0x20003
push 0
push str.SOFTWAREBlizzard_EntertainmentWarcraft_IIIVideo
push reloc.WS2_32.dll_accept
call sub.ADVAPI32.dll_RegOpenKeyExA
test eax, eax
jne 0x442d3b
push ecx
mov ecx, esp
mov eax, 0x453398
mov dword [eax], 4
push eax
push 0x45339c
push ecx
push 0
push str.maxfps
push dword [0x453390]
call sub.ADVAPI32.dll_RegQueryValueExA
pop ecx
test eax, eax
jne 0x442d15
cmp ecx, 4
jne 0x442d15
mov eax, dword [0x453394]
cmp eax, dword [0x45339c]
je 0x442d30
push 4
push 0x453394
push 4
push 0
push str.maxfps
push dword [0x453390]
call sub.ADVAPI32.dll_RegSetValueExA
push dword [0x453390]
call sub.ADVAPI32.dll_RegCloseKey
mov edi, str.voice
push esi
push 0xfe
push 0x4452f5
push edi
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov dword [0x453380], eax
push esi
push 0xfe
push 0x4452f9
push edi
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov dword [0x453384], eax
push esi
push 0xa
push str.opus
push edi
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov dword [0x453388], eax
push esi
push 0
push 0x445302
push edi
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov dword [0x45338c], eax
push esi
push 0
push 0x4452ec
push 0x4452ec
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov ecx, 0x445342
mov edx, ecx
mov edi, ecx
test al, 1
je 0x442db6
mov ecx, str.__window
test al, 2
je 0x442dbf
mov edx, str.__opengl
test al, 4
je 0x442dc8
mov edi, str.__swtnl
mov eax, dword [0x45337c]
test eax, eax
je 0x442def
push eax
push edi
push edx
push ecx
push 0x453004
push str.__s__s_s_s__loadfile__s
push 0x104
push esi
call sub.SHLWAPI.dll_wnsprintfA
add esp, 0x20
jmp 0x442e0a
push edi
push edx
push ecx
push 0x453004
push str.__s__s_s_s
push 0x104
push esi
call sub.SHLWAPI.dll_wnsprintfA
add esp, 0x1c
push 0x453390
push 0x4533a0
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 0x442e4e
call sub.KERNEL32.dll_GetLastError
cmp eax, 2
je 0x442e3b
cmp eax, 3
jne 0x442e47
dec byte [0x4533e4]
jge 0x442b8d
mov al, 0
jmp 0x442f78
mov edi, 0x453004
xor edx, edx
mov al, byte [edi]
inc edi
test al, al
je 0x442e64
cmp al, 0x5c
jne 0x442e55
mov edx, edi
jmp 0x442e55
test edx, edx
mov cl, 1
je 0x442f63
mov byte [edx - 1], 0
push 0x453004
call sub.KERNEL32.dll_SetCurrentDirectoryA
test eax, eax
mov cl, 2
je 0x442f63
push dword [0x45338c]
push dword [0x453388]
push dword [0x453384]
push dword [0x453380]
push dword [0x453390]
push 0
call fcn.00408a70
add esp, 0x18
test eax, eax
mov cl, 5
je 0x442f63
push 0x1a
push 0x4013cb
call fcn.00442faf
mov al, 0x24
jb 0x442f68
mov esi, 0x453108
mov edi, 0x4454b0
mov ecx, 0x1a
repe cmpsb byte [esi], byte es:[edi]
jne 0x442f68
push 0x104
push 0x453278
push 0x400ef0
call fcn.00442fd1
mov cl, 6
jb 0x442f63
push 4
push 0x44507c
push 0x4013cc
call fcn.00442fd1
mov cl, 7
jb 0x442f63
mov esi, 0x44506c
mov edi, dword [esi]
test edi, edi
je 0x442f41
push 1
push edi
call fcn.00442faf
jb 0x442f3c
mov al, byte [esi + 4]
cmp al, byte [0x453108]
jne 0x442f3c
lea eax, [esi + 5]
push 1
push eax
push edi
call fcn.00442fd1
add esi, 6
jmp 0x442f15
push dword [0x453394]
call sub.KERNEL32.dll_ResumeThread
push 1
call fcn.00408a70
add esp, 4
push 2
call fcn.00408a70
add esp, 4
xor eax, eax
ret
mov al, 0x18
movzx ecx, cl
push eax
push ecx
push esp
push dword [0x453390]
call sub.KERNEL32.dll_TerminateProcess
pop ecx
pop eax
movzx eax, al
mov esi, 0x453108
mov edi, dword [section..data]
mov eax, dword [edi + eax + section..rdata]
push ecx
push eax
push 0x104
push esi
call sub.SHLWAPI.dll_wnsprintfA
add esp, 0x10
push 0x10
push dword [edi + 0x445030]
push esi
push 0
call sub.USER32.dll_MessageBoxA
jmp 0x442f56