Function at 0x1007c172
Capabilities:
Accept command line arguments
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100a43db
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x100b8210]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
xor esi, esi
cmp ebx, esi
jne 0x1007c1ae
xor al, al
jmp 0x1007c5d3
push esi
push 0x100c08ec
mov edi, 0x100c0488
push edi
push esi
push ebx
call fcn.10091ce6
add esp, 0x14
cmp eax, esi
je 0x1007c1cf
mov al, 1
jmp 0x1007c5d3
push esi
push 0x100c0914
push edi
push esi
push ebx
call fcn.10091ce6
add esp, 0x14
test eax, eax
jne 0x1007c1c8
push esi
push 0x100c04c8
push edi
push esi
push ebx
call fcn.10091ce6
add esp, 0x14
mov dword [esp + 0x18], eax
cmp eax, esi
je 0x1007c1a7
push esi
push 0x100c04a8
push edi
push esi
push ebx
call fcn.10091ce6
add esp, 0x14
cmp eax, esi
je 0x1007c226
cmp dword [eax + 0x134], 5
jne 0x1007c226
cmp dword [ebp + 0x10], 4
je 0x1007c1c8
cmp dword [ebp + 0xc], esi
jg 0x1007c1c8
mov ebx, dword [ebx + 8]
cmp ebx, 2
je 0x1007c233
cmp ebx, 3
jne 0x1007c265
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.100270b4
mov dword [esp + 0x50], esi
call fcn.10027488
or dword [esp + 0x50], 0xffffffff
lea ecx, [esp + 0x2c]
mov bl, al
call fcn.1002740a
test bl, bl
jne 0x1007c1c8
cmp byte [ebp + 0x1c], 0
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
je 0x1007c421
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x1c]
call fcn.1003a6d8
push dword [eax]
call ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.10082afb
cmp dword [esp + 0x1c], esi
je 0x1007c421
push esi
push 0x100c05c4
push edi
push esi
push dword [ebp + 8]
call fcn.10091ce6
mov edi, eax
add esp, 0x14
cmp edi, esi
je 0x1007c421
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x1c]
call fcn.1003a6d8
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x54], 1
call fcn.1003a6f2
mov byte [esp + 0x50], 2
mov eax, dword [eax]
sub eax, 0x10
call fcn.10082a9f
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x50], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
call fcn.10082afb
lea esi, [esp + 0x24]
mov eax, edi
call fcn.10036a4a
mov byte [esp + 0x50], 5
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
mov edi, dword [ebp + 0x14]
push edi
push edx
push ecx
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x30]
push ecx
lea esi, [esp + 0x40]
call fcn.1004ccc5
mov byte [esp + 0x50], 7
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.10082afb
mov ecx, esi
call fcn.1004ccfb
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
test eax, eax
jns 0x1007c399
mov ebx, dword [esp + 0x20]
push eax
push dword [esp + 0x18]
mov esi, edi
push ebx
push 0x10019bf0
push 7
call fcn.10026c05
mov eax, dword [esp + 0x54]
add esp, 0x14
add eax, 0xfffffff0
call fcn.10082afb
lea eax, [ebx - 0x10]
call fcn.10082afb
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.10082afb
jmp 0x1007c1a7
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x20], 0
je 0x1007c3e1
lea ecx, [esp + 0x1c]
push ecx
call fcn.1003a6d8
push edi
mov byte [esp + 0x54], 8
call fcn.1004d241
mov esi, eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
call fcn.10082afb
cmp esi, 0xffffffff
je 0x1007c3f6
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1007c3dc
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0xc], esi
jmp 0x1007c3f6
push dword [esp + 0x14]
mov esi, edi
push 0x10019cdc
push 4
call fcn.10026c05
add esp, 0xc
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
call fcn.10082afb
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.10082afb
or dword [esp + 0x50], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.10082afb
xor esi, esi
cmp dword [ebp + 0xc], esi
je 0x1007c590
mov eax, dword [0x100b8f90]
mov ecx, 0x100b8f90
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [esp + 0x14], edi
xor ecx, ecx
mov dword [esp + 0x50], 9
mov eax, dword [edi - 8]
inc ecx
sub ecx, dword [edi - 4]
mov esi, 0x104
sub eax, esi
or eax, ecx
jge 0x1007c469
mov eax, esi
lea ecx, [esp + 0x14]
call fcn.10082950
mov edi, dword [esp + 0x14]
push esi
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
or eax, 0xffffffff
lea esi, [esp + 0x14]
call fcn.10082749
push edi
lea eax, [esp + 0x24]
push eax
call fcn.1005e2c8
lea eax, [esp + 0x20]
mov byte [esp + 0x50], 0xa
call fcn.1005ee9c
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.10082a9f
lea esi, [eax + 0x10]
mov dword [esp + 0x24], esi
lea eax, [esp + 0x24]
lea edi, [esp + 0x14]
mov byte [esp + 0x50], 0xb
call fcn.1005e434
lea eax, [esi - 0x10]
mov byte [esp + 0x50], 0xa
call fcn.10082afb
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x1c]
call fcn.1003a6d8
mov byte [esp + 0x50], 0xc
mov eax, dword [eax]
sub eax, 0x10
call fcn.10082a9f
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x50], 0xe
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.10082afb
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x20]
call fcn.1005e982
lea edi, [esp + 0x1c]
mov byte [esp + 0x50], 0xf
call fcn.1005e434
mov byte [esp + 0x50], 0xe
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
call fcn.10082afb
mov eax, edi
push eax
lea eax, [esp + 0x2c]
push eax
lea edi, [esp + 0x1c]
call fcn.1005eb8c
push dword [eax]
call ebx
mov esi, eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
call fcn.10082afb
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
call fcn.10082afb
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.10082afb
test esi, esi
je 0x1007c57f
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.10082afb
jmp 0x1007c1c8
or dword [esp + 0x50], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.10082afb
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x1c]
call fcn.1003a6d8
push 0x10
pop ecx
mov dword [esp + 0x50], ecx
mov eax, dword [eax]
sub eax, ecx
call fcn.10082a9f
lea esi, [eax + 0x10]
push esi
call ebx
lea ebx, [eax - 1]
neg ebx
sbb bl, bl
lea eax, [esi - 0x10]
inc bl
call fcn.10082afb
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
call fcn.10082afb
mov al, bl
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18