Function at 0x410df6
Capabilities:
Get common file path

Disassembly:
push 0x528
push 0x417e38
call fcn.00417dd4
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x534], ebx
xor edi, edi
mov dword [ebp - 0x528], edi
push 0x405994
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
je 0x410e46
push 0x4059a4
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x410e46
push edi
push edi
push 1
push edi
mov ecx, esi
call dword [0x419190]
call esi
mov dword [ebp - 4], edi
lea eax, [ebp - 0x528]
push eax
push ecx
mov edx, ebx
mov edi, dword [ebp + 8]
mov ecx, edi
call fcn.00410b24
test eax, eax
jne 0x41129a
mov ecx, 0x138
call fcn.0040de00
mov esi, eax
test esi, esi
je 0x410e85
mov ecx, esi
call fcn.00411826
and dword [esi + 0x134], 0
jmp 0x410e87
xor esi, esi
mov dword [0x418714], esi
lea eax, [edi - 1]
push eax
lea eax, [ebx + 4]
push eax
mov ecx, esi
call fcn.0040dfc7
lea edi, [esi + 0x9c]
cmp byte [edi], 0
jne 0x410ec4
push 0x26e
push 1
push 8
push 0x403ea8
push 0x20
pop ebx
push ebx
push edi
call fcn.0040dee2
add esp, 0x18
jmp 0x410ec7
push 0x20
pop ebx
cmp byte [esi + 0x7c], 0
jne 0x410ef0
mov dword [ebp - 0x52c], 0x7fffffff
lea eax, [ebp - 0x52c]
push eax
call dword [sym.imp.msvcrt.dll_ctime]
pop ecx
push eax
mov edx, ebx
lea ecx, [esi + 0x7c]
call fcn.0040de44
cmp byte [esi + 0x2c], 0
je 0x410f33
push edi
push 0x405924
push 2
call fcn.00417d8d
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fprintf]
add esp, 0xc
push 0x405958
push 2
call fcn.00417d8d
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fprintf]
push 2
call fcn.00417d8d
push eax
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
mov ecx, esi
call fcn.0040e078
mov edi, eax
mov dword [ebp - 0x528], edi
test edi, edi
jne 0x411283
cmp byte [0x41871c], al
jne 0x411260
push 5
mov ecx, esi
call fcn.0040df8c
mov ecx, esi
test eax, eax
je 0x410f6f
call fcn.0040fea2
jmp 0x411260
push 0x30
call fcn.0040df8c
test eax, eax
je 0x410f84
call fcn.00410699
jmp 0x411260
mov ebx, dword [esi + 0x68]
mov dword [ebp - 0x528], ebx
lea eax, [ebp - 0x224]
push eax
mov edi, 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
jne 0x410fea
mov esi, 0x3f8
mov dword [ebp - 0x528], esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4059d8
push edi
lea eax, [ebp - 0x120]
push eax
call fcn.004137fd
add esp, 0x10
lea eax, [ebp - 0x120]
push eax
push esi
xor edx, edx
xor ecx, ecx
call fcn.00412ab2
mov dword [ebp - 4], 0xfffffffe
mov eax, esi
jmp 0x4112f2
lea eax, [ebp - 0x120]
push eax
push 0
push 0x4059f8
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
jne 0x411092
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
xor edi, edi
mov dword [ebp - 0x530], edi
cmp edi, 5
jge 0x411057
lea eax, [ebp - 0x120]
push eax
push 0
push 0x4059f8
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
jne 0x41108c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
jmp 0x411017
test ebx, ebx
je 0x41108c
mov esi, 0x3f8
mov dword [ebp - 0x528], esi
push ebx
lea eax, [ebp - 0x224]
push eax
push 0x405a00
push 0x104
lea eax, [ebp - 0x120]
push eax
call fcn.004137fd
add esp, 0x14
jmp 0x410fcb
mov ebx, dword [ebp - 0x528]
and dword [esi + 0x68], 0
mov edx, esi
lea ecx, [ebp - 0x120]
call fcn.00411302
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x524]
push eax
lea eax, [ebp - 0x324]
push eax
lea eax, [ebp - 0x52c]
push eax
mov eax, dword [ebp - 0x534]
push dword [eax]
call dword [sym.imp.msvcrt.dll__splitpath]
push 0x405a28
push 0x405a2c
lea eax, [ebp - 0x324]
push eax
lea eax, [ebp - 0x52c]
push eax
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.msvcrt.dll__makepath]
add esp, 0x28
push 0x21
mov ecx, esi
call fcn.0040df8c
test eax, eax
je 0x41112c
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x224]
push eax
push 0x405a34
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
mov dword [ebp - 4], 0xfffffffe
xor eax, eax
jmp 0x4112f2
lea edx, [ebp - 0x120]
lea ecx, [ebp - 0x224]
call fcn.004109e3
mov edi, eax
mov dword [ebp - 0x528], edi
mov ecx, edi
call fcn.00410de0
test al, al
jne 0x41115e
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.msvcrt.dll__unlink]
pop ecx
push 0xc
mov ecx, esi
call fcn.0040df8c
test eax, eax
jne 0x411260
test edi, edi
jne 0x411283
test ebx, ebx
je 0x411260
push 0x403624
push 0x9b4
xor edx, edx
xor ecx, ecx
call fcn.00412ab2
mov dword [esi + 0x68], 1
push 0x20
pop eax
or word [esi + 0x1a], ax
mov ecx, esi
call fcn.0040fd33
cmp byte [0x41871c], 0
jne 0x411260
mov eax, 0xffef
and word [esi + 0x1a], ax
mov ax, word [esi + 0x1a]
or ax, 8
mov word [esi + 0x1a], ax
mov edx, esi
lea ecx, [ebp - 0x120]
call fcn.00411302
lea edx, [ebp - 0x120]
lea ecx, [ebp - 0x224]
call fcn.004109e3
mov edi, eax
mov dword [ebp - 0x528], edi
mov ecx, edi
call fcn.00410de0
test al, al
jne 0x411208
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.msvcrt.dll__unlink]
pop ecx
test edi, edi
jne 0x411283
mov eax, 0xfff7
and word [esi + 0x1a], ax
mov ax, word [esi + 0x1a]
or ax, 0x10
mov word [esi + 0x1a], ax
mov edx, esi
lea ecx, [ebp - 0x120]
call fcn.00411302
lea edx, [ebp - 0x120]
lea ecx, [ebp - 0x224]
call fcn.004109e3
mov edi, eax
mov dword [ebp - 0x528], edi
mov ecx, edi
call fcn.00410de0
test al, al
jne 0x411260
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.msvcrt.dll__unlink]
pop ecx
test edi, edi
jne 0x411283
cmp byte [0x41871c], 0
je 0x411283
push edi
mov edi, 0x400
push edi
xor edx, edx
xor ecx, ecx
call fcn.00412ab2
mov dword [ebp - 0x528], edi
mov eax, 0x95e
cmp edi, eax
jne 0x4112e9
push 0
push eax
xor edx, edx
xor ecx, ecx
call fcn.00412ab2
jmp 0x4112e9
mov edi, dword [ebp - 0x528]
jmp 0x4112e9
mov dword [ebp - 4], 0xfffffffe
mov eax, edi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret