Function at 0x402a50
Capabilities:
Get common file path
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xca0
push esi
push edi
lea edi, [ebp - 0xca0]
mov ecx, 0x328
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [0x420004]
xor eax, ebp
mov dword [ebp - 4], eax
push 1
push str.ExtractResources_...
call fcn.00401140
add esp, 8
mov esi, esp
lea eax, [ebp - 0x210]
push eax
push 0xfa
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp esi, esp
call fcn.004175bb
push 0x208
push 0
lea ecx, [ebp - 0x420]
push ecx
call fcn.00404770
add esp, 0xc
lea edx, [ebp - 0x210]
mov dword [ebp - 0xc4c], edx
mov eax, dword [ebp - 0xc4c]
mov dword [ebp - 0xc50], eax
mov ecx, dword [ebp - 0xc4c]
mov dx, word [ecx]
mov word [ebp - 0xc52], dx
add dword [ebp - 0xc4c], 2
cmp word [ebp - 0xc52], 0
jne 0x402acf
mov eax, dword [ebp - 0xc4c]
sub eax, dword [ebp - 0xc50]
mov ecx, dword [ebp - 0xc50]
mov dword [ebp - 0xc58], ecx
mov dword [ebp - 0xc5c], eax
lea edx, [ebp - 0x420]
add edx, 0xfffffffe
mov dword [ebp - 0xc60], edx
mov eax, dword [ebp - 0xc60]
mov cx, word [eax + 2]
mov word [ebp - 0xc62], cx
add dword [ebp - 0xc60], 2
cmp word [ebp - 0xc62], 0
jne 0x402b1d
mov edi, dword [ebp - 0xc60]
mov esi, dword [ebp - 0xc58]
mov edx, dword [ebp - 0xc5c]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x420]
mov dword [ebp - 0xc68], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc6c], ecx
mov edx, dword [ebp - 0xc6c]
mov dword [ebp - 0xc70], edx
mov eax, dword [ebp - 0xc68]
mov cx, word [eax]
mov word [ebp - 0xc72], cx
mov edx, dword [ebp - 0xc6c]
mov ax, word [ebp - 0xc72]
mov word [edx], ax
mov ecx, dword [ebp - 0xc68]
add ecx, 2
mov dword [ebp - 0xc68], ecx
mov edx, dword [ebp - 0xc6c]
add edx, 2
mov dword [ebp - 0xc6c], edx
cmp word [ebp - 0xc72], 0
jne 0x402b80
mov dword [ebp - 0x428], str.akanea_setup.exe.config
push 0x420de4
lea eax, [ebp - 0x210]
push eax
push 0x68
call fcn.00402500
add esp, 0xc
push 0x420e78
lea ecx, [ebp - 0x210]
push ecx
push 0x6a
call fcn.00402500
add esp, 0xc
push 0x420dac
lea edx, [ebp - 0x210]
push edx
push 0x6b
call fcn.00402500
add esp, 0xc
mov eax, dword [ebp - 0x428]
push eax
lea ecx, [ebp - 0x210]
push ecx
push 0x6c
call fcn.00402500
add esp, 0xc
push str.Microsoft.CompilerServices.AsyncTargetingPack.Net4.dll
lea edx, [ebp - 0x210]
push edx
push 0x6f
call fcn.00402500
add esp, 0xc
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0xc78], eax
mov ecx, dword [ebp - 0xc78]
mov dword [ebp - 0xc7c], ecx
mov edx, dword [ebp - 0xc78]
mov ax, word [edx]
mov word [ebp - 0xc7e], ax
add dword [ebp - 0xc78], 2
cmp word [ebp - 0xc7e], 0
jne 0x402c5a
mov ecx, dword [ebp - 0xc78]
sub ecx, dword [ebp - 0xc7c]
mov edx, dword [ebp - 0xc7c]
mov dword [ebp - 0xc84], edx
mov dword [ebp - 0xc88], ecx
lea eax, [ebp - 0x420]
add eax, 0xfffffffe
mov dword [ebp - 0xc8c], eax
mov ecx, dword [ebp - 0xc8c]
mov dx, word [ecx + 2]
mov word [ebp - 0xc8e], dx
add dword [ebp - 0xc8c], 2
cmp word [ebp - 0xc8e], 0
jne 0x402ca8
mov edi, dword [ebp - 0xc8c]
mov esi, dword [ebp - 0xc84]
mov eax, dword [ebp - 0xc88]
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]
push 0
push str.Config_file_:
call fcn.00401140
add esp, 8
push 1
lea ecx, [ebp - 0x420]
push ecx
call fcn.004013b0
add esp, 8
push 0x420d98
lea edx, [ebp - 0x420]
push edx
call fcn.0040661e
add esp, 8
mov dword [ebp - 0xc34], eax
cmp dword [ebp - 0xc34], 0
je 0x402d9c
mov eax, dword [ebp - 0xc34]
push eax
push 0x800
push 1
lea ecx, [ebp - 0xc2c]
push ecx
call fcn.00407e96
add esp, 0x10
mov dword [ebp - 0xc38], eax
cmp dword [ebp - 0xc38], 0
jbe 0x402d7e
push 1
call fcn.00405d62
add esp, 4
push eax
mov edx, dword [ebp - 0xc38]
push edx
push 1
lea eax, [ebp - 0xc2c]
push eax
call fcn.00406505
add esp, 0x10
jmp 0x402d2d
mov ecx, dword [ebp - 0xc34]
push ecx
call fcn.00405c6f
add esp, 4
mov edx, dword [ebp - 0xc34]
push edx
call fcn.00405e5c
add esp, 4
mov dword [ebp - 0xc3c], str._value_
mov dword [ebp - 0xc40], str.__value_
mov eax, dword [ebp - 0xc3c]
mov dword [ebp - 0xc94], eax
mov ecx, dword [ebp - 0xc94]
add ecx, 1
mov dword [ebp - 0xc98], ecx
mov edx, dword [ebp - 0xc94]
mov al, byte [edx]
mov byte [ebp - 0xc99], al
add dword [ebp - 0xc94], 1
cmp byte [ebp - 0xc99], 0
jne 0x402dcb
mov ecx, dword [ebp - 0xc94]
sub ecx, dword [ebp - 0xc98]
mov dword [ebp - 0xca0], ecx
mov edx, dword [ebp - 0xc3c]
push edx
lea eax, [ebp - 0xc2c]
push eax
call fcn.004029e0
add esp, 8
add eax, dword [ebp - 0xca0]
mov dword [ebp - 0xc44], eax
mov ecx, dword [ebp - 0xc40]
push ecx
lea edx, [ebp - 0xc2c]
push edx
call fcn.004029e0
add esp, 8
mov dword [ebp - 0xc48], eax
mov eax, dword [ebp - 0xc48]
sub eax, dword [ebp - 0xc44]
push eax
mov ecx, dword [ebp - 0xc44]
push ecx
lea edx, [ebp - 0xc2c]
push edx
call fcn.004028a0
add esp, 0xc
push eax
call fcn.00402a00
add esp, 4
mov dword [0x422054], eax
push 0
push str.ProductName_:
call fcn.00401140
add esp, 8
push 1
mov eax, dword [0x422054]
push eax
call fcn.004013b0
add esp, 8
push edx
mov ecx, ebp
push eax
lea edx, [0x402eb8]
call fcn.00417567
pop eax
pop edx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004037ab
add esp, 0xca0
cmp ebp, esp
call fcn.004175bb
mov esp, ebp
pop ebp
ret