Function at 0x100501c0
Capabilities:
Accept command line arguments
Check if file exists
Get file attributes
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5ac
push esi
push edi
lea ecx, [ebp - 0x5ac]
call fcn.1003a3c0
lea ecx, [ebp - 0xcc]
call fcn.1003a3c0
lea ecx, [ebp - 0xb4]
call fcn.1003a3c0
lea ecx, [ebp - 0x88]
call fcn.1003a3c0
lea ecx, [ebp - 0x9c]
call fcn.1003a4b0
lea ecx, [ebp - 0x64]
call fcn.1003a4b0
lea ecx, [ebp - 0x70]
call fcn.1003a4b0
lea eax, [ebp - 0xb4]
push eax
lea ecx, [ebp - 0x88]
push ecx
call fcn.1003d980
add esp, 8
movzx edx, al
test edx, edx
jne 0x10050238
mov dword [ebp - 0xc], 1
jmp 0x1005023f
mov dword [ebp - 0xc], 0
mov eax, dword [0x10001b20]
imul eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0xc]
jl 0x10050256
mov dword [ebp - 0x10], 1
jmp 0x1005025d
mov dword [ebp - 0x10], 0
mov edx, dword [0x10001b18]
mov ecx, dword [0x10001b14]
sar edx, cl
cmp dword [ebp - 0x10], edx
jle 0x10050278
lea ecx, [ebp - 0x64]
call fcn.1003d490
lea ecx, [ebp - 0x64]
call fcn.1003d490
lea ecx, [ebp - 0x70]
call fcn.1003d490
push 0x100010b0
mov ecx, 0x100010bc
call fcn.1003e690
mov ecx, 0x100690f0
call fcn.1003d940
cmp eax, 0x1b
jae 0x100502f7
push 0x100690d8
lea eax, [ebp - 0xb4]
push eax
push 0x10069180
lea ecx, [ebp - 0xfc]
push ecx
call fcn.1003c340
add esp, 0xc
push eax
lea edx, [ebp - 0xe4]
push edx
call fcn.1003d9a0
add esp, 0xc
push eax
mov ecx, 0x100690f0
call fcn.1003e650
lea ecx, [ebp - 0xe4]
call fcn.1003a6f0
lea ecx, [ebp - 0xfc]
call fcn.1003a6f0
mov eax, dword [0x10001b38]
add eax, dword [0x10001b44]
je 0x1005035e
mov ecx, 0x10069120
call fcn.1003d470
mov dword [ebp - 0x24], eax
push 0x10030840
lea ecx, [ebp - 0x114]
call fcn.1003a330
mov ecx, eax
call fcn.1003d470
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x24]
push ecx
mov edx, dword [ebp - 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
mov esi, eax
movsd xmm0, qword [0x10030f60]
call fcn.1005b410
cvttsd2si eax, xmm0
sub eax, esi
mov dword [0x10001b24], eax
lea ecx, [ebp - 0x114]
call fcn.1003a6f0
push 0x100010d4
mov ecx, 0x100010d4
call fcn.1003e690
mov ecx, dword [ebp + 0x24]
push ecx
mov edx, dword [0x10001b24]
push edx
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [0x10001b10]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [0x10001b3c]
push eax
mov ecx, dword [0x10001b34]
push ecx
push 0x10069138
lea edx, [ebp - 0x144]
push edx
call sym.desktop.d_lipped
add esp, 0x24
mov ecx, eax
call fcn.1003d470
mov dword [ebp - 0x30], eax
push 0x48
push 0
lea eax, [ebp - 0x12c]
push eax
mov ecx, 0x10069090
call fcn.10041c40
mov ecx, eax
call fcn.1003d470
mov dword [ebp - 0x34], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, eax
mov ecx, 0x10069168
call fcn.1003d470
push eax
call dword [sym.imp.SHLWAPI.dll_StrToIntA]
mov edi, eax
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x34]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
add eax, edi
sub eax, esi
mov dword [ebp - 0x8c], eax
lea ecx, [ebp - 0x12c]
call fcn.1003a6f0
lea ecx, [ebp - 0x144]
call fcn.1003a6f0
call fcn.10057709
mov esi, eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
add esi, eax
push 0x59
push 0
lea eax, [ebp - 0x15c]
push eax
mov ecx, 0x100690d8
call fcn.10041c40
mov ecx, eax
call fcn.1003d470
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
xor esi, eax
mov dword [ebp - 0x3c], esi
mov ecx, dword [0x10001b30]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
add edx, dword [ebp - 0x3c]
mov dword [0x10001b30], edx
lea ecx, [ebp - 0x15c]
call fcn.1003a6f0
mov ecx, 0x10069168
call fcn.1003d940
cmp eax, 0xaa
jae 0x100504d3
push 0x10069150
push 0x100690f0
push 0x10069138
lea eax, [ebp - 0x18c]
push eax
call fcn.1003c340
add esp, 0xc
push eax
lea ecx, [ebp - 0x174]
push ecx
call fcn.1003d9a0
add esp, 0xc
push eax
mov ecx, 0x10069168
call fcn.1003e650
lea ecx, [ebp - 0x174]
call fcn.1003a6f0
lea ecx, [ebp - 0x18c]
call fcn.1003a6f0
lea ecx, [ebp - 0x64]
call fcn.1003d490
push 0x100010b0
mov ecx, 0x100010d4
call fcn.1003e690
mov ecx, 0x100691c8
call fcn.1003d940
cmp eax, 0xa5
jae 0x1005052a
push 0x100690d8
push 0x10069180
lea edx, [ebp - 0x1a4]
push edx
call fcn.1003c340
add esp, 0xc
push eax
mov ecx, 0x100691c8
call fcn.1003e650
lea ecx, [ebp - 0x1a4]
call fcn.1003a6f0
mov dword [ebp - 4], 0
jmp 0x1005053c
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, 0x100010c8
call fcn.10041c10
cmp dword [ebp - 4], eax
jae 0x100506e9
push 0x1003084c
lea ecx, [ebp - 0x30c]
call fcn.1003a330
push 0x10030874
lea ecx, [ebp - 0x2f4]
call fcn.1003a330
push 0x10030894
lea ecx, [ebp - 0x2dc]
call fcn.1003a330
push 0x100308a8
lea ecx, [ebp - 0x2c4]
call fcn.1003a330
push 0x100308b0
lea ecx, [ebp - 0x2ac]
call fcn.1003a330
push 0x100308c8
lea ecx, [ebp - 0x294]
call fcn.1003a330
push 0x100308d4
lea ecx, [ebp - 0x27c]
call fcn.1003a330
push 0x100308fc
lea ecx, [ebp - 0x264]
call fcn.1003a330
push 0x10030914
lea ecx, [ebp - 0x24c]
call fcn.1003a330
push 0x1003091c
lea ecx, [ebp - 0x234]
call fcn.1003a330
push 0x1003092c
lea ecx, [ebp - 0x21c]
call fcn.1003a330
push 0x10030930
lea ecx, [ebp - 0x204]
call fcn.1003a330
push 0x10030940
lea ecx, [ebp - 0x1ec]
call fcn.1003a330
push 0x10030954
lea ecx, [ebp - 0x1d4]
call fcn.1003a330
push 0x10030978
lea ecx, [ebp - 0x1bc]
call fcn.1003a330
lea ecx, [ebp - 0x1bc]
call fcn.1003a6f0
lea ecx, [ebp - 0x1d4]
call fcn.1003a6f0
lea ecx, [ebp - 0x1ec]
call fcn.1003a6f0
lea ecx, [ebp - 0x204]
call fcn.1003a6f0
lea ecx, [ebp - 0x21c]
call fcn.1003a6f0
lea ecx, [ebp - 0x234]
call fcn.1003a6f0
lea ecx, [ebp - 0x24c]
call fcn.1003a6f0
lea ecx, [ebp - 0x264]
call fcn.1003a6f0
lea ecx, [ebp - 0x27c]
call fcn.1003a6f0
lea ecx, [ebp - 0x294]
call fcn.1003a6f0
lea ecx, [ebp - 0x2ac]
call fcn.1003a6f0
lea ecx, [ebp - 0x2c4]
call fcn.1003a6f0
lea ecx, [ebp - 0x2dc]
call fcn.1003a6f0
lea ecx, [ebp - 0x2f4]
call fcn.1003a6f0
lea ecx, [ebp - 0x30c]
call fcn.1003a6f0
jmp 0x10050533
push 0x100690a8
lea ecx, [ebp - 0xcc]
push ecx
call fcn.1003d980
add esp, 8
movzx edx, al
test edx, edx
jne 0x1005070d
mov dword [ebp - 0x14], 1
jmp 0x10050714
mov dword [ebp - 0x14], 0
push 0x100691c8
push 0x100690a8
call fcn.1003d980
add esp, 8
movzx eax, al
test eax, eax
jne 0x10050736
mov dword [ebp - 0x18], 1
jmp 0x1005073d
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x18]
jle 0x1005074e
mov dword [ebp - 0x1c], 1
jmp 0x10050755
mov dword [ebp - 0x1c], 0
push 0x100691c8
lea edx, [ebp - 0x88]
push edx
call fcn.1003d980
add esp, 8
movzx eax, al
test eax, eax
jne 0x10050779
mov dword [ebp - 0x20], 1
jmp 0x10050780
mov dword [ebp - 0x20], 0
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x20]
jg 0x100507db
mov ecx, dword [ebp + 0x20]
call fcn.1003d470
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp + 0xc]
call fcn.1003d470
mov dword [ebp - 0x44], eax
mov ecx, 0x10069168
call fcn.1003d470
push eax
call dword [sym.imp.SHLWAPI.dll_StrToIntA]
mov esi, eax
mov edx, dword [ebp - 0x40]
push edx
mov eax, dword [ebp - 0x44]
push eax
call fcn.1005b195
add esp, 8
mov edi, eax
push 0
push 0x10030998
mov ecx, dword [ebp + 0x1c]
call fcn.10040970
xor eax, edi
xor eax, esi
mov dword [0x10001b3c], eax
lea ecx, [ebp - 0x88]
call fcn.1003d940
cmp eax, 0x78
jae 0x1005083d
push 0x100691c8
push 0x10069180
lea ecx, [ebp - 0xcc]
push ecx
lea edx, [ebp - 0x33c]
push edx
call fcn.1003c340
add esp, 0xc
push eax
lea eax, [ebp - 0x324]
push eax
call fcn.1003d9a0
add esp, 0xc
push eax
lea ecx, [ebp - 0x88]
call fcn.1003e650
lea ecx, [ebp - 0x324]
call fcn.1003a6f0
lea ecx, [ebp - 0x33c]
call fcn.1003a6f0
mov dword [ebp - 8], 0
jmp 0x1005084f
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
lea ecx, [ebp - 0x70]
call fcn.10041c10
cmp dword [ebp - 8], eax
jae 0x10050a81
push 0x1003099c
lea ecx, [ebp - 0x51c]
call fcn.1003a330
push 0x100309b4
lea ecx, [ebp - 0x504]
call fcn.1003a330
push 0x100309dc
lea ecx, [ebp - 0x4ec]
call fcn.1003a330
push 0x10030a04
lea ecx, [ebp - 0x4d4]
call fcn.1003a330
push 0x10030a10
lea ecx, [ebp - 0x4bc]
call fcn.1003a330
push 0x10030a38
lea ecx, [ebp - 0x4a4]
call fcn.1003a330
push 0x10030a4c
lea ecx, [ebp - 0x48c]
call fcn.1003a330
push 0x10030a58
lea ecx, [ebp - 0x474]
call fcn.1003a330
push 0x10030a60
lea ecx, [ebp - 0x45c]
call fcn.1003a330
push 0x10030a70
lea ecx, [ebp - 0x444]
call fcn.1003a330
push 0x10030a7c
lea ecx, [ebp - 0x42c]
call fcn.1003a330
push 0x10030aa0
lea ecx, [ebp - 0x414]
call fcn.1003a330
push 0x10030ab4
lea ecx, [ebp - 0x3fc]
call fcn.1003a330
push 0x10030ac4
lea ecx, [ebp - 0x3e4]
call fcn.1003a330
push 0x10030adc
lea ecx, [ebp - 0x3cc]
call fcn.1003a330
push 0x10030aec
lea ecx, [ebp - 0x3b4]
call fcn.1003a330
push 0x10030afc
lea ecx, [ebp - 0x39c]
call fcn.1003a330
push 0x10030b18
lea ecx, [ebp - 0x384]
call fcn.1003a330
push 0x10030b20
lea ecx, [ebp - 0x36c]
call fcn.1003a330
push 0x10030b3c
lea ecx, [ebp - 0x354]
call fcn.1003a330
lea ecx, [ebp - 0x354]
call fcn.1003a6f0
lea ecx, [ebp - 0x36c]
call fcn.1003a6f0
lea ecx, [ebp - 0x384]
call fcn.1003a6f0
lea ecx, [ebp - 0x39c]
call fcn.1003a6f0
lea ecx, [ebp - 0x3b4]
call fcn.1003a6f0
lea ecx, [ebp - 0x3cc]
call fcn.1003a6f0
lea ecx, [ebp - 0x3e4]
call fcn.1003a6f0
lea ecx, [ebp - 0x3fc]
call fcn.1003a6f0
lea ecx, [ebp - 0x414]
call fcn.1003a6f0
lea ecx, [ebp - 0x42c]
call fcn.1003a6f0
lea ecx, [ebp - 0x444]
call fcn.1003a6f0
lea ecx, [ebp - 0x45c]
call fcn.1003a6f0
lea ecx, [ebp - 0x474]
call fcn.1003a6f0
lea ecx, [ebp - 0x48c]
call fcn.1003a6f0
lea ecx, [ebp - 0x4a4]
call fcn.1003a6f0
lea ecx, [ebp - 0x4bc]
call fcn.1003a6f0
lea ecx, [ebp - 0x4d4]
call fcn.1003a6f0
lea ecx, [ebp - 0x4ec]
call fcn.1003a6f0
lea ecx, [ebp - 0x504]
call fcn.1003a6f0
lea ecx, [ebp - 0x51c]
call fcn.1003a6f0
jmp 0x10050846
mov edx, dword [ebp + 0x28]
push edx
push 0x10069090
mov eax, dword [ebp + 0x24]
push eax
mov ecx, dword [0x10001b44]
push ecx
mov edx, dword [ebp - 0x48]
push edx
push 0x10069120
mov eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x90]
push ecx
lea edx, [ebp - 0x57c]
push edx
call sym.desktop.d_pretonic
add esp, 0x24
mov dword [ebp - 0x4c], eax
push 0x1a
push 0
lea eax, [ebp - 0x564]
push eax
mov ecx, dword [ebp - 0x4c]
call fcn.10041c40
mov dword [ebp - 0x50], eax
push 0x21
push 0
lea ecx, [ebp - 0x54c]
push ecx
mov ecx, dword [ebp - 0x50]
call fcn.10041c40
mov ecx, eax
call fcn.1003d940
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov edi, eax
push 0x10030b4c
lea ecx, [ebp - 0x534]
call fcn.1003a330
mov ecx, eax
call fcn.10040800
movzx edx, al
add edx, edi
sub edx, esi
mov dword [0x10001b28], edx
lea ecx, [ebp - 0x534]
call fcn.1003a6f0
lea ecx, [ebp - 0x54c]
call fcn.1003a6f0
lea ecx, [ebp - 0x564]
call fcn.1003a6f0
lea ecx, [ebp - 0x57c]
call fcn.1003a6f0
mov eax, dword [0x10001b24]
sub eax, dword [0x10001b44]
je 0x10050b61
push 0x100010b0
mov ecx, 0x100010d4
call fcn.1003c2b0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
push 0x10030b50
lea ecx, [ebp - 0x594]
call fcn.1003a330
mov ecx, eax
call fcn.1003d470
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
sub esi, eax
push 0x10030b58
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
add esi, eax
mov dword [ebp - 0x58], esi
mov ecx, dword [0x10001b20]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x54]
sub edx, dword [ebp - 0x58]
mov dword [0x10001b20], edx
lea ecx, [ebp - 0x594]
call fcn.1003a6f0
lea eax, [ebp - 0x88]
push eax
mov ecx, dword [ebp + 8]
call fcn.1003a220
lea ecx, [ebp - 0x70]
call fcn.1003a750
lea ecx, [ebp - 0x64]
call fcn.1003a750
lea ecx, [ebp - 0x9c]
call fcn.1003a750
lea ecx, [ebp - 0x88]
call fcn.1003a6f0
lea ecx, [ebp - 0xb4]
call fcn.1003a6f0
lea ecx, [ebp - 0xcc]
call fcn.1003a6f0
lea ecx, [ebp - 0x5ac]
call fcn.1003a6f0
mov eax, dword [ebp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret