Function at 0x10626b5
Capabilities:
Check if file exists
Get disk size
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x138
mov eax, dword [0x1099a38]
mov ecx, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov al, byte [esi]
cmp al, 0x61
push edi
mov dword [ebp - 0x110], esi
jl 0x10626ee
cmp al, 0x7a
jg 0x10626ee
mov dl, al
sub dl, 0x20
mov byte [ebp - 0x109], dl
jmp 0x106271b
cmp al, 0x41
jl 0x10626fe
cmp al, 0x5a
jg 0x10626fe
mov byte [ebp - 0x109], al
jmp 0x1062715
cmp al, 0x5c
jne 0x1062a87
cmp byte [esi + 1], al
jne 0x1062a87
mov byte [ebp - 0x109], al
mov dl, byte [ebp - 0x109]
cmp al, 0x5c
je 0x1062729
cmp byte [esi + 1], 0x3a
jne 0x1062a87
mov ebx, dword [ecx]
test ebx, ebx
mov dword [ebp - 0x11c], ecx
je 0x1062753
cmp byte [ebx + 4], dl
jge 0x1062746
mov dword [ebp - 0x11c], ebx
mov ebx, dword [ebx]
test ebx, ebx
jne 0x1062735
test ebx, ebx
je 0x1062753
cmp byte [ebx + 4], dl
je 0x1062a3f
push 0x130
call dword [sym.imp.msvcrt.dll_malloc]
mov ebx, eax
test ebx, ebx
pop ecx
jne 0x1062776
push 0x10200fc
call fcn.01071aad
xor eax, eax
jmp 0x1062a8a
push 0x4c
xor eax, eax
pop ecx
mov edi, ebx
rep stosd dword es:[edi], eax
mov cl, byte [ebp - 0x109]
cmp cl, 0x5c
mov byte [ebx + 4], cl
jne 0x10627ef
lea edi, [ebx + 0x2c]
mov edx, edi
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x1062796
cmp byte [edi], 0x5c
jne 0x10627d5
cmp byte [edi + 1], 0x5c
jne 0x10627d5
mov esi, dword [sym.imp.msvcrt.dll_strstr]
lea eax, [edi + 2]
push 0x10094ec
push eax
call esi
test eax, eax
pop ecx
pop ecx
je 0x10627d5
inc eax
push 0x10094ec
push eax
call esi
test eax, eax
pop ecx
pop ecx
je 0x10627d5
mov byte [eax + 1], 0
lea ecx, [ebp - 0x108]
sub ecx, edi
mov al, byte [edi]
mov byte [ecx + edi], al
inc edi
test al, al
jne 0x10627dd
mov cl, byte [ebp - 0x109]
jmp 0x106280a
mov byte [ebp - 0x108], cl
mov byte [ebp - 0x107], 0x3a
mov byte [ebp - 0x106], 0x5c
mov byte [ebp - 0x105], 0
mov al, byte [0x10f54c0]
cmp al, cl
je 0x1062820
movsx ecx, cl
movsx eax, al
add ecx, 0x20
cmp eax, ecx
jne 0x1062827
mov dword [ebx + 0x28], 1
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
test eax, eax
je 0x10628ca
mov eax, dword [ebp - 0x124]
imul eax, dword [ebp - 0x120]
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0x124]
imul eax, dword [ebp - 0x120]
and dword [ebx + 0x14], 0
push dword [ebx + 0x14]
mov dword [ebx + 0x10], eax
push eax
push 0
push dword [ebp - 0x128]
call fcn.0106c02f
push 0x41
pop ecx
mov dword [ebx + 0x10], eax
mov esi, 0x1116960
xor eax, eax
mov dword [ebx + 0x14], edx
mov edi, esi
rep stosd dword es:[edi], eax
push dword [ebx + 0x14]
movsx eax, byte [ebp - 0x109]
push dword [ebx + 0x10]
push dword [ebx + 8]
push eax
push 0x10200b8
push 0x103
push esi
call dword [sym.imp.msvcrt.dll__snprintf]
add esp, 0x1c
push esi
call fcn.01071aad
jmp 0x10628cf
mov esi, 0x1116960
mov eax, dword [ebx + 8]
test eax, eax
je 0x10628e4
cmp eax, 0x10000
ja 0x10628e4
lea ecx, [eax - 1]
test eax, ecx
je 0x1062902
mov eax, 0x8000
push eax
mov dword [ebx + 8], eax
movsx eax, byte [ebp - 0x109]
push eax
push 0x1020088
call fcn.01071ac0
add esp, 0xc
mov eax, dword [ebp - 0x110]
lea edx, [ebp - 0x108]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x1062910
lea eax, [ebp - 0x108]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1062923
sub eax, edx
lea edi, [ebp + eax - 0x108]
lea eax, [ebp - 0x108]
push eax
mov byte [edi], 0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
mov dword [ebp - 0x110], eax
je 0x1062959
test al, 0x10
jne 0x1062959
or dword [ebp - 0x110], 0xffffffff
lea eax, [ebp - 0x108]
push 0x5c
push eax
call dword [sym.imp.msvcrt.dll_strrchr]
mov edi, eax
test edi, edi
pop ecx
pop ecx
je 0x1062993
lea ecx, [ebp - 0x108]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1062979
sub ecx, edx
mov dword [ebp - 0x12c], ecx
je 0x1062993
cmp dword [ebp - 0x110], 0xffffffff
je 0x1062933
cmp byte [ebx + 4], 0x5c
jne 0x10629b4
lea edi, [ebp - 0x108]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10629a0
mov esi, 0x10094ec
movsw word es:[edi], word [esi]
mov esi, 0x1116960
push 0
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
test eax, eax
je 0x1062a33
mov eax, dword [ebx + 0x10]
cmp eax, dword [ebp - 0x118]
jne 0x10629eb
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebp - 0x114]
je 0x1062a33
push 0x41
pop ecx
push dword [ebp - 0x114]
xor eax, eax
push dword [ebp - 0x118]
mov edi, esi
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x108]
push eax
push 0x1020058
push 0x103
push esi
call dword [sym.imp.msvcrt.dll__snprintf]
add esp, 0x18
push esi
call fcn.01071aad
mov eax, dword [ebp - 0x118]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x114]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0x11c]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov dword [eax], ebx
mov ecx, dword [ebx + 8]
mov esi, dword [ebp + 0x10]
lea eax, [ecx + esi - 1]
xor edx, edx
div ecx
mov eax, ecx
sub eax, edx
lea edi, [esi + eax - 1]
mov esi, dword [ebp + 0x14]
lea eax, [ecx + esi - 1]
xor edx, edx
div ecx
mov eax, dword [ebp + 0x18]
sub ecx, edx
sub eax, 0
lea ecx, [esi + ecx - 1]
je 0x1062a81
dec eax
je 0x1062a79
dec eax
jne 0x1062a87
add dword [ebx + 0x24], edi
jmp 0x1062a87
add dword [ebx + 0x18], edi
add dword [ebx + 0x1c], ecx
jmp 0x1062a87
add dword [ebx + 0x18], edi
add dword [ebx + 0x20], ecx
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0106bc50
leave
ret 0x14