Function at 0x43d070
Capabilities:
Create process on windows
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7cea58
push 0x78e0dc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
mov eax, 0x104c
call fcn.0078c8d0
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
push 0x100
lea eax, [ebp - 0x328]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
xor esi, esi
push esi
push esi
lea edx, [ebp - 0x428]
push edx
lea eax, [ebp - 0x42c]
push eax
lea ecx, [ebp - 0x328]
push ecx
call fcn.0078d961
push esi
push esi
lea edx, [ebp - 0x428]
push edx
lea eax, [ebp - 0x42c]
push eax
lea ecx, [ebp - 0x228]
push ecx
call fcn.0078d8d0
add esp, 0x28
lea edx, [ebp - 0x228]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x120]
push ecx
push 0x100
push esi
push str.always.dat
push str.data
call dword [sym.imp.KERNEL32.dll_SearchPathA]
test eax, eax
jne 0x43d14a
push esi
push str.Invalid_working_folder
push str.Set_working_folder_and_try_again...
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x81dff8
call fcn.00434c80
test al, al
jne 0x43d4df
mov al, byte [0x81e33c]
test al, al
jne 0x43d4df
push 1
push str.Render
push esi
push str.SoftwareWestwoodRenegade
call fcn.0043a1d0
add esp, 0xc
push eax
lea ecx, [ebp - 0x770]
call fcn.005dbcb0
mov al, byte [ebp - 0x76c]
test al, al
je 0x43d358
push esi
push str.DriverVersionCheckDisabled
lea ecx, [ebp - 0x770]
call fcn.005dbd50
cmp eax, 0x57
jge 0x43d358
call fcn.00575bd0
push str.D3D8.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x81ede8], eax
cmp eax, esi
je 0x43d358
push str.Direct3DCreate8
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x81ede4], eax
cmp eax, esi
je 0x43d34b
push 0x78
call eax
mov ebx, eax
cmp ebx, esi
je 0x43d34b
mov dword [ebp - 0x780], esi
mov byte [ebp - 0x534], 0
mov ecx, 0x3f
xor eax, eax
lea edi, [ebp - 0x533]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push esi
push 0x100
lea eax, [ebp - 0x534]
push eax
push str.RenderDeviceName
lea ecx, [ebp - 0x770]
call fcn.005dc070
mov ecx, dword [ebx]
push ebx
call dword [ecx + 0x10]
mov dword [ebp - 0x788], eax
mov dword [ebp - 0x778], esi
test eax, eax
jle 0x43d2f9
mov ecx, 0x10b
xor eax, eax
lea edi, [ebp - 0x102c]
rep stosd dword es:[edi], eax
mov edx, dword [ebx]
lea eax, [ebp - 0x102c]
push eax
push 2
push esi
push ebx
call dword [edx + 0x14]
test eax, eax
jne 0x43d2cd
push 1
lea ecx, [ebp - 0xe2c]
push ecx
lea ecx, [ebp - 0x1030]
call fcn.004026a0
lea esi, [ebp - 0x534]
mov eax, dword [ebp - 0x1030]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x43d2b3
test cl, cl
je 0x43d2af
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x43d2b3
add eax, 2
add esi, 2
test cl, cl
jne 0x43d28f
xor eax, eax
jmp 0x43d2b8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x43d2e2
lea ecx, [ebp - 0x1030]
call fcn.005dd410
mov esi, dword [ebp - 0x778]
inc esi
mov dword [ebp - 0x778], esi
cmp esi, dword [ebp - 0x788]
jl 0x43d24c
jmp 0x43d2f9
mov eax, dword [ebp - 0x778]
mov dword [ebp - 0x780], eax
lea ecx, [ebp - 0x1030]
call fcn.005dd410
mov ecx, dword [ebx]
lea edx, [ebp - 0x608]
push edx
push 1
mov esi, dword [ebp - 0x780]
push esi
push ebx
call dword [ecx + 0x34]
test eax, eax
jge 0x43d322
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ecx, dword [0x81ede8]
push ecx
jmp 0x43d352
mov ecx, 0x10b
xor eax, eax
lea edi, [ebp - 0xbb4]
rep stosd dword es:[edi], eax
mov edx, dword [ebx]
lea eax, [ebp - 0xbb4]
push eax
push 2
push esi
push ebx
call dword [edx + 0x14]
test eax, eax
jge 0x43d380
mov ecx, dword [ebx]
push ebx
call dword [ecx + 8]
mov edx, dword [0x81ede8]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea ecx, [ebp - 0x770]
call fcn.005dbd30
mov al, 1
test al, al
jne 0x43d4c1
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0xbb4]
push eax
push 0
lea ecx, [ebp - 0x608]
push ecx
push ebx
lea ecx, [ebp - 0x760]
call fcn.005730f0
mov esi, dword [ebp - 0x634]
mov edx, dword [ebx]
push ebx
call dword [edx + 8]
mov eax, dword [0x81ede8]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp esi, 3
je 0x43d3d8
push 0x57
push str.DriverVersionCheckDisabled
lea ecx, [ebp - 0x770]
call fcn.005dbdb0
lea ecx, [ebp - 0x760]
call fcn.0043d710
jmp 0x43d358
push 0
push str.wwconfig.exe__driverversion
lea ecx, [ebp - 0x434]
call fcn.004026a0
mov ecx, 0x11
xor eax, eax
lea edi, [ebp - 0xbfc]
rep stosd dword es:[edi], eax
mov dword [ebp - 0xbfc], 0x44
lea ecx, [ebp - 0x618]
push ecx
lea edx, [ebp - 0xbfc]
push edx
push eax
push eax
push eax
push eax
push eax
push eax
mov eax, dword [ebp - 0x434]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x43d479
mov dword [ebp - 0x77c], 0x103
lea ecx, [ebp - 0x77c]
push ecx
mov edx, dword [ebp - 0x618]
push edx
mov edi, dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
call edi
test eax, eax
je 0x43d479
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x64
call esi
mov eax, dword [ebp - 0x77c]
cmp eax, 0x103
jne 0x43d494
lea eax, [ebp - 0x77c]
push eax
mov ecx, dword [ebp - 0x618]
push ecx
call edi
test eax, eax
jne 0x43d454
lea ecx, [ebp - 0x434]
call fcn.005dd410
lea ecx, [ebp - 0x760]
call fcn.0043d710
jmp 0x43d358
test eax, eax
sete bl
lea ecx, [ebp - 0x434]
call fcn.005dd410
lea ecx, [ebp - 0x760]
call fcn.0043d710
lea ecx, [ebp - 0x770]
call fcn.005dbd30
mov al, bl
jmp 0x43d365
call fcn.0043d590
test al, al
jne 0x43d4dd
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor esi, esi
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0043d920
add esp, 8
test eax, eax
jne 0x43d504
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 1
push str.Main_Thread
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.005e5dd0
mov dword [ebp - 0x1c], esi
push 0x438b30
call fcn.005e62a0
push fcn.00435030
call fcn.005e62b0
add esp, 0x14
mov dword [ebp - 4], esi
call fcn.0043ba30
mov dword [ebp - 0x1c], eax
jmp 0x43d553
mov dword [ebp - 4], 0xffffffff
push str.Main_Thread
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.005e5f00
add esp, 8
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret