Function at 0x403740
Capabilities:
Get common file path

Disassembly:
mov eax, 0x141c
call fcn.0040fae0
mov eax, dword [0x43217c]
xor eax, esp
mov dword [esp + 0x1418], eax
push esi
mov esi, edx
push edi
mov edi, ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], esi
test esi, esi
je 0x4037a1
mov eax, esi
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x403770
sub eax, edx
sar eax, 1
je 0x4037a1
mov edx, esi
call fcn.00402350
test eax, eax
je 0x4037ba
push esi
push str.Create_Director_Fail__:___s_
mov ecx, eax
mov edx, 0x434070
call fcn.00402b70
add esp, 8
pop edi
xor al, al
pop esi
mov ecx, dword [esp + 0x1418]
xor ecx, esp
call fcn.0040800b
add esp, 0x141c
ret
push 0x800
lea eax, [esp + 0xc24]
push 0
push eax
call fcn.00409180
push 0x200
lea ecx, [esp + 0x230]
push 0
push ecx
call fcn.00409180
add esp, 0x18
lea edx, [esp + 0x220]
push edx
push 0x100
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x403812
push 0x200
push eax
lea eax, [esp + 0x228]
push eax
call fcn.00409180
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
inc eax
push eax
lea ecx, [esp + 0x224]
push ecx
push str._s_04x
lea edx, [esp + 0xc2c]
call fcn.00402980
add esp, 0xc
lea ecx, [esp + 0xc20]
call fcn.00401830
lea edx, [esp + 0xc20]
call fcn.00402350
push ebx
mov dword [esp + 0x10], 0
mov byte [esp + 0xf], 1
push ebp
lea ecx, [ecx]
push 0x200
lea edx, [esp + 0x2c]
push 0
push edx
call fcn.00409180
mov eax, dword [esp + 0x20]
push eax
push str.FILE_d
lea edx, [esp + 0x3c]
mov dword [esp + 0x2c], 0
call fcn.00403220
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x30]
push edx
mov edx, dword [edi]
push str.FILEINFO
lea ecx, [esp + 0x48]
call fcn.00403e00
mov ebx, dword [esp + 0x38]
add esp, 0x20
test eax, eax
jne 0x403a1b
push str.Retrieve_File_size_from_resource_success
mov ecx, 0x434070
call fcn.00402cb0
add esp, 4
cmp dword [ebx + 4], 0
push 0x800
push 0
je 0x403906
lea eax, [esp + 0x430]
push eax
call fcn.00409180
lea ebp, [ebx + 0x208]
push ebp
lea ecx, [esp + 0xc38]
push ecx
push 0x429df4
lea edx, [esp + 0x440]
call fcn.00402980
add esp, 0x18
jmp 0x40395a
lea edx, [esp + 0x430]
push edx
call fcn.00409180
mov eax, esi
add esp, 0xc
lea edx, [eax + 2]
jmp 0x403920
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x403920
sub eax, edx
lea ebp, [ebx + 0x208]
sar eax, 1
cmp word [esi + eax*2 - 2], 0x5c
push ebp
lea edx, [esp + 0x42c]
push esi
jne 0x40394d
push 0x42ac14
jmp 0x403952
push 0x429df4
call fcn.00402980
add esp, 0xc
push 0
push 0x80
push 4
push 0
push 1
push 0xc0000000
lea eax, [esp + 0x440]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x403a53
mov edx, dword [edi]
push esi
lea ecx, [ebx + 8]
call fcn.00404050
mov edi, eax
test edi, edi
je 0x4039b9
lea ecx, [esp + 0x28]
push ecx
push str.FILEINFO
push str.Get_resource_fail_____s__s_
mov ecx, edi
mov edx, 0x434070
call fcn.00402b70
add esp, 0xc
mov byte [esp + 0x13], 0
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esp + 0x13], 0
je 0x403a7a
cmp dword [ebx + 4], 0
je 0x4039ff
mov edx, dword [esp + 0x1c]
push 0
push edx
lea eax, [esp + 0x430]
push eax
call fcn.00426fe0
add esp, 0xc
mov ecx, 0x434070
test al, al
je 0x403a40
push ebp
push str.Extract__s_success
call fcn.00402cb0
add esp, 8
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
inc dword [esp + 0x14]
test edi, edi
jne 0x403a7a
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
jmp 0x403860
lea ecx, [esp + 0x28]
push ecx
push str.FILEINFO
push str.Get_resource_fail_____s__s_
mov ecx, eax
mov edx, 0x434070
call fcn.00402b70
add esp, 0xc
mov byte [esp + 0x13], 1
jmp 0x403a7a
lea edx, [ebx + 0x208]
push edx
push str.Extract__s_fail___
call fcn.00402cb0
jmp 0x403a72
lea eax, [esp + 0x428]
push eax
push str.Create_file_fail_____s_
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov edx, 0x434070
call fcn.00402b70
mov byte [esp + 0x1b], 0
add esp, 8
test ebx, ebx
je 0x403a85
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea ecx, [esp + 0xc28]
call fcn.00401830
mov ecx, dword [esp + 0x1428]
mov al, byte [esp + 0x13]
pop ebp
pop ebx
pop edi
pop esi
xor ecx, esp
call fcn.0040800b
add esp, 0x141c
ret