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

Disassembly:
push 0xffffffffffffffff
push 0x40cf92
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2a0
push ebx
push esi
lea ecx, [esp + 0x5c]
call fcn.004035e0
xor ebx, ebx
lea ecx, [esp + 0x48]
mov dword [esp + 0x2b0], ebx
call section..text
push 0x410100
push 0x4100f4
push 0x4100d8
push 0x80000002
lea ecx, [esp + 0x90]
mov byte [esp + 0x2c0], 1
call fcn.00404d10
mov esi, dword [esp + 0x2c0]
lea eax, [esp + 0x80]
push esi
push 0x410158
push eax
mov byte [esp + 0x2bc], 2
call fcn.00405160
add esp, 0xc
lea ecx, [esp + 0x5c]
push esi
call fcn.00403960
lea ecx, [esp + 0x48]
call fcn.00401aa0
mov esi, eax
lea ecx, [esp + 0x80]
push esi
push 0x410138
push ecx
mov dword [esp + 0x2c], esi
call fcn.00405160
add esp, 0xc
cmp esi, ebx
jle 0x4054a3
mov dl, byte [esp + 0xb]
push edi
push ebp
push ebx
lea ecx, [esp + 0x30]
mov byte [esp + 0x30], dl
call fcn.00402160
mov al, byte [esp + 0x13]
push ebx
lea ecx, [esp + 0x40]
mov byte [esp + 0x2bc], 3
mov byte [esp + 0x40], al
call fcn.00402160
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2b8], 4
push ecx
push ebx
lea ecx, [esp + 0x58]
call fcn.00401ad0
lea edx, [esp + 0x64]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.00405500
mov ebp, 1
add esp, 8
cmp esi, ebp
jle 0x40543f
mov cl, byte [esp + 0x13]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x18], cl
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
lea edx, [esp + 0x18]
push ebp
push edx
push 0x410134
lea ecx, [esp + 0x70]
mov byte [esp + 0x2c4], 5
mov dword [esp + 0x20], ebx
call fcn.004041a0
test eax, eax
je 0x40535c
mov dword [esp + 0x14], ebp
cmp esi, ebp
jle 0x40540e
mov esi, dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov edi, dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x50]
push eax
push ebp
call fcn.00401ad0
cmp dword [esp + 0x14], ebx
je 0x4053ef
push 1
push 0x410134
lea ecx, [esp + 0x6c]
call fcn.00403fe0
lea ecx, [esp + 0x1a8]
push ecx
push 0x104
call esi
lea edx, [esp + 0xa0]
lea eax, [esp + 0x1a8]
push edx
push ebx
push 0x410130
push eax
call edi
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jne 0x4053c9
mov eax, 0x40e0fc
lea ecx, [esp + 0xa0]
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea edx, [esp + 0xa0]
lea ecx, [esp + 0x64]
push edx
push 0x410134
call fcn.00403e60
lea eax, [esp + 0x64]
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.00405500
mov eax, dword [esp + 0x30]
add esp, 8
inc ebp
cmp ebp, eax
jl 0x405370
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x405433
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x40542a
cmp al, 0xff
je 0x40542a
dec al
mov byte [ecx], al
jmp 0x405433
push ecx
call fcn.00405ea0
add esp, 4
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x405464
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x40545b
cmp al, 0xff
je 0x40545b
dec al
mov byte [ecx], al
jmp 0x405464
push ecx
call fcn.00405ea0
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x40], ebx
cmp eax, ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
je 0x405495
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x40548c
cmp al, 0xff
je 0x40548c
dec al
mov byte [ecx], al
jmp 0x405495
push ecx
call fcn.00405ea0
add esp, 4
pop ebp
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
pop edi
lea ecx, [esp + 0x80]
mov byte [esp + 0x2b0], 1
call fcn.00404fe0
lea ecx, [esp + 0x48]
mov byte [esp + 0x2b0], bl
call fcn.00401970
lea ecx, [esp + 0x5c]
mov dword [esp + 0x2b0], 0xffffffff
call fcn.00403610
mov ecx, dword [esp + 0x2a8]
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
add esp, 0x2ac
ret 0x10