Function at 0x40a9e0
Capabilities:
Get common file path

Disassembly:
push edi
push esi
sub esp, 0x208
lea esi, [esp + 0x104]
push 0x104
push 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
push esi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
dec eax
cmp eax, 0x103
jae 0x40aa55
mov edi, esp
push 0x104
push 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
push edi
push 0
push str.fastboot
push esi
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
je 0x40aa66
push str.wbTD
push edi
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fopen
add esp, 8
push eax
call sub.api_ms_win_crt_stdio_l1_1_0.dll__fileno
add esp, 0x20c
pop esi
pop edi
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetTempPath_failed__error__ld
call fcn.00423770
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetTempFileName_failed__error__ld
call fcn.00423770
nop word [eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x30
mov edi, dword [ebp + 8]
cmp byte [edi + 7], 0xff
jne 0x40ad02
cmp byte [edi + 8], 0x42
jne 0x40ad02
cmp byte [edi + 9], 3
jne 0x40ad02
lea ebx, [edi + 0xd]
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], 0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40ad0f
mov ecx, eax
cmp eax, 0xb
jae 0x40aaf1
mov eax, ecx
lea esi, [esp + 1]
add al, cl
test ecx, ecx
mov byte [esp], al
jne 0x40ab1e
jmp 0x40ab2d
mov dword [esp + 0x1c], ebx
mov ebx, ecx
add ebx, 0x10
and ebx, 0xfffffff0
push ebx
mov esi, ecx
call fcn.00417780
mov ecx, esi
add esp, 4
or ebx, 1
mov dword [esp + 8], eax
mov esi, eax
mov dword [esp], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 4], ecx
push ecx
push ebx
push esi
mov ebx, ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov ecx, ebx
add esp, 0xc
lea ebx, [edi + 0x20d]
mov byte [esi + ecx], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40ad16
mov ecx, eax
cmp eax, 0xb
jae 0x40ab7a
mov eax, ecx
lea esi, [esp + 0x11]
add al, cl
test ecx, ecx
mov byte [esp + 0x10], al
jne 0x40aba8
jmp 0x40abb7
mov dword [esp + 0x1c], ebx
mov ebx, ecx
add ebx, 0x10
and ebx, 0xfffffff0
push ebx
mov esi, ecx
call fcn.00417780
mov ecx, esi
add esp, 4
or ebx, 1
mov dword [esp + 0x18], eax
mov esi, eax
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
push ecx
push ebx
push esi
mov ebx, ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov ecx, ebx
add esp, 0xc
mov byte [esi + ecx], 0
movzx eax, byte [esp + 0x10]
test al, 1
je 0x40abce
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x40abe2
jmp 0x40abd4
shr eax, 1
test eax, eax
jne 0x40abe2
lea ecx, [esp + 0x10]
push str.fastboot
call fcn.0041ddc0
cmp byte [edi + 0xc], 0
jne 0x40ac3e
lea eax, [esp + 0x20]
push eax
call fcn.004794d0
add esp, 4
test byte [esp], 1
jne 0x40ac03
mov word [esp], 0
jmp 0x40ac2b
mov eax, dword [esp + 8]
mov byte [eax], 0
mov dword [esp + 4], 0
test byte [esp], 1
je 0x40ac2b
push dword [esp + 8]
call fcn.00417920
add esp, 4
mov dword [esp], 0
mov eax, dword [esp + 0x28]
movsd xmm0, qword [esp + 0x20]
mov dword [esp + 8], eax
movsd qword [esp], xmm0
mov cl, byte [esp]
mov eax, dword [esp + 8]
lea esi, [esp + 1]
and cl, 1
mov edx, eax
cmove edx, esi
cmp byte [edx], 0
jne 0x40ac6c
mov ecx, esp
push str.____________
call fcn.0041ddc0
mov cl, byte [esp]
mov eax, dword [esp + 8]
and cl, 1
test cl, cl
cmove eax, esi
test byte [esp + 0x10], 1
je 0x40ac96
mov ecx, dword [esp + 0x18]
cmp byte [0x549506], 0
jne 0x40aca3
push ecx
push eax
push str._s_t_s
call fcn.0040cfa0
add esp, 0xc
jmp 0x40acd3
lea ecx, [esp + 0x11]
cmp byte [0x549506], 0
je 0x40ac85
push ecx
push eax
push str.__22s__s
call fcn.0040cfa0
add esp, 0xc
add edi, 0x10d
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
je 0x40acd3
push edi
push 0x5221a5
call fcn.0040cfa0
add esp, 8
push 0xa
call sub.api_ms_win_crt_stdio_l1_1_0.dll_putchar
add esp, 4
test byte [esp + 0x10], 1
je 0x40acf0
push dword [esp + 0x18]
call fcn.00417920
add esp, 4
test byte [esp], 1
je 0x40ad02
push dword [esp + 8]
call fcn.00417920
add esp, 4
mov eax, 0xffffffff
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esp
call fcn.0041ce60
lea ecx, [esp + 0x10]
call fcn.0041ce60
nop
push ebx
push edi
push esi
mov edi, dword [esp + 0x10]
mov esi, 0xffffffff
cmp byte [edi + 7], 0xff
jne 0x40ad6f
cmp byte [edi + 8], 0x42
jne 0x40ad6f
cmp byte [edi + 9], 3
jne 0x40ad6f
mov ebx, dword [0x549500]
test ebx, ebx
je 0x40ad6d
lea eax, [edi + 0xd]
push eax
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
je 0x40ad6d
add edi, 0x10d
push edi
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
jne 0x40ad6f
xor esi, esi
mov eax, esi
pop esi
pop edi
pop ebx
ret