Function at 0x403910
Capabilities:
Copy file
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push ebx
push esi
mov ebx, 0xffff
push edi
push ebx
mov dword [ebp + 8], eax
call fcn.00404180
mov edi, eax
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push eax
call fcn.00401508
add esp, 0x20
test eax, eax
je 0x403963
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
pop ecx
pop ecx
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
add esp, 0x10
cmp dword [0x40bdc0], 0
je 0x4039a4
push str.prof
push dword [ebp + 0xc]
call fcn.004045c0
push edi
push dword [ebp + 0xc]
call fcn.004045d0
add esp, 0x10
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push eax
call fcn.00401508
add esp, 0x34
test eax, eax
je 0x403a04
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
pop ecx
pop ecx
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push eax
call fcn.00401508
pop ecx
test eax, eax
pop ecx
je 0x403a28
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
pop ecx
pop ecx
lea eax, [ebp + 8]
push eax
call fcn.00401508
mov dword [0x40bec4], eax
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push eax
call fcn.00401508
add esp, 0x14
mov esi, 0xff
test eax, eax
je 0x403b29
lea eax, [ebp + 8]
push eax
call fcn.00401508
push ebx
mov dword [0x40b05c], eax
call fcn.00404180
push esi
mov dword [0x40bfe0], eax
call fcn.00404180
push ebx
xor ebx, ebx
push ebx
mov dword [0x40bfe4], eax
push dword [0x40bfe0]
call fcn.004046b0
push esi
push ebx
push dword [0x40bfe4]
call fcn.004046b0
push dword [0x40bfe0]
lea eax, [ebp + 8]
push eax
call fcn.00401481
push dword [0x40bfe4]
lea eax, [ebp + 8]
push eax
call fcn.00401481
add esp, 0x34
cmp dword [ebp + 0x18], ebx
jne 0x403aed
cmp dword [ebp + 0x14], ebx
je 0x403aed
push ebx
push 0x401738
push ebx
push 0x40b318
push dword [0x40bec8]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push dword [0x40bfe0]
call fcn.00404175
push dword [0x40bfe4]
call fcn.00404175
cmp dword [0x40bfe8], ebx
pop ecx
pop ecx
je 0x403b2b
cmp dword [ebp + 0x14], ebx
je 0x403b39
push dword [ebp + 0x10]
call fcn.00404175
push edi
call fcn.00404175
pop ecx
xor eax, eax
pop ecx
jmp 0x403d31
xor ebx, ebx
cmp dword [ebp + 0x14], ebx
je 0x403b39
cmp dword [ebp + 0x18], ebx
je 0x403d2e
lea eax, [ebp + 8]
push eax
call fcn.00401508
test eax, eax
pop ecx
je 0x403b5e
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
add esp, 0x10
lea eax, [ebp + 8]
push eax
call fcn.00401508
test eax, eax
pop ecx
je 0x403b8c
lea eax, [ebp + 8]
push eax
call fcn.0040143f
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
add esp, 0x14
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push eax
call fcn.00401508
pop ecx
test eax, eax
pop ecx
je 0x403bc4
lea eax, [ebp + 8]
push eax
call fcn.0040143f
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
add esp, 0x14
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
add esp, 0x40
push 0x40b314
push edi
call fcn.00404710
pop ecx
test eax, eax
pop ecx
jne 0x403cba
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
push esi
call fcn.00404180
add esp, 0xc
mov ebx, eax
mov dword [ebp + 0x14], ebx
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x5c
push ebx
call fcn.00404500
and byte [eax + 1], 0
push edi
push ebx
call fcn.004045d0
push esi
call fcn.00404180
add esp, 0x14
mov ebx, eax
push esi
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x5c
push ebx
call fcn.004044c0
and byte [eax + 1], 0
push 0x5c
push edi
call fcn.004044c0
add esp, 0x10
test eax, eax
je 0x403c93
inc eax
push eax
jmp 0x403c94
push edi
push ebx
call fcn.004045d0
pop ecx
pop ecx
push 0
push dword [ebp + 0x14]
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push ebx
call fcn.00404175
push dword [ebp + 0x14]
call fcn.00404175
pop ecx
xor ebx, ebx
pop ecx
cmp dword [ebp + 0x18], ebx
je 0x403d27
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push eax
call fcn.00401508
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
lea eax, [ebp + 8]
push edi
push eax
call fcn.00401481
mov ecx, dword [0x40becc]
add esp, 0x38
lea eax, [ebp + 8]
push eax
call fcn.00401250
push edi
call fcn.00404175
pop ecx
push 1
pop eax
pop edi
pop esi
pop ebx
pop ebp
ret