Function at 0x402e10
Capabilities:
Create directory
Get common file path
Link many functions at runtime

Disassembly:
push 0xffffffffffffffff
push 0x45aa80
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x46c180]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x46c180]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
xor ecx, ecx
mov esi, eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00443c27
add esp, 4
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea eax, [esp + 0x14]
push eax
push ebx
push ebx
push 0x466fcc
call sub.SHELL32.dll_SHGetKnownFolderPath
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov word [esp + 0x54], cx
mov edi, 7
mov ecx, eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], ebx
lea esi, [ecx + 2]
lea ecx, [ecx]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x402ea0
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x54]
call fcn.00404260
mov edx, esi
push edx
lea esi, [esp + 0x1c]
mov dword [esp + 0x7c], ebx
call fcn.004048e0
add esp, 4
push 0xffffffffffffffff
push ebx
mov ecx, 0x46d64c
mov byte [esp + 0x80], 1
call fcn.004041b0
mov ebp, 8
mov byte [esp + 0x78], bl
cmp dword [esp + 0x30], ebp
jb 0x402efd
mov eax, dword [esp + 0x1c]
push eax
call fcn.00444042
add esp, 4
xor ecx, ecx
push 0xa
mov eax, str.Fusion.dll
lea esi, [esp + 0x38]
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], ebx
mov word [esp + 0x3c], cx
call fcn.00404260
mov edx, esi
push edx
lea edi, [esp + 0x1c]
mov byte [esp + 0x7c], 2
call fcn.004049a0
add esp, 4
push 0xffffffffffffffff
push ebx
mov ecx, 0x46d668
mov byte [esp + 0x80], 3
call fcn.004041b0
cmp dword [esp + 0x30], ebp
jb 0x402f58
mov eax, dword [esp + 0x1c]
push eax
call fcn.00444042
add esp, 4
xor ecx, ecx
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], ebx
mov word [esp + 0x1c], cx
cmp dword [esp + 0x4c], ebp
jb 0x402f7e
mov edx, dword [esp + 0x38]
push edx
call fcn.00444042
add esp, 4
mov eax, dword [0x46d650]
cmp dword [0x46d664], ebp
jae 0x402f90
mov eax, 0x46d650
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov esi, dword [0x46d66c]
cmp dword [0x46d680], ebp
jae 0x402fab
mov esi, 0x46d66c
push 0x4690b0
push 0x81
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
cmp eax, ebx
je 0x40314d
mov edx, eax
mov ecx, esi
call fcn.00402c70
cmp al, bl
je 0x40314d
mov eax, dword [0x46d66c]
cmp dword [0x46d680], ebp
jae 0x402fe7
mov eax, 0x46d66c
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x46e67c], eax
cmp eax, ebx
jne 0x40300b
cmp dword [esp + 0x68], ebp
jb 0x403160
mov ecx, dword [esp + 0x54]
push ecx
jmp 0x403158
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 1
push eax
call esi
mov edx, dword [0x46e67c]
push 3
push edx
mov dword [0x46e670], eax
call esi
mov dword [0x46e66c], eax
mov eax, dword [0x46e67c]
push 0xa
push eax
call esi
mov ecx, dword [0x46e67c]
push 2
push ecx
mov dword [0x46e668], eax
call esi
mov edx, dword [0x46e67c]
push 7
push edx
mov dword [0x46e664], eax
call esi
mov dword [0x46e660], eax
mov eax, dword [0x46e67c]
push 0x12
push eax
call esi
mov ecx, dword [0x46e67c]
push 0xc
push ecx
mov dword [0x46e65c], eax
call esi
mov edx, dword [0x46e67c]
push 6
push edx
mov dword [0x46e658], eax
call esi
mov dword [0x46e654], eax
mov eax, dword [0x46e67c]
push 4
push eax
call esi
mov ecx, dword [0x46e67c]
push 0x10
push ecx
mov dword [0x46e650], eax
call esi
mov edx, dword [0x46e67c]
push 5
push edx
mov dword [0x46e64c], eax
call esi
mov dword [0x46e648], eax
mov eax, dword [0x46e67c]
push 0x11
push eax
call esi
mov ecx, dword [0x46e67c]
push 0x14
push ecx
mov dword [0x46e644], eax
call esi
mov dword [0x46e640], eax
cmp dword [0x46e670], ebx
je 0x403140
cmp dword [0x46e66c], ebx
je 0x403140
cmp dword [0x46e668], ebx
je 0x403140
cmp dword [0x46e660], ebx
je 0x403140
cmp dword [0x46e658], ebx
je 0x403140
cmp dword [0x46e654], ebx
je 0x403140
cmp dword [0x46e664], ebx
je 0x403140
cmp dword [0x46e650], ebx
je 0x403140
cmp dword [0x46e64c], ebx
je 0x403140
cmp dword [0x46e648], ebx
je 0x403140
cmp dword [0x46e644], ebx
je 0x403140
cmp eax, ebx
je 0x403140
lea esi, [esp + 0x50]
call fcn.00403ec0
mov al, 1
jmp 0x403162
mov edx, dword [0x46e67c]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [esp + 0x68], ebp
jb 0x403160
mov eax, dword [esp + 0x54]
push eax
call fcn.00444042
add esp, 4
xor al, al
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0044404d
add esp, 0x68
ret