Function at 0x405ac0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x408058
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
mov eax, dword [0x40b074]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0xa8], 0
xorps xmm0, xmm0
mov dword [ebp - 4], 0
xor eax, eax
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x28], xmm0
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0xa8], 1
call fcn.00403250
add esp, 4
test eax, eax
jne 0x40622e
mov ecx, section..data
call fcn.00404050
movups xmm0, xmmword [ebp - 0x28]
mov byte [ebp - 0xac], 0
lea eax, [ebp - 0x40]
push dword [ebp - 0xac]
movups xmmword [section..data], xmm0
push str.geode
movq xmm0, qword [ebp - 0x18]
push eax
movq qword [0x40b010], xmm0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 4], 0xffffffff
call fcn.00401350
add esp, 0xc
push section..data
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 2
call fcn.004022b0
lea eax, [ebp - 0x40]
mov dword [ebp - 0xa8], 2
push eax
lea ecx, [ebp - 0x28]
call fcn.00402f00
mov ecx, 0x40b018
call fcn.00404050
movups xmm0, xmmword [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0xa8], 0
lea ecx, [ebp - 0x40]
mov word [ebp - 0x28], ax
movups xmmword [0x40b018], xmm0
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x18]
movq qword [0x40b028], xmm0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
call fcn.00404050
mov byte [ebp - 0xac], 0
lea eax, [ebp - 0x40]
push dword [ebp - 0xac]
push str.update
push eax
call fcn.00401350
add esp, 0xc
push 0x40b018
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 4
call fcn.004022b0
lea eax, [ebp - 0x40]
mov dword [ebp - 0xa8], 4
push eax
lea ecx, [ebp - 0x28]
call fcn.00402f00
mov ecx, 0x40b030
call fcn.00404050
movups xmm0, xmmword [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0xa8], 0
lea ecx, [ebp - 0x40]
mov word [ebp - 0x28], ax
movups xmmword [0x40b030], xmm0
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x18]
movq qword [0x40b040], xmm0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
call fcn.00404050
mov byte [ebp - 0xac], 0
lea eax, [ebp - 0x40]
push dword [ebp - 0xac]
push str.resources
push eax
call fcn.00401350
add esp, 0xc
push 0x40b018
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 6
call fcn.004022b0
lea eax, [ebp - 0x40]
mov dword [ebp - 0xa8], 8
push eax
lea ecx, [ebp - 0x28]
call fcn.00402f00
mov ecx, 0x40b048
call fcn.00404050
movups xmm0, xmmword [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0xa8], 0
lea ecx, [ebp - 0x40]
mov word [ebp - 0x28], ax
movups xmmword [0x40b048], xmm0
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x18]
movq qword [0x40b058], xmm0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
call fcn.00404050
mov byte [ebp - 0xac], 0
lea eax, [ebp - 0x40]
push dword [ebp - 0xac]
push str.GeodeBootstrapper.dll
push eax
call fcn.00401350
add esp, 0xc
push section..data
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 8
call fcn.004022b0
lea eax, [ebp - 0x40]
mov dword [ebp - 0xa8], 0x10
push eax
lea ecx, [ebp - 0x28]
call fcn.00402f00
mov dword [ebp - 0xb0], 0
call fcn.00401790
mov esi, eax
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0xac], esi
push eax
call fcn.00404690
add esp, 8
mov byte [ebp - 0xa1], al
cmp dword [ebp - 0xb0], 0
jne 0x406239
lea ecx, [ebp - 0x28]
mov dword [ebp - 0xa8], 0
call fcn.00404050
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.00404050
cmp byte [ebp - 0xa1], 0
je 0x405e56
mov byte [ebp - 0xac], 0
lea eax, [ebp - 0x40]
push dword [ebp - 0xac]
push str.GeodeBootstrapper.dll
push eax
call fcn.00401350
add esp, 0xc
push section..data
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xa
call fcn.004022b0
lea eax, [ebp - 0x40]
mov dword [ebp - 0xa8], 0x20
push eax
lea ecx, [ebp - 0x28]
call fcn.00402f00
lea eax, [ebp - 0x28]
push eax
call fcn.004049a0
add esp, 4
mov dword [ebp - 0xa8], 0
lea ecx, [ebp - 0x28]
call fcn.00404050
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.00404050
lea eax, [ebp - 0xb0]
mov dword [ebp - 0xb0], 0
push eax
push 0x40b018
mov dword [ebp - 0xac], esi
call fcn.00404690
add esp, 8
cmp dword [ebp - 0xb0], 0
jne 0x40624e
test al, al
je 0x405fe8
lea eax, [ebp - 0xb0]
mov dword [ebp - 0xb0], 0
push eax
push 0x40b030
mov dword [ebp - 0xac], esi
call fcn.00404690
add esp, 8
cmp dword [ebp - 0xb0], 0
jne 0x406264
test al, al
je 0x405fe8
mov eax, dword [0x409410]
xorps xmm0, xmm0
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x20], eax
mov ax, word [0x409414]
movq xmm0, qword [str.XInput9_1_0.dll]
mov word [ebp - 0x1c], ax
mov al, byte [0x409416]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x14], 0xf
movq qword [ebp - 0x28], xmm0
mov byte [ebp - 0x1a], al
mov byte [ebp - 0x19], 0
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0xb
push eax
call fcn.00404f80
mov ecx, dword [ebp - 0x14]
add esp, 4
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0x10
jb 0x405f58
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x405f4e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x405f4e
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00406a38
add esp, 8
mov al, byte [0x409420]
xorps xmm0, xmm0
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 9
movq xmm0, qword [str.Geode.dll]
mov dword [ebp - 0x14], 0xf
movq qword [ebp - 0x28], xmm0
mov byte [ebp - 0x20], al
mov byte [ebp - 0x1f], 0
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0xc
push eax
call fcn.00404f80
mov ecx, dword [ebp - 0x14]
add esp, 4
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0x10
jb 0x405fd6
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x405fcc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x405fcc
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00406a38
add esp, 8
call fcn.00405410
push 0x40b030
call fcn.004049a0
add esp, 4
cmp dword [ebp + 8], 2
jl 0x406211
mov byte [ebp - 0xac], 0
lea eax, [ebp - 0x40]
push dword [ebp - 0xac]
add edi, 4
push edi
push eax
call fcn.00401380
add esp, 0xc
push section..data
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xe
call fcn.004022b0
lea eax, [ebp - 0x40]
mov dword [ebp - 0xa8], 0x40
push eax
lea ecx, [ebp - 0x28]
call fcn.00402f00
lea eax, [ebp - 0x28]
push eax
call fcn.00405740
add esp, 4
mov byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
call fcn.00404050
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.00404050
cmp byte [ebp - 0xa1], 0
jne 0x406112
xorps xmm0, xmm0
push 0x50
movups xmmword [ebp - 0x28], xmm0
call fcn.00406a08
movups xmm0, xmmword [str.There_was_an_error_restarting_GD._Please__restart_the_game_manually.]
mov ecx, eax
mov dword [ebp - 0x18], 0x44
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x14], 0x4f
movups xmmword [ecx], xmm0
movups xmm0, xmmword [0x409438]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [0x409448]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [0x409458]
movups xmmword [ecx + 0x30], xmm0
mov eax, dword [0x409468]
mov dword [ecx + 0x40], eax
lea eax, [ebp - 0x28]
push eax
mov byte [ecx + 0x44], 0
call fcn.00404f30
mov ecx, dword [ebp - 0x14]
add esp, 8
cmp ecx, 0x10
jb 0x406211
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x406103
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x406103
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00406a38
add esp, 8
jmp 0x406211
cmp dword [0x40b014], 8
lea ecx, [ebp - 0xa1]
push ecx
push dword [0x40b010]
mov eax, section..data
cmovae eax, dword [section..data]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.00401550
mov dword [ebp - 0xa8], 0x180
cmp dword [ebp - 0x74], 0x10
lea eax, [ebp - 0xa0]
mov byte [ebp - 0xac], 0
lea esi, [ebp - 0x88]
push dword [ebp - 0xac]
cmovae esi, dword [ebp - 0x88]
push edi
push eax
mov dword [ebp - 4], 0xf
call fcn.00401380
add esp, 0x1c
push section..data
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x11
call fcn.004022b0
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xa8], 0x380
push eax
lea ecx, [ebp - 0x58]
call fcn.00402f00
cmp dword [ebp - 0x44], 8
lea ecx, [ebp - 0xa1]
push ecx
push dword [ebp - 0x48]
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00401550
add esp, 0x10
lea eax, [ebp - 0x70]
cmp dword [ebp - 0x5c], 0x10
cmovae eax, dword [ebp - 0x70]
push 1
push esi
push 0x409230
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
lea ecx, [ebp - 0x70]
call fcn.00402d00
lea ecx, [ebp - 0x58]
call fcn.00404050
lea ecx, [ebp - 0xa0]
call fcn.00404050
lea ecx, [ebp - 0x88]
call fcn.00402d00
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00406c97
mov esp, ebp
pop ebp
ret
push eax
push str.current_path__
call fcn.00403ec0
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xb0]
push eax
push str.exists
call fcn.00403e50
push 0x40b018
lea eax, [ebp - 0xb0]
push eax
push str.exists
call fcn.00403e50
push 0x40b030
lea eax, [ebp - 0xb0]
push eax
push str.exists
call fcn.00403e50
int3