Function at 0x1000f4d0
Capabilities:
Create process on windows
Set environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x59c
mov eax, dword [0x10047410]
xor eax, esp
mov dword [esp + 0x598], eax
cmp dword [0x10058ca0], 0
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], edi
je 0x1000f517
mov esi, dword [0x1005895c]
push str.SteamLaunchApp_n
call fcn.10006df0
add esp, 4
push 0x24
call fcn.1001f870
add esp, 4
mov esi, eax
push 0x104
mov dword [esp + 0x14], esi
call fcn.10020ea1
add esp, 4
push 0x104
mov dword [esi + 8], eax
call fcn.10020ea1
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
add esp, 4
push edi
push esi
push ecx
push ebx
mov dword [esi], eax
call sym.Steam.dll_SteamEnumerateAppLaunchOption
mov edx, dword [0x10058cf0]
mov ecx, dword [edx]
add esp, 0x10
lea edx, [esp + 0x188]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x1000f567
lea edi, [esp + 0x188]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x1000f580
mov ax, word [0x1003e774]
mov word [edi], ax
mov eax, dword [0x10058d20]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1000f598
lea edi, [esp + 0x188]
sub eax, ecx
mov esi, ecx
dec edi
jmp 0x1000f5b0
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x1000f5b0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x188]
dec edi
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x1000f5d0
mov cx, word [0x1003e774]
mov eax, dword [0x10058854]
mov word [edi], cx
mov edx, dword [eax + 8]
sub edx, dword [eax + 4]
xor ecx, ecx
sar edx, 2
test edx, edx
je 0x1000f61a
mov esi, dword [eax + 4]
mov edx, esi
jmp 0x1000f600
mov edi, dword [edx]
cmp ebx, dword [edi]
je 0x1000f7bc
mov edi, dword [eax + 8]
sub edi, esi
inc ecx
sar edi, 2
add edx, 4
cmp ecx, edi
jb 0x1000f600
xor eax, eax
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000f620
lea edi, [esp + 0x188]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x1000f631
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x188]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x1000f651
mov cx, word [0x1003e774]
lea eax, [esp + 0x188]
mov word [edi], cx
call fcn.10017da0
lea eax, [esp + 0x188]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000f680
sub eax, edx
mov edx, dword [esp + 0xc]
mov ebx, eax
mov eax, dword [ebp + 8]
push edx
push eax
call sym.Steam.dll_SteamRefreshMinimumFootprintFiles
mov ecx, dword [0x10058d20]
add esp, 8
push ecx
push str.SteamUser
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1000f6b7
lea edi, [esp + 0x188]
sub eax, ecx
mov esi, ecx
dec edi
lea ebx, [ebx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x1000f6d0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x188]
dec edi
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x1000f6f0
mov ax, word [0x1003e8cc]
mov word [edi], ax
mov eax, dword [esp + 0x14]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1000f707
lea edi, [esp + 0x188]
sub eax, ecx
mov esi, ecx
dec edi
lea ebx, [ebx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x1000f720
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp dword [0x10058ca0], 0
rep movsb byte es:[edi], byte [esi]
je 0x1000f75a
mov esi, dword [0x1005895c]
lea ecx, [esp + 0x188]
push ecx
push str._tLaunching__s_n
call fcn.10006df0
add esp, 8
lea edi, [ebx + 1]
mov bl, 0x20
cmp byte [esp + edi + 0x188], bl
je 0x1000f78e
lea eax, [esp + 0x188]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000f772
sub eax, edx
jmp 0x1000f780
cmp edi, eax
jge 0x1000f78e
inc edi
cmp byte [esp + edi + 0x188], bl
jne 0x1000f780
lea eax, [esp + 0x188]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000f798
sub eax, edx
mov ecx, eax
cmp edi, ecx
jge 0x1000fa79
test edi, edi
jne 0x1000f7c7
mov byte [esp + 0x80], 0
jmp 0x1000f84e
mov eax, dword [esi + ecx*4]
mov eax, dword [eax + 8]
jmp 0x1000f61c
mov esi, edi
test ecx, ecx
jg 0x1000f7d7
mov byte [esp + 0x80], 0
jmp 0x1000f84e
test edi, edi
jns 0x1000f7e8
mov eax, edi
neg eax
cdq
idiv ecx
sub ecx, edx
mov esi, ecx
jmp 0x1000f7f3
cmp edi, ecx
jle 0x1000f7f3
mov eax, edi
cdq
idiv ecx
mov esi, edx
test esi, esi
jg 0x1000f801
mov byte [esp + 0x80], 0
jmp 0x1000f84e
cmp esi, 0x103
jg 0x1000f829
push esi
lea edx, [esp + 0x18c]
push edx
lea eax, [esp + 0x88]
push eax
call fcn.10029240
mov byte [esp + esi + 0x8c], 0
jmp 0x1000f84b
push 0x103
lea ecx, [esp + 0x18c]
push ecx
lea edx, [esp + 0x88]
push edx
call fcn.10029240
mov byte [esp + 0x18f], 0
add esp, 0xc
lea eax, [esp + 0x80]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000f858
sub eax, edx
push 0xa
cmp eax, 2
jg 0x1000f87f
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x7c]
push ecx
call fcn.10023350
add esp, 0xc
jmp 0x1000f898
lea edx, [esp + 0x84]
push edx
lea ebx, [esp + 0x7c]
mov ecx, 0xfffffffe
call fcn.10017ed0
add esp, 8
lea eax, [esp + 0x74]
push eax
call fcn.1002105e
add esp, 4
mov ecx, 0x1003f0e8
lea eax, [esp + 0x74]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000f8d0
test dl, dl
je 0x1000f8cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000f8d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000f8b0
xor eax, eax
jmp 0x1000f8d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
lea eax, [esp + 0x80]
jne 0x1000f8ee
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1000f8e1
jmp 0x1000f980
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000f8f1
sub eax, edx
push 0xa
cmp eax, 3
jg 0x1000f918
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x7c]
push ecx
call fcn.10023350
add esp, 0xc
jmp 0x1000f931
lea edx, [esp + 0x84]
push edx
lea ebx, [esp + 0x7c]
mov ecx, 0xfffffffd
call fcn.10017ed0
add esp, 8
lea eax, [esp + 0x74]
push eax
call fcn.1002105e
add esp, 4
mov ecx, 0x1003f0f4
lea eax, [esp + 0x74]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000f967
test dl, dl
je 0x1000f963
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000f967
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000f947
xor eax, eax
jmp 0x1000f96c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1000f991
lea eax, [esp + 0x80]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1000f978
mov ecx, dword [str..exe]
mov dl, byte [0x1003f0f0]
mov dword [eax], ecx
mov byte [eax + 4], dl
lea eax, [esp + 0x188]
lea edx, [eax + 1]
jmp 0x1000f9a0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000f9a0
sub eax, edx
mov ecx, eax
sub ecx, edi
push 0x104
cmp ecx, eax
jl 0x1000f9d0
lea eax, [esp + 0x18c]
push eax
lea ecx, [esp + 0x4a0]
push ecx
call fcn.10023350
add esp, 0xc
jmp 0x1000f9e9
lea edx, [esp + 0x18c]
neg ecx
push edx
lea ebx, [esp + 0x4a0]
call fcn.10017ed0
add esp, 8
mov eax, 0x22
mov word [esp + 0x390], ax
lea eax, [esp + 0x80]
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000fa00
lea edi, [esp + 0x390]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x1000fa11
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x390]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x1000fa31
mov cx, word [0x1003f0f8]
lea eax, [esp + 0x498]
mov word [edi], cx
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000fa50
lea edi, [esp + 0x390]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x1000fa61
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x44
xor esi, esi
lea edx, [esp + 0x2c]
push esi
push edx
call fcn.10024a20
add esp, 0xc
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x2c]
push ecx
push esi
push esi
push 0x4000000
push esi
push esi
push esi
lea edx, [esp + 0x3b0]
push edx
lea eax, [esp + 0xa4]
push eax
mov dword [esp + 0x50], 0x44
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x1000faed
mov eax, dword [esp + 0xc]
cmp eax, esi
je 0x1000fae7
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov byte [eax + 0xc], 0
mov esi, dword [esp + 0x18]
jmp 0x1000faf7
mov ecx, dword [esp + 0xc]
mov dword [ecx], 1
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 8]
push edx
call fcn.10021a18
mov eax, dword [edi]
add esp, 4
push eax
call fcn.10021a18
add esp, 4
push edi
call fcn.1001f865
mov ecx, dword [esp + 0x5a8]
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
xor ecx, esp
call fcn.1001f521
mov esp, ebp
pop ebp
ret