Function at 0x436d10
Capabilities:
Check if file exists
Set environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46c507
mov eax, dword fs:[0]
push eax
sub esp, 0x150
mov eax, dword [0x4825c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
mov ecx, esi
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x154], edi
cmp dword [esi + 0x14], 7
mov dword [ebp - 0x158], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x154], esi
jbe 0x436d65
mov ecx, dword [esi]
test eax, eax
jne 0x436d9a
push eax
push 0x46e444
push ecx
call fcn.00407aa0
add esp, 0xc
test eax, eax
jne 0x436d9a
xorps xmm0, xmm0
mov ecx, edi
push eax
movups xmmword [edi], xmm0
push 0x46e444
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
call fcn.00401510
jmp 0x437460
push esi
lea ecx, [ebp - 0xa0]
call fcn.004015b0
push 0
lea eax, [ebp - 0xa0]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x14c]
push eax
call fcn.004299b0
add esp, 0xc
cmp byte [ebp - 0x14b], 0
mov byte [ebp - 4], 1
je 0x436f0d
cmp byte [ebp - 0x149], 0
jne 0x436f0d
sub esp, 0x18
lea eax, [ebp - 0xa0]
mov ecx, esp
push eax
call fcn.004015b0
lea eax, [ebp - 0xe8]
push eax
call fcn.0042b970
add esp, 0x1c
lea ecx, [ebp - 0xa0]
push eax
call fcn.004019c0
lea ecx, [ebp - 0xe8]
call fcn.00401940
push str.libcaml_lightcaml_all
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00401360
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x58]
push str.wsl____export_DISPLAY:0.0__
push eax
call fcn.0040d3a0
push str._lib_caml_light_caml_all_
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 3
push eax
call fcn.00404180
push str.__stdlib__
push eax
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 4
push eax
call fcn.00404180
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 5
push ecx
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.0040d340
push str._lib_caml_light_
push eax
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 6
push eax
call fcn.00404180
add esp, 0x48
push str.__lang__fr_
push eax
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 7
push eax
call fcn.00404180
add esp, 0xc
lea ecx, [ebp - 0xe8]
call fcn.00401940
lea ecx, [ebp - 0x88]
call fcn.00401940
lea ecx, [ebp - 0xb8]
call fcn.00401940
lea ecx, [ebp - 0x28]
call fcn.00401940
lea ecx, [ebp - 0x58]
call fcn.00401940
lea eax, [ebp - 0xd0]
mov ecx, edi
push eax
call fcn.00405080
lea ecx, [ebp - 0xd0]
call fcn.00401940
lea ecx, [ebp - 0x70]
jmp 0x437445
push str.libcaml_lightcaml_all.exe
lea eax, [ebp - 0x100]
push esi
push eax
call fcn.00401360
add esp, 0xc
cmp dword [ebp - 0xec], 7
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 8
cmova eax, dword [ebp - 0x100]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xorps xmm0, xmm0
test eax, eax
jne 0x436f63
push eax
movups xmmword [edi], xmm0
push 0x46e444
mov ecx, edi
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
call fcn.00401510
jmp 0x43743f
xor eax, eax
mov dword [ebp - 0x48], 0
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 9
push eax
call fcn.004379c0
add esp, 4
test eax, eax
je 0x437311
lea eax, [ebp - 0x40]
push esi
push eax
call fcn.004451c0
cmp dword [ebp - 0x2c], 0xf
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x14d]
cmova edx, dword [ebp - 0x40]
push ecx
add eax, edx
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x2c], 0xf
lea ecx, [ebp - 0x14e]
push ecx
lea edx, [ebp - 0x40]
mov byte [ebp - 0x14d], 0x2f
cmova edx, dword [ebp - 0x40]
push eax
push edx
mov byte [ebp - 0x14e], 0x5c
call fcn.004367d0
add esp, 0x18
mov byte [ebp - 0x14d], 0x63
cmp dword [ebp - 0x30], 2
jbe 0x4370aa
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x40]
mov edx, dword [ebp - 0x40]
cmp ecx, 0xf
cmova eax, edx
cmp byte [eax + 1], 0x3a
jne 0x4370aa
cmp ecx, 0xf
mov dword [ebp - 0x18], 0xa
lea eax, [ebp - 0x40]
mov dword [ebp - 0x14], 0xf
cmova eax, edx
xorps xmm0, xmm0
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x1e], 0
movq xmm0, qword [str._cygdrive_]
mov al, byte [eax]
mov byte [ebp - 0x14d], al
mov ax, word [0x470bd8]
movq qword [ebp - 0x28], xmm0
mov word [ebp - 0x20], ax
push 1
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xb
call fcn.00415a30
push eax
lea ecx, [ebp - 0x28]
call fcn.004075e0
push eax
lea ecx, [ebp - 0x40]
call fcn.00436b10
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0xa
cmp ecx, 0xf
jbe 0x4370aa
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4370a0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43747d
push ecx
push edx
call fcn.00448427
add esp, 8
mov esi, dword [ebp - 0x154]
lea eax, [ebp - 0xe8]
push str.libcaml_lightcaml_all.exe
push esi
push eax
call fcn.00401360
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 0xc
push eax
call fcn.00437a40
add esp, 0x10
mov edx, 0x46e545
test al, al
mov ecx, 0x470be8
cmove ecx, edx
push ecx
lea ecx, [ebp - 0xb8]
call fcn.00405040
movsx ecx, byte [ebp - 0x14d]
xorps xmm0, xmm0
movzx eax, cl
shl cx, 8
movups xmmword [ebp - 0x28], xmm0
or cx, ax
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], cl
mov byte [ebp - 0x27], 0
push str.:cygwin
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00436680
add esp, 0xc
cmp dword [ebp - 0xa4], 0xf
lea ecx, [ebp - 0xb8]
push dword [ebp - 0xa8]
cmova ecx, dword [ebp - 0xb8]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0xf
call fcn.00407760
mov ecx, dword [ebp - 0x158]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x88], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x88]
push eax
movq qword [ebp - 0x78], xmm0
call fcn.00411dd0
mov ecx, dword [ebp - 0x74]
cmp ecx, 0xf
jbe 0x4371ca
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4371c0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x437482
push ecx
push edx
call fcn.00448427
add esp, 8
lea ecx, [ebp - 0x70]
call fcn.004018f0
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0xd
cmp ecx, 0xf
jbe 0x43720a
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x437200
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x437482
push ecx
push edx
call fcn.00448427
add esp, 8
push dword [ebp - 0x158]
lea eax, [ebp - 0xd0]
push eax
call fcn.0043e400
push str._bin_bash__c___CAMLLIGHTDIR_lib_caml_light_caml_all___stdlib___CAMLLIGHTDIR_lib_caml_light___lang__fr_
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 0x10
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00401360
add esp, 0x14
lea ecx, [ebp - 0x58]
push eax
call fcn.004019c0
lea ecx, [ebp - 0x70]
call fcn.00401940
push str.caml_light_bin_
lea eax, [ebp - 0x28]
push esi
push eax
call fcn.00401360
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x11
push ecx
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.0040d340
push str._bin_C:WindowsSystem32_C:Windows
push eax
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0x12
push eax
call fcn.00404180
add esp, 0x24
cmp dword [eax + 0x14], 7
jbe 0x43728e
mov eax, dword [eax]
mov esi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push eax
push str.PATH
call esi
lea ecx, [ebp - 0x70]
call fcn.00401940
lea ecx, [ebp - 0x88]
call fcn.00401940
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x10
call fcn.00401940
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0043e400
add esp, 8
cmp dword [eax + 0x14], 7
jbe 0x4372d3
mov eax, dword [eax]
push eax
push str.CAMLLIGHTDIR
call esi
lea ecx, [ebp - 0x70]
call fcn.00401940
lea ecx, [ebp - 0xd0]
call fcn.00401940
lea ecx, [ebp - 0xb8]
call fcn.004018f0
lea ecx, [ebp - 0xe8]
call fcn.00401940
lea ecx, [ebp - 0x40]
call fcn.004018f0
jmp 0x4373fe
push str._bin_C:WindowsSystem32_C:Windows
lea eax, [ebp - 0x70]
push esi
push eax
call fcn.00401360
add esp, 0xc
cmp dword [eax + 0x14], 7
jbe 0x43732b
mov eax, dword [eax]
push eax
push str.PATH
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
lea ecx, [ebp - 0x70]
call fcn.00401940
cmp dword [esi + 0x14], 7
mov eax, esi
jbe 0x437349
mov eax, dword [esi]
push eax
push str.CAMLLIGHTDIR
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xb8]
push 0x470dec
push eax
call fcn.0040d3a0
push str.___stdlib__
push eax
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0x13
push eax
call fcn.00404180
push esi
push eax
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 0x14
push eax
call fcn.0040d340
push str.libcaml_light_
push eax
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 0x15
push eax
call fcn.00404180
push str.__lang__fr_
push eax
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0x16
push eax
call fcn.00404180
add esp, 0x3c
lea ecx, [ebp - 0x58]
push eax
call fcn.004019c0
lea ecx, [ebp - 0x70]
call fcn.00401940
lea ecx, [ebp - 0xe8]
call fcn.00401940
lea ecx, [ebp - 0xd0]
call fcn.00401940
lea ecx, [ebp - 0x88]
call fcn.00401940
lea ecx, [ebp - 0xb8]
call fcn.00401940
xorps xmm0, xmm0
lea ecx, [ebp - 0x58]
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
xor eax, eax
movups xmm0, xmmword [ebp - 0x58]
mov dword [edi + 0x14], 0
mov word [ebp - 0x58], ax
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x48]
movq qword [edi + 0x10], xmm0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
call fcn.00401940
lea ecx, [ebp - 0x100]
call fcn.00401940
lea ecx, [ebp - 0x14c]
call fcn.00411ce0
lea ecx, [ebp - 0xa0]
call fcn.00401940
mov eax, edi
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.00448686
mov esp, ebp
pop ebp
ret
call fcn.0044d0af
call fcn.0044d0af
int3