Function at 0x1102bf00
Capabilities:
Check if file exists
Create directory
Enumerate files on windows
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1109e7e9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x360
mov eax, dword [str.PatchFile]
mov dword [ebp - 0x9c], eax
mov eax, dword [0x110b51a0]
mov dword [ebp - 0x98], eax
mov ax, word [0x110b51a4]
push ebx
push esi
mov word [ebp - 0x94], ax
xor eax, eax
push edi
mov word [ebp - 0x92], ax
xor esi, esi
nop
push 0xa
lea eax, [ebp - 0x93]
push eax
push esi
call fcn.1108a068
add esp, 0xc
lea eax, [ebp - 0x9c]
mov edx, str.ExtraPatches
lea ecx, [ebp - 0x78]
push 0x110aeab8
push eax
call fcn.1100a840
lea eax, [ebp - 0x9c]
mov dword [ebp - 4], 0
push eax
mov edx, 0x110aeab8
lea ecx, [ebp - 0x78]
call fcn.1102be40
test al, al
je 0x1102bfa8
lea eax, [ebp - 0x78]
mov ecx, 0x110e4618
push eax
call fcn.11012600
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x64]
cmp edx, 0x10
jb 0x1102bfc2
mov ecx, dword [ebp - 0x78]
inc edx
push 1
call fcn.11004ac0
inc esi
cmp esi, 0x64
jl 0x1102bf50
push 7
push str..mods_
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x40], 0xf
mov dword [ebp - 0x44], 0
mov byte [ebp - 0x54], 0
call fcn.11004980
mov dword [ebp - 4], 1
lea ecx, [ebp - 0xb4]
push 0xe
push str.mods_order.txt
mov dword [ebp - 0xa0], 0xf
mov dword [ebp - 0xa4], 0
mov byte [ebp - 0xb4], 0
call fcn.11004980
lea eax, [ebp - 0xb4]
mov byte [ebp - 4], 2
push eax
lea edx, [ebp - 0x54]
lea ecx, [ebp - 0x3c]
call fcn.1102d5f0
mov byte [ebp - 4], 3
lea eax, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmovae eax, dword [ebp - 0x54]
push eax
call esi
cmp eax, 0xffffffff
je 0x1102c054
test al, 0x10
jne 0x1102c086
cmp dword [ebp - 0x40], 0x10
lea eax, [ebp - 0x54]
cmovae eax, dword [ebp - 0x54]
add eax, 2
push eax
push 1
push str.Creating_Mods_folder:__s_n
call fcn.1100ff40
add esp, 0xc
lea eax, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
cmovae eax, dword [ebp - 0x54]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
push eax
call esi
cmp eax, 0xffffffff
je 0x1102c0a1
test al, 0x10
je 0x1102c330
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
add eax, 2
push eax
push 1
push str.Generating_Mods_Order_file_based_on_the_contents_of_Mods_folder:__s_n
call fcn.1100ff40
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x228]
call fcn.1102d2c0
mov byte [ebp - 4], 4
cmp dword [ebp - 0x1d8], 0
je 0x1102c298
xor eax, eax
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
push ecx
lea edx, [ebp - 0x54]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x90]
call fcn.1102d6c0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x368]
cmp dword [ebp - 0x7c], 0x10
lea eax, [ebp - 0x90]
push ecx
cmovae eax, dword [ebp - 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x1102c1e6
mov edi, dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov byte [ebp - 0x10], 0x2e
lea esp, [esp]
cmp byte [ebp - 0x33c], 0
mov dword [ebp - 0x64], 0xf
mov dword [ebp - 0x68], 0
mov byte [ebp - 0x78], 0
jne 0x1102c15f
xor ecx, ecx
jmp 0x1102c171
lea ecx, [ebp - 0x33c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1102c168
sub ecx, edx
push ecx
lea eax, [ebp - 0x33c]
push eax
lea ecx, [ebp - 0x78]
call fcn.11004980
sub esp, 8
mov byte [ebp - 4], 7
lea eax, [ebp - 0x10]
lea ecx, [ebp - 0x78]
push eax
call fcn.1101aa20
mov ecx, dword [ebp - 0x68]
sub ecx, eax
cmp ecx, 4
ja 0x1102c1aa
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x24]
call fcn.11012600
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x64]
cmp edx, 0x10
jb 0x1102c1c1
mov ecx, dword [ebp - 0x78]
inc edx
push 1
call fcn.11004ac0
lea eax, [ebp - 0x368]
push eax
push esi
call edi
test eax, eax
jne 0x1102c140
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov al, byte [ebp - 0x10]
mov ecx, edi
mov byte [ebp - 0x10], al
sub ecx, ebx
lea eax, [ebp - 0x10]
push eax
mov eax, 0x2aaaaaab
imul ecx
mov ecx, ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, edi
push eax
call fcn.1102da80
mov esi, ebx
cmp ebx, edi
je 0x1102c23b
jmp 0x1102c220
mov edx, esi
lea ecx, [ebp - 0x228]
call fcn.110116a0
mov ecx, eax
call fcn.1102d790
add esi, 0x18
cmp esi, edi
jne 0x1102c220
mov edx, dword [ebp - 0x7c]
cmp edx, 0x10
jb 0x1102c251
mov ecx, dword [ebp - 0x90]
inc edx
push 1
call fcn.11004ac0
mov dword [ebp - 0x7c], 0xf
mov dword [ebp - 0x80], 0
mov byte [ebp - 0x90], 0
test ebx, ebx
je 0x1102c2b6
push dword [ebp - 0x1c]
mov edx, edi
push ecx
mov ecx, ebx
call fcn.11008d80
mov ecx, dword [ebp - 0x14]
mov eax, 0x2aaaaaab
sub ecx, ebx
imul ecx
push 0x18
sar edx, 2
mov ecx, ebx
mov eax, edx
shr eax, 0x1f
add edx, eax
call fcn.11004ac0
jmp 0x1102c2b6
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
add eax, 2
push eax
push 1
push str.Error_creating_load_order_file__s._n
call fcn.1100ff40
add esp, 0xc
mov eax, dword [ebp - 0x228]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x228], 0x110b3a28
mov eax, dword [ebp - 0x228]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x22c], eax
lea ecx, [ebp - 0x224]
call fcn.110109e0
mov eax, dword [ebp - 0x228]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x228]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0x22c], eax
lea eax, [ebp - 0x1c0]
mov byte [ebp - 4], 8
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.1107d1a0
add esp, 4
mov byte [ebp - 4], 3
sub esp, 0xc
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0x178]
push eax
call fcn.1102d3c0
mov byte [ebp - 4], 9
cmp dword [ebp - 0x11c], 0
je 0x1102c44c
mov dword [ebp - 0x7c], 0xf
mov dword [ebp - 0x80], 0
mov byte [ebp - 0x90], 0
jmp 0x1102c370
mov eax, dword [ebp - 0x178]
lea ecx, [ebp - 0x178]
mov eax, dword [eax + 4]
add ecx, eax
lea eax, [ebp - 0x20]
push eax
call fcn.1100a1c0
push eax
mov byte [ebp - 4], 0xb
call fcn.11009e30
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x1102c3b5
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x1102c3b5
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov byte [ebp - 4], 0xa
mov ecx, esi
mov eax, dword [esi]
push 0xa
mov eax, dword [eax + 0x20]
call eax
mov byte [ebp - 0x18], al
lea edx, [ebp - 0x90]
push dword [ebp - 0x18]
lea ecx, [ebp - 0x178]
call fcn.110128c0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x1102c430
cmp dword [ebp - 0xa0], 0x10
lea eax, [ebp - 0xb4]
lea edx, [ebp - 0x54]
cmovae eax, dword [ebp - 0xb4]
lea ecx, [ebp - 0x90]
cmp dword [ebp - 0x40], 0x10
push eax
cmovae edx, dword [ebp - 0x54]
call fcn.1102be40
test al, al
je 0x1102c370
lea eax, [ebp - 0x90]
mov ecx, 0x110e4618
push eax
call fcn.11012600
jmp 0x1102c370
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x7c]
cmp edx, 0x10
jb 0x1102c471
mov ecx, dword [ebp - 0x90]
inc edx
push 1
call fcn.11004ac0
jmp 0x1102c471
cmp dword [ebp - 0x28], 0x10
lea esi, [ebp - 0x3c]
cmovae esi, dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esi + 2]
push eax
push 1
push str.Error_opening__s_for_read:_0x_x_n
call fcn.1100ff40
add esp, 0x10
mov edi, dword [0x110e461c]
mov eax, 0x2aaaaaab
mov esi, dword [0x110e4618]
mov ecx, edi
sub ecx, esi
mov ebx, 0
imul ecx
mov dword [ebp - 0x18], ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1c], eax
je 0x1102c570
lea ecx, [eax - 1]
xor edx, edx
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0x14], edx
cmp ecx, ebx
jbe 0x1102c558
lea eax, [ecx + ecx*2]
shl eax, 3
sub ecx, ebx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], ecx
jmp 0x1102c4d0
cmp dword [edx + esi + 0x14], 0x10
lea edi, [edx + esi]
lea ecx, [eax + esi]
jb 0x1102c4e4
mov eax, dword [edi]
mov dword [ebp - 0x58], eax
jmp 0x1102c4e7
mov dword [ebp - 0x58], edi
cmp dword [ecx + 0x14], 0x10
lea eax, [ecx + 0x10]
mov dword [ebp - 0xb8], eax
jb 0x1102c4f8
mov ecx, dword [ecx]
mov edx, dword [eax]
mov ebx, dword [edi + 0x10]
cmp edx, ebx
mov eax, ebx
cmovb eax, edx
mov edx, dword [ebp - 0x58]
push eax
call fcn.1100c510
add esp, 4
test eax, eax
jne 0x1102c53a
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ecx]
cmp eax, ebx
jb 0x1102c53a
ja 0x1102c53a
cmp dword [edi + 0x14], 0x10
mov dword [edi + 0x10], 0
jb 0x1102c531
mov edi, dword [edi]
mov byte [edi], 0
mov esi, dword [0x110e4618]
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x14]
sub eax, 0x18
sub dword [ebp - 0x60], 1
mov dword [ebp - 0x5c], eax
jne 0x1102c4d0
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x1c]
inc ebx
add edx, 0x18
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edx
cmp ebx, eax
jb 0x1102c4b1
mov edi, dword [0x110e461c]
cmp byte [0x110c6683], 0
je 0x1102c59f
test byte [0x110c66ec], 1
je 0x1102c59f
push 1
mov edx, 1
mov ecx, str.Loading_extra_patches:
call fcn.11011060
mov edi, dword [0x110e461c]
mov esi, dword [0x110e4618]
cmp esi, edi
je 0x1102c5c9
cmp dword [esi + 0x14], 0x10
jb 0x1102c5ad
mov eax, dword [esi]
jmp 0x1102c5af
mov eax, esi
add eax, 2
push eax
push 1
push str.___s_n
call fcn.1100ff40
add esi, 0x18
add esp, 0xc
cmp esi, edi
jne 0x1102c5a3
mov eax, dword [ebp - 0x178]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x178], 0x110b5750
mov eax, dword [ebp - 0x178]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x17c], eax
lea ecx, [ebp - 0x168]
call fcn.110109e0
mov eax, dword [ebp - 0x178]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x178], 0x110b3b94
mov eax, dword [ebp - 0x178]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0x17c], eax
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 0xd
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.1107d1a0
mov edx, dword [ebp - 0x28]
add esp, 4
cmp edx, 0x10
jb 0x1102c652
mov ecx, dword [ebp - 0x3c]
inc edx
push 1
call fcn.11004ac0
mov edx, dword [ebp - 0xa0]
mov dword [ebp - 0x28], 0xf
mov dword [ebp - 0x2c], 0
mov byte [ebp - 0x3c], 0
cmp edx, 0x10
jb 0x1102c67d
mov ecx, dword [ebp - 0xb4]
inc edx
push 1
call fcn.11004ac0
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0xa0], 0xf
mov dword [ebp - 0xa4], 0
mov byte [ebp - 0xb4], 0
cmp edx, 0x10
jb 0x1102c6ab
mov ecx, dword [ebp - 0x54]
inc edx
push 1
call fcn.11004ac0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret