Function at 0x4019e0
Capabilities:
Check if file exists
Create process on windows
Delete file
Get file attributes
Print debug messages
Resolve function by parsing pe exports
Resume thread
Terminate process
Write and execute a file
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x13c
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x50], eax
mov eax, dword [0x40f840]
test eax, eax
je 0x401fc0
mov dword [esp + 8], str.VanillaFixes:_Using_SetProcessDpiAwarenessContext_to_set_DPI_scaling_mode
mov dword [esp + 4], 0x200
mov dword [esp], 0x40f440
call fcn.004014e0
mov ebp, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov dword [esp], 0x40f440
call ebp
sub esp, 4
mov dword [esp], 0xfffffffc
call dword [0x40f840]
sub esp, 4
test eax, eax
je 0x402040
pushfd
pushfd
pop eax
mov edx, eax
xor eax, 0x200000
push eax
popfd
pushfd
pop eax
popfd
xor eax, edx
test eax, 0x200000
je 0x401f50
mov eax, 0x80000000
cpuid
cmp eax, 0x80000006
jbe 0x401f50
mov eax, 0x80000007
cpuid
and dh, 1
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ecx
je 0x401f50
mov dword [esp], 0x208
call sub.msvcrt.dll_malloc
mov dword [esp + 8], 0x104
mov dword [esp], 0
mov dword [esp + 0x40], eax
mov dword [esp + 4], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [esp + 0x64], eax
call eax
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0xc
mov dword [esp + 0x60], eax
call eax
cmp eax, 0x7a
je 0x402540
mov esi, dword [esp + 0x40]
mov eax, dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov dword [esp], esi
mov dword [esp + 0x68], eax
call eax
sub esp, 4
mov dword [esp], 0x208
call sub.msvcrt.dll_malloc
mov dword [esp + 4], esi
mov dword [esp + 8], str.WoW.exe
mov dword [esp + 0x5c], eax
mov dword [esp], eax
mov edi, eax
mov eax, dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov dword [esp + 0x44], eax
call eax
mov eax, dword [sym.imp.msvcrt.dll___wargv]
sub esp, 0xc
mov esi, dword [eax]
mov eax, dword [sym.imp.msvcrt.dll___argc]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
cmp eax, 1
jle 0x402399
mov dword [esp + 0x54], edi
mov dword [esp + 0x38], 0
mov edi, dword [sym.imp.SHLWAPI.dll_StrStrIW]
mov dword [esp + 0x34], 0
mov dword [esp + 0x3c], 0
mov ebx, 1
mov dword [esp + 0x58], ebp
jmp 0x401bad
mov dword [esp + 4], str..exe
mov eax, dword [esi + ebx*4]
mov dword [esp], eax
call edi
sub esp, 8
test eax, eax
je 0x401ee0
mov dword [esp + 4], str.VanillaFixes.exe
mov eax, dword [esi + ebx*4]
mov dword [esp], eax
call edi
sub esp, 8
test eax, eax
je 0x401fb0
inc ebx
cmp dword [esp + 0x30], ebx
je 0x401bd3
mov ebp, dword [esi + ebx*4]
mov dword [esp + 4], str._selftest
mov dword [esp], ebp
call edi
sub esp, 8
cmp ebp, eax
jne 0x401b70
mov dword [esp + 0x38], 1
inc ebx
cmp dword [esp + 0x30], ebx
jne 0x401bad
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x58]
test eax, eax
jne 0x4023e0
mov dword [esp], 0x208
call sub.msvcrt.dll_malloc
mov dword [esp + 8], str.VfPatcher.dll
mov edi, dword [esp + 0x40]
mov dword [esp + 0x58], eax
mov dword [esp], eax
mov esi, dword [esp + 0x44]
mov dword [esp + 4], edi
call esi
sub esp, 0xc
mov dword [esp], 0x208
call sub.msvcrt.dll_malloc
mov dword [esp + 8], str.dlls.txt
mov dword [esp + 4], edi
mov dword [esp + 0x4c], eax
mov dword [esp], eax
call esi
sub esp, 0xc
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [esp + 0x38], eax
call eax
sub esp, 4
cmp eax, 0xffffffff
je 0x40254d
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
call eax
sub esp, 4
cmp eax, 0xffffffff
je 0x4028ce
mov dword [esp + 4], 2
mov dword [esp], 0x104
call sub.msvcrt.dll_calloc
mov dword [esp + 8], str._ls.cache
mov dword [esp + 4], 0x104
mov dword [esp], eax
mov dword [esp + 0x64], eax
mov edi, eax
mov esi, dword [esp + 0x4c]
mov dword [esp + 0xc], esi
call fcn.004014e0
mov dword [esp], esi
mov eax, dword [esp + 0x38]
call eax
sub esp, 4
cmp eax, 0xffffffff
jne 0x4020a0
mov dword [esp], edi
call sub.msvcrt.dll_free
lea eax, [esp + 0xa8]
mov dword [esp + 0x68], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x30], 0
lea edi, [esp + 0xac]
xor eax, eax
mov ecx, 0x10
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
rep stosd dword es:[edi], eax
movzx eax, word [esp + 0x50]
mov dword [esp + 4], 2
mov dword [esp], 0x104
mov dword [esp + 0xa8], 0x44
mov dword [esp + 0xd4], 1
mov word [esp + 0xd8], ax
call sub.msvcrt.dll_calloc
mov esi, eax
mov eax, dword [esp + 0x54]
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.msvcrt.dll_wcscpy
mov dword [esp], esi
mov eax, dword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
mov dword [esp + 0x54], eax
call eax
sub esp, 4
mov dword [esp], esi
call sub.msvcrt.dll_wcslen
mov ebp, dword [esp + 0x34]
lea edi, [eax + 1]
test ebp, ebp
jle 0x402c94
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x3c]
xor ebx, ebx
lea esi, [esi]
lea esi, [esi]
mov eax, dword [esi + ebx*4]
inc ebx
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
lea edi, [edi + eax + 1]
cmp ebx, ebp
jne 0x401da0
mov esi, dword [esp + 0x50]
cmp edi, 0x104
jg 0x4028a2
mov dword [esp], esi
call sub.msvcrt.dll_wcslen
lea eax, [esi + eax*2]
mov ebp, dword [esp + 0x3c]
xor ebx, ebx
mov dword [esp + 0x3c], esi
lea esi, [esi]
mov edi, dword [ebp + ebx*4]
lea esi, [eax + 2]
mov word [eax], 0x20
inc ebx
mov dword [esp], esi
mov dword [esp + 4], edi
call sub.msvcrt.dll_wcscpy
mov dword [esp], edi
call sub.msvcrt.dll_wcslen
mov ecx, dword [esp + 0x34]
lea eax, [esi + eax*2]
cmp ebx, ecx
jne 0x401de0
mov esi, dword [esp + 0x3c]
mov word [eax], 0
lea eax, [esp + 0x88]
mov ebp, dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x404
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 0
mov eax, dword [esp + 0x68]
mov dword [esp + 0x20], eax
call ebp
sub esp, 0x28
test eax, eax
je 0x40255a
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x58]
call fcn.00401510
mov esi, dword [esp + 0x30]
mov edi, eax
test esi, esi
je 0x402608
jle 0x402de8
mov edi, dword [esp + 0x48]
xor ebx, ebx
jmp 0x401ebe
mov eax, 1
inc ebx
cmp ebx, esi
je 0x4028db
test eax, eax
jne 0x401eb0
mov eax, dword [edi + ebx*4]
mov edx, dword [esp + 0x88]
call fcn.00401510
test eax, eax
setne al
movzx eax, al
jmp 0x401eb5
inc dword [esp + 0x34]
mov ecx, dword [esi + ebx*4]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x4c], ecx
lea edx, [eax*4]
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], edx
mov dword [esp + 0x48], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov dword [esp], 0x208
mov dword [esp + 0x3c], eax
call sub.msvcrt.dll_malloc
mov ecx, dword [esp + 0x4c]
mov ebp, eax
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_wcscpy
mov dword [esp], ebp
call dword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
sub esp, 4
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
mov dword [eax + edx - 4], ebp
jmp 0x401ba6
mov dword [esp + 8], str.Your_processor_does_not_support_the__Invariant_TSC__feature._r_n_r_nVanillaFixes_can_only_work_reliably_on_modern__2007__Intel_and_AMD_processors.
mov dword [esp + 4], 0x200
mov dword [esp], 0x40fc60
call fcn.004014e0
mov dword [esp + 0x15c], 0x10
mov dword [esp + 0x158], str.VanillaFixes
mov dword [esp + 0x154], 0x40fc60
mov dword [esp + 0x150], 0
add esp, 0x13c
pop ebx
pop esi
pop edi
pop ebp
jmp dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [esi + ebx*4]
mov dword [esp + 0x54], eax
jmp 0x401ba6
mov dword [esp], str.user32
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
sub esp, 4
mov dword [esp], str.user32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
sub esp, 4
mov dword [esp + 4], str.SetProcessDpiAwarenessContext
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 8
mov dword [0x40f840], eax
test eax, eax
jne 0x401a02
call dword [sym.imp.USER32.dll_SetProcessDPIAware]
mov dword [esp + 8], str.VanillaFixes:_Using_SetProcessDPIAware_to_set_DPI_scaling_mode
mov dword [esp + 4], 0x200
mov dword [esp], 0x40f440
call fcn.004014e0
mov ebp, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov dword [esp], 0x40f440
call ebp
sub esp, 4
jmp 0x401a48
mov dword [esp + 8], str.VanillaFixes:_DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2_not_supported
mov dword [esp + 4], 0x200
mov dword [esp], 0x40f440
call fcn.004014e0
mov dword [esp], 0x40f440
call ebp
sub esp, 4
call dword [sym.imp.USER32.dll_SetProcessDPIAware]
mov dword [esp + 8], str.VanillaFixes:_Using_SetProcessDPIAware_to_set_DPI_scaling_mode
mov dword [esp + 4], 0x200
mov dword [esp], 0x40f440
call fcn.004014e0
mov dword [esp], 0x40f440
call ebp
sub esp, 4
jmp 0x401a48
lea eax, [esp + 0xa8]
mov ecx, 1
mov dword [esp + 0xa8], 0
mov dword [esp + 0xec], 0
mov edx, eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x4c]
call fcn.004016f0
lea edx, [esp + 0xec]
xor ecx, ecx
mov ebp, eax
mov eax, dword [esp + 0x64]
call fcn.004016f0
mov esi, eax
test ebp, ebp
je 0x402c61
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x5c], eax
test eax, eax
jle 0x402d70
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], 0
xor edi, edi
mov dword [esp + 0x6c], esi
lea esi, [esi]
nop
mov esi, dword [ebp + edi*4]
mov dword [esp + 4], 2
mov dword [esp], 0x104
call sub.msvcrt.dll_calloc
mov ebx, eax
mov dword [esp], esi
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
sub esp, 4
test eax, eax
je 0x4023c0
mov eax, dword [esp + 0x40]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
call eax
sub esp, 0xc
mov eax, ebx
lea ecx, [ebx + 0x208]
jmp 0x402182
cmp dx, 0x2f
jne 0x40217b
mov word [eax], 0x5c
add eax, 2
cmp eax, ecx
je 0x40218a
movzx edx, word [eax]
test dx, dx
jne 0x402170
mov dword [esp + 4], 2
mov dword [esp], 0x104
call sub.msvcrt.dll_calloc
mov dword [esp + 4], ebx
mov esi, eax
mov dword [esp], eax
call dword [sym.imp.SHLWAPI.dll_PathCanonicalizeW]
sub esp, 8
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov eax, dword [ebp + edi*4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], esi
mov eax, dword [esp + 0x38]
call eax
sub esp, 4
cmp eax, 0xffffffff
je 0x4021dd
test al, 0x10
je 0x402510
mov dword [esp], esi
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x5c]
inc edi
cmp edi, eax
jne 0x402120
mov esi, dword [esp + 0x6c]
mov dword [esp], ebp
call sub.msvcrt.dll_free
test esi, esi
je 0x402b29
mov ebx, dword [esp + 0xec]
mov eax, dword [esp + 0x30]
cmp ebx, eax
je 0x402cc9
mov ebp, 1
test ebx, ebx
jle 0x402241
mov edi, esi
lea ebx, [esi + ebx*4]
lea esi, [esi]
nop
mov eax, dword [edi]
add edi, 4
mov dword [esp], eax
call sub.msvcrt.dll_free
cmp edi, ebx
jne 0x402230
mov dword [esp], esi
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x30]
test eax, eax
je 0x401cdc
test ebp, ebp
je 0x401cdc
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x402b7b
mov edi, dword [esp + 0x48]
xor esi, esi
lea ecx, [eax - 1]
mov ebx, 1
mov ebp, esi
mov dword [esp + 0x5c], ecx
mov esi, eax
lea esi, [esi]
nop
mov eax, dword [edi + ebp*4]
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
xor ecx, ecx
cmp dword [esp + 0x5c], ebp
setg cl
inc ebp
lea eax, [eax + ecx*2]
add ebx, eax
cmp ebp, esi
jne 0x402290
mov dword [esp], ebx
mov dword [esp + 4], 2
xor esi, esi
call sub.msvcrt.dll_calloc
mov ecx, dword [esp + 0x5c]
mov edi, dword [sym.imp.SHLWAPI.dll_StrStrIW]
mov dword [esp + 0x64], eax
mov ebx, eax
test ecx, ecx
jle 0x402364
lea esi, [esi]
nop
mov eax, dword [esp + 0x48]
mov ebp, dword [eax + esi*4]
mov eax, dword [esp + 0x40]
mov dword [esp], ebp
mov dword [esp + 4], eax
call edi
sub esp, 8
cmp ebp, eax
je 0x402c4c
mov dword [esp], ebx
mov dword [esp + 4], ebp
inc esi
call sub.msvcrt.dll_wcscpy
mov dword [esp], ebp
call sub.msvcrt.dll_wcslen
lea ebx, [ebx + eax*2]
mov dword [ebx], 0xa000d
add ebx, 4
cmp dword [esp + 0x5c], esi
jg 0x4022e0
mov eax, dword [esp + 0x30]
cmp esi, eax
jl 0x402364
jmp 0x402b93
mov dword [esp], ebx
mov dword [esp + 4], ebp
inc esi
call sub.msvcrt.dll_wcscpy
mov dword [esp], ebp
call sub.msvcrt.dll_wcslen
lea ebx, [ebx + eax*2]
mov eax, dword [esp + 0x30]
cmp esi, eax
jge 0x402b93
mov eax, dword [esp + 0x48]
mov ebp, dword [eax + esi*4]
mov eax, dword [esp + 0x40]
mov dword [esp], ebp
mov dword [esp + 4], eax
call edi
sub esp, 8
cmp eax, ebp
jne 0x402340
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
mov edx, dword [esp + 0x5c]
lea ebp, [edx + eax*2 + 2]
jmp 0x402340
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x34], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x54], eax
jmp 0x401be3
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_wcscpy
jmp 0x402166
mov dword [esp], 0x208
call sub.msvcrt.dll_malloc
mov dword [esp + 8], 0x104
mov dword [esp], 0
mov dword [esp + 4], eax
mov ebx, eax
mov eax, dword [esp + 0x64]
call eax
sub esp, 0xc
mov eax, dword [esp + 0x60]
call eax
cmp eax, 0x7a
je 0x402c0a
mov dword [esp], ebx
mov eax, dword [esp + 0x68]
call eax
sub esp, 4
mov dword [esp], 0x208
call sub.msvcrt.dll_malloc
mov dword [esp + 4], ebx
mov dword [esp + 8], str.d3d9.dll
mov esi, eax
mov dword [esp], eax
mov eax, dword [esp + 0x44]
call eax
sub esp, 0xc
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x402c85
mov dword [esp + 4], str.Direct3DCreate9
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 8
test eax, eax
je 0x402d49
mov dword [esp], 0x20
call eax
sub esp, 4
mov edi, eax
test eax, eax
je 0x402d58
mov eax, dword [eax]
mov dword [esp], edi
call dword [eax + 0x10]
mov esi, eax
mov eax, dword [edi]
sub esp, 4
mov dword [esp], edi
call dword [eax + 8]
sub esp, 4
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, str.Success
mov ecx, str.No_adapters
sub esp, 4
cmp esi, 1
sbb edi, edi
and edi, 0x1006
test esi, esi
cmove eax, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.VanillaFixes:_Self_test_result:__ls
mov dword [esp + 4], 0x200
mov dword [esp], 0x40f860
call fcn.004014e0
mov dword [esp], 0x40f860
call ebp
sub esp, 4
add esp, 0x13c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
lea ebx, [eax*4]
mov eax, dword [esp + 0x48]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov dword [esp + 0x48], eax
mov dword [eax + ebx - 4], esi
jmp 0x4021e5
mov dword [esp + 8], str.GetLastError____ERROR_INSUFFICIENT_BUFFER
jmp 0x401f58
mov dword [esp + 8], str.WoW.exe_not_found._Extract_VanillaFixes_into_the_same_directory_as_the_game.
jmp 0x401f58
mov eax, dword [esp + 0x60]
mov dword [esp + 0xec], 0
call eax
lea edx, [esp + 0xec]
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0x1100
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
mov edx, eax
sub esp, 0x1c
mov eax, 0x40b30e
test edx, edx
jne 0x402afd
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Error_creating_process:__ls_r_nThis_issue_can_occur_if_you_have_enabled_compatibility_mode_on_the_WoW_executable.
mov dword [esp + 4], 0x200
mov dword [esp], 0x40fc60
call fcn.004014e0
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.VanillaFixes
mov dword [esp + 4], 0x40fc60
mov dword [esp], 0
call dword [sym.imp.USER32.dll_MessageBoxW]
sub esp, 0x10
mov edi, eax
jmp 0x4024fd
test eax, eax
jne 0x402b09
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov eax, dword [esp + 0x88]
mov dword [esp + 0x50], edi
mov dword [esp], eax
call edi
sub esp, 4
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call edi
sub esp, 4
mov dword [esp + 4], 2
mov dword [esp], 0x104
call sub.msvcrt.dll_calloc
mov dword [esp + 8], str._ls.cache
mov dword [esp + 4], 0x104
mov ebx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.004014e0
mov dword [esp], ebx
mov eax, dword [esp + 0x38]
call eax
sub esp, 4
cmp eax, 0xffffffff
je 0x40269e
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
sub esp, 4
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov dword [esp], 0x208
call sub.msvcrt.dll_malloc
mov dword [esp + 8], str.d3d9.dll
mov edi, dword [esp + 0x40]
mov ebx, eax
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], edi
call eax
sub esp, 0xc
mov ecx, dword [esp + 0x38]
mov dword [esp], ebx
call ecx
sub esp, 4
mov esi, eax
mov dword [esp], ebx
call sub.msvcrt.dll_free
cmp esi, 0xffffffff
je case.default.0x40289b
mov dword [esp], 0x208
call sub.msvcrt.dll_malloc
mov dword [esp + 4], edi
mov dword [esp + 8], str.VanillaFixes.exe
mov ebx, eax
mov dword [esp], eax
mov eax, dword [esp + 0x44]
call eax
sub esp, 0xc
mov eax, dword [esp + 0x54]
mov dword [esp], ebx
call eax
xor eax, eax
sub esp, 4
mov ecx, 0x11
lea edi, [esp + 0xec]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
rep stosd dword es:[edi], eax
mov dword [esp], str._selftest
call sub.msvcrt.dll_wcslen
lea edi, [eax + 0x106]
lea eax, [edi + edi]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 4], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str._ls__selftest
mov dword [esp], eax
mov esi, eax
call fcn.004014e0
lea eax, [esp + 0x98]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], eax
lea eax, [esp + 0xec]
mov dword [esp + 0x14], 0x400
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 0
call ebp
sub esp, 0x28
mov edi, eax
mov dword [esp], esi
call sub.msvcrt.dll_free
test edi, edi
je 0x402d3a
mov eax, dword [esp + 0x98]
mov dword [esp + 4], 0x2710
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
sub esp, 8
lea eax, [esp + 0x74]
mov dword [esp + 0x74], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
sub esp, 8
cmp dword [esp + 0x74], 0x103
je 0x402dc0
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x50]
mov dword [esp], eax
call edi
sub esp, 4
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call edi
sub esp, 4
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x74]
test eax, eax
je case.default.0x40289b
lea edx, [eax - 0x1000]
cmp edx, 6
ja 0x402ead
sub eax, 0x1003
cmp eax, 3
ja case.default.0x40289b
jmp dword [eax*4 + 0x40bdb0]
add edi, edi
mov dword [esp], esi
mov dword [esp + 4], edi
call sub.msvcrt.dll_realloc
mov dword [esp], eax
mov esi, eax
call sub.msvcrt.dll_wcslen
mov edx, dword [esp + 0x34]
lea eax, [esi + eax*2]
test edx, edx
jg 0x401dcf
jmp 0x401e10
mov dword [esp + 8], str.VfPatcher.dll_not_found._Extract_all_files_into_the_game_directory.
jmp 0x401f58
mov edi, eax
test eax, eax
jne 0x402b09
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov eax, dword [esp + 0x88]
mov dword [esp + 0x50], esi
mov dword [esp], eax
call esi
sub esp, 4
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call esi
sub esp, 4
mov dword [esp + 4], 2
mov dword [esp], 0x104
call sub.msvcrt.dll_calloc
mov dword [esp + 8], str._ls.cache
mov dword [esp + 4], 0x104
mov ebx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.004014e0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x40000000
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
sub esp, 0x1c
mov ecx, eax
cmp eax, 0xffffffff
je 0x40269e
mov eax, dword [esp + 0x30]
lea edx, [esp + 0xec]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x4c], edx
dec eax
mov dword [esp + 0x3c], eax
jmp 0x4029cd
mov eax, dword [esp + 0x30]
inc edi
cmp edi, eax
je 0x402d1d
mov eax, dword [esp + 0x48]
mov ebp, dword [eax + edi*4]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
mov dword [esp + 8], ebp
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
sub esp, 0x20
lea esi, [eax + 2]
mov dword [esp + 4], 1
mov dword [esp], esi
call sub.msvcrt.dll_calloc
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], esi
mov ebx, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], ebp
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
sub esp, 0x20
cmp dword [esp + 0x3c], edi
jle 0x402a87
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov byte [ebx + eax], 0xd
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov byte [ebx + eax], 0xa
mov dword [esp], ebx
mov dword [esp + 0xec], 0
call sub.msvcrt.dll_strlen
mov dword [esp + 0x10], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], ecx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
sub esp, 0x14
mov esi, eax
mov dword [esp], ebx
call sub.msvcrt.dll_free
test esi, esi
jne 0x4029c0
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x50]
mov dword [esp], ecx
call eax
sub esp, 4
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
sub esp, 4
jmp 0x40269e
mov eax, dword [esp + 0xec]
jmp 0x4025b9
mov eax, dword [esp + 0x88]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
sub esp, 8
jmp 0x4024fd
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [esp + 0x30]
test ebx, ebx
jne 0x402269
jmp 0x401cdc
mov eax, str.Direct3DCreate9_was_not_found_in_d3d9.dll
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.DXVK_self_test_failed___ls_._The_game_will_now_crash._r_n_r_nThis_is_likely_caused_by_missing_Vulkan_1.3_support._The_DXVK_log_file__VanillaFixes_d3d9.log__may_have_more_information._r_n_r_nIf_you_have_an_older_GPU__R9_200_300__GTX_700___remove__d3d9.dll__to_use_VanillaFixes_without_DXVK._Otherwise__try_updating_your_drivers_to_the_latest_version.
jmp 0x4025c5
mov eax, str.Direct3DCreate9_failed
jmp 0x402b55
mov eax, str.No_adapters
jmp 0x402b55
mov eax, str.d3d9.dll_could_not_be_loaded
jmp 0x402b55
mov dword [esp + 4], 2
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov dword [esp + 0x64], eax
mov dword [esp], str.VanillaFixes_will_load_additional_DLLs_listed_in_dlls.txt:_r_n_ls_r_n_r_nIf_you_dont_agree__press_Cancel._This_reminder_will_be_shown_when_the_list_of_files_has_changed.
call sub.msvcrt.dll_wcslen
mov edi, dword [esp + 0x64]
mov ebx, eax
mov dword [esp], edi
call sub.msvcrt.dll_wcslen
lea esi, [ebx + eax + 1]
lea eax, [esi + esi]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.VanillaFixes_will_load_additional_DLLs_listed_in_dlls.txt:_r_n_ls_r_n_r_nIf_you_dont_agree__press_Cancel._This_reminder_will_be_shown_when_the_list_of_files_has_changed.
mov dword [esp + 4], esi
mov ebx, eax
mov dword [esp], eax
call fcn.004014e0
mov dword [esp + 0xc], 0x31
mov dword [esp + 8], str.VanillaFixes
mov dword [esp + 4], ebx
mov dword [esp], 0
call dword [sym.imp.USER32.dll_MessageBoxW]
sub esp, 0x10
mov edi, eax
cmp eax, 1
jne 0x4024fd
jmp 0x401cdc
mov dword [esp + 8], str.GetLastError____ERROR_INSUFFICIENT_BUFFER
mov dword [esp + 4], 0x200
mov dword [esp], 0x40f860
call fcn.004014e0
mov dword [esp + 0x15c], 0x10
mov dword [esp + 0x158], str.VanillaFixes
mov dword [esp + 0x154], 0x40f860
jmp 0x401f8d
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
lea ebp, [ebp + eax*2 + 2]
jmp 0x4022ff
test eax, eax
je 0x402cb8
mov ebx, dword [esp + 0xec]
test ebx, ebx
je 0x402cb0
mov dword [esp + 0x48], 0
mov dword [esp + 0x30], 0
jmp 0x402219
mov edi, 0x1003
mov eax, str.d3d9.dll_could_not_be_loaded
jmp 0x4024d1
cmp edi, 0x104
jg 0x4028a2
mov dword [esp], esi
call sub.msvcrt.dll_wcslen
lea eax, [esi + eax*2]
jmp 0x401e10
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x401ccc
test eax, eax
jle 0x402d95
xor edi, edi
mov ebx, dword [sym.imp.SHLWAPI.dll_StrCmpIW]
mov ebp, edi
mov edi, dword [esp + 0x48]
jmp 0x402cf9
mov ecx, dword [esp + 0x30]
inc ebp
cmp ebp, ecx
je 0x402d67
mov eax, dword [esi + ebp*4]
mov dword [esp + 4], eax
mov eax, dword [edi + ebp*4]
mov dword [esp], eax
call ebx
sub esp, 8
test eax, eax
je 0x402cf0
mov ebx, dword [esp + 0x30]
mov ebp, 1
jmp 0x402222
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x50]
mov dword [esp], ecx
call eax
sub esp, 4
jmp 0x40269e
mov dword [esp], ebx
call sub.msvcrt.dll_free
xor edi, edi
jmp 0x4024fd
mov edi, 0x1004
mov eax, str.Direct3DCreate9_was_not_found_in_d3d9.dll
jmp 0x4024d1
mov edi, 0x1005
mov eax, str.Direct3DCreate9_failed
jmp 0x4024d1
mov ebp, eax
mov ebx, ecx
jmp 0x402222
mov dword [esp], ebp
call sub.msvcrt.dll_free
test esi, esi
je 0x402cb8
mov ebx, dword [esp + 0xec]
test ebx, ebx
jne 0x402c70
xor edi, edi
mov dword [esp + 0x48], edi
mov dword [esp], esi
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp + 0x30], ebx
jmp 0x401cdc
mov eax, dword [esp + 0x98]
mov dword [esp + 4], 0x1001
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
sub esp, 8
mov dword [esp + 0x74], 0x1001
jmp 0x402848
test eax, eax
jne 0x402b09
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov eax, dword [esp + 0x88]
mov dword [esp + 0x50], edi
mov dword [esp], eax
call edi
sub esp, 4
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call edi
sub esp, 4
mov dword [esp + 4], 2
mov dword [esp], 0x104
call sub.msvcrt.dll_calloc
mov dword [esp + 8], str._ls.cache
mov dword [esp + 4], 0x104
mov ebx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.004014e0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x40000000
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
sub esp, 0x1c
mov ecx, eax
cmp eax, 0xffffffff
je 0x40269e
jmp 0x402d29
mov eax, str.Exception_caught
jmp 0x402b55