Function at 0xf050af5
Capabilities:
Check if file exists
Clear file content
Get common file path
Get file size
Get geographical location
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x280
mov eax, dword [0xf072008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov esi, 0x110
push esi
lea eax, [ebp - 0x114]
xor edi, edi
push eax
mov dword [ebp - 0x274], edi
mov dword [ebp - 0x270], edi
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryA]
push 0x40
mov dword [ebp - 0x268], eax
push 0xf0ae3c0
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
mov dword [0xf0ae3b0], eax
cmp eax, 0x40
jb 0xf050b5e
mov dword [0xf0ae3b0], edi
mov byte [0xf0ae3c0], 0
push esi
push edi
lea eax, [ebp - 0x114]
push eax
movzx eax, byte [ebp + 8]
push eax
call fcn.0f037d5e
cmp byte [ebp + 8], 0
mov dword [ebp - 0x27c], 0xf0ae400
jne 0xf050b8b
mov dword [ebp - 0x27c], 0xf0ae404
push ebx
push edi
push 0x80
push 3
push edi
push 1
push 0x80000000
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x280], eax
mov ebx, 0x104
cmp eax, 0xffffffff
je 0xf050be7
mov eax, dword [0xf0ae3b0]
cmp eax, edi
je 0xf050be7
cmp eax, 0x40
jae 0xf050be7
push edi
push dword [ebp - 0x280]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
mov dword [ebp - 0x260], edi
test edi, edi
je 0xf050bed
cmp edi, 0xffffffff
jne 0xf050c4d
jmp 0xf050bed
mov edi, dword [ebp - 0x260]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp eax, 2
jne 0xf050c16
push 0x21
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x114]
push eax
push 0x1fd
call fcn.0f02c9f5
jmp 0xf050c4d
call esi
push eax
push 0xf0046c8
lea eax, [ebp - 0x258]
push ebx
push eax
call fcn.0f02bf9a
add esp, 0x10
push 0x21
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x114]
push eax
push 0x1fe
call fcn.0f02c9f5
call fcn.0f02d021
lea eax, [edi + 1]
push eax
call fcn.0f005706
cmp byte [ebp + 8], 0
pop ecx
mov dword [ebp - 0x278], eax
jne 0xf050c84
push edi
mov dword [0xf0ae390], edi
call fcn.0f005706
and dword [ebp - 0x25c], 0
pop ecx
mov dword [0xf0899b0], eax
mov dword [ebp - 0x26c], eax
jmp 0xf050c89
mov eax, dword [0xf0899b0]
cmp dword [ebp - 0x278], 0
je 0xf050c9c
cmp byte [ebp + 8], 0
jne 0xf050cb6
test eax, eax
jne 0xf050cb6
push 0x21
push 0
lea eax, [ebp - 0x114]
push eax
push 0x151
call fcn.0f02c9f5
call fcn.0f02d021
push dword [ebp - 0x27c]
lea eax, [ebp - 0x264]
push eax
call fcn.0f05173f
mov esi, dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov edi, 0x152
test eax, eax
je 0xf050d0a
push 0
lea eax, [ebp - 0x268]
push eax
push dword [ebp - 0x260]
push dword [ebp - 0x278]
push dword [ebp - 0x280]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0xf050d0a
mov eax, dword [ebp - 0x260]
cmp dword [ebp - 0x268], eax
je 0xf050d47
call fcn.0f050874
test eax, eax
je 0xf050d20
push 0x21
push 0
push 0
push 0x1ff
jmp 0xf050d3d
lea eax, [ebp - 0x114]
push eax
push ebx
call esi
push 0x21
push 0
lea eax, [ebp - 0x114]
push eax
mov byte [ebp - 0xd5], 0
push edi
call fcn.0f02c9f5
call fcn.0f02d021
mov eax, dword [ebp - 0x27c]
mov eax, dword [eax]
push 0x111
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
mov dword [ebp - 0x268], eax
test eax, eax
je 0xf050d6b
cmp eax, 0x3f
jbe 0xf050d92
lea eax, [ebp - 0x114]
push eax
push ebx
call esi
push 0x21
push 0
lea eax, [ebp - 0x114]
push eax
push edi
mov byte [ebp - 0xd5], 0
call fcn.0f02c9f5
call fcn.0f02d021
mov edx, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x260]
mov byte [edx + ecx], 0
mov eax, dword [0xf0ae3b0]
cmp byte [eax + 0xf0ae3bf], 0x5c
jne 0xf050dbd
dec eax
mov dword [0xf0ae3b0], eax
mov byte [eax + 0xf0ae3c0], 0
mov ebx, edx
test ecx, ecx
je 0xf051232
cmp dword [ebp - 0x260], 0
je 0xf051232
movsx eax, byte [ebx]
push eax
call fcn.0f05ed5c
pop ecx
test eax, eax
jne 0xf050deb
inc ebx
dec dword [ebp - 0x260]
jne 0xf050dd4
cmp dword [ebp - 0x260], 0
je 0xf051232
push 3
push 0xf076b38
push ebx
call fcn.0f00d1bf
add esp, 0xc
test eax, eax
jne 0xf050e34
movsx eax, byte [ebx + 3]
push eax
call fcn.0f05ed5c
pop ecx
test eax, eax
jne 0xf050e34
mov al, byte [ebx]
test al, al
je 0xf050dc7
cmp al, 0xa
je 0xf050dc7
cmp al, 0xd
je 0xf050dc7
inc ebx
dec dword [ebp - 0x260]
jne 0xf050e1b
jmp 0xf050dc7
cmp byte [ebp + 8], 0
je 0xf050faa
push dword [ebp - 0x260]
push ebx
push 7
push str.country
call fcn.0f050814
test eax, eax
je 0xf050e7d
mov al, byte [ebx]
test al, al
je 0xf050dc7
cmp al, 0xa
je 0xf050dc7
cmp al, 0xd
je 0xf050dc7
inc ebx
dec dword [ebp - 0x260]
jne 0xf050e55
jmp 0xf050dc7
push dword [ebp - 0x260]
push ebx
push 5
push str.shell
call fcn.0f050814
mov esi, eax
test esi, esi
je 0xf0511fb
jmp 0xf050eb1
mov al, byte [esi]
test al, al
je 0xf050ebf
cmp al, 0xa
je 0xf050ebf
cmp al, 0xd
je 0xf050ebf
dec dword [ebp - 0x260]
inc esi
movsx eax, byte [esi]
push eax
call fcn.0f05ed5c
pop ecx
test eax, eax
je 0xf050e9c
push 0xc
push esi
push str._SystemRoot_
call fcn.0f00d1bf
add esp, 0xc
test eax, eax
jne 0xf050ede
push 0xc
pop eax
mov dword [ebp - 0x268], eax
jmp 0xf050f1c
mov edi, 0xf0ae3c0
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0xf050ee8
sub eax, edx
push eax
push esi
push edi
call fcn.0f00d1bf
add esp, 0xc
test eax, eax
jne 0xf050f10
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0xf050f05
sub eax, edx
jmp 0xf050f12
xor eax, eax
mov dword [ebp - 0x268], eax
test eax, eax
je 0xf050f32
push 0x15
add eax, esi
push eax
push str.System32command.com
call fcn.0f00d1bf
add esp, 0xc
test eax, eax
je 0xf050f7a
mov dword [ebp - 0x270], esi
cmp dword [ebp - 0x260], 0
je 0xf051232
mov al, byte [ebx]
test al, al
je 0xf050dc7
cmp al, 0xa
je 0xf050dc7
cmp al, 0xd
je 0xf050dc7
inc ebx
dec dword [ebp - 0x260]
jne 0xf050f45
jmp 0xf050dc7
test al, al
je 0xf050f38
cmp al, 0xa
je 0xf050f80
cmp al, 0xd
je 0xf050f80
inc esi
mov al, byte [esi]
cmp al, 0x2f
jne 0xf050f6d
mov al, byte [esi]
test al, al
je 0xf050f38
cmp al, 0xa
je 0xf050f38
cmp al, 0xd
je 0xf050f38
push 3
push 0xf076b3c
push esi
call fcn.0f00d1bf
add esp, 0xc
test eax, eax
jne 0xf050f79
mov dword [ebp - 0x274], esi
jmp 0xf050f79
push 6
push str.PROMPT
push ebx
call fcn.0f00d1bf
add esp, 0xc
test eax, eax
jne 0xf051068
mov edi, dword [ebp - 0x26c]
push str.PROMPT
push dword [0xf0ae390]
push edi
call fcn.0f050988
add edi, 7
add dword [ebp - 0x25c], 7
lea esi, [ebx + 6]
jmp 0xf050ff7
mov al, byte [esi]
test al, al
je 0xf051005
cmp al, 0xa
je 0xf051005
cmp al, 0xd
je 0xf051005
inc esi
movsx eax, byte [esi]
push eax
call fcn.0f05ed5c
pop ecx
test eax, eax
je 0xf050fe8
cmp byte [esi], 0x3d
jne 0xf051029
jmp 0xf05101a
mov al, byte [esi]
test al, al
je 0xf051059
cmp al, 0xa
je 0xf051029
cmp al, 0xd
je 0xf051029
inc esi
movsx eax, byte [esi]
push eax
call fcn.0f05ed5c
pop ecx
test eax, eax
je 0xf05100c
mov al, byte [esi]
test al, al
je 0xf051059
mov ecx, dword [ebp - 0x25c]
add ecx, 2
cmp al, 0xa
je 0xf051059
cmp al, 0xd
je 0xf051059
cmp ecx, dword [0xf0ae390]
jae 0xf051059
mov byte [edi], al
inc edi
inc esi
inc dword [ebp - 0x25c]
mov al, byte [esi]
inc ecx
test al, al
jne 0xf051038
mov byte [edi], 0
inc edi
mov dword [ebp - 0x26c], edi
jmp 0xf0511f5
push 4
push str.PATH
push ebx
call fcn.0f00d1bf
add esp, 0xc
test eax, eax
jne 0xf05112c
mov edi, dword [ebp - 0x26c]
push str.PATH
push dword [0xf0ae390]
push edi
call fcn.0f02ab71
add edi, 5
add dword [ebp - 0x25c], 5
lea esi, [ebx + 4]
jmp 0xf0510b5
mov al, byte [esi]
test al, al
je 0xf0510c3
cmp al, 0xa
je 0xf0510c3
cmp al, 0xd
je 0xf0510c3
inc esi
movsx eax, byte [esi]
push eax
call fcn.0f05ed5c
pop ecx
test eax, eax
je 0xf0510a6
cmp byte [esi], 0x3d
jne 0xf0510e7
jmp 0xf0510d8
mov al, byte [esi]
test al, al
je 0xf051059
cmp al, 0xa
je 0xf0510e7
cmp al, 0xd
je 0xf0510e7
inc esi
movsx eax, byte [esi]
push eax
call fcn.0f05ed5c
pop ecx
test eax, eax
je 0xf0510ca
mov al, byte [esi]
test al, al
je 0xf051059
mov ecx, dword [ebp - 0x25c]
add ecx, 2
cmp al, 0xa
je 0xf051059
cmp al, 0xd
je 0xf051059
cmp ecx, dword [0xf0ae390]
jae 0xf051059
mov byte [edi], al
inc edi
inc esi
inc dword [ebp - 0x25c]
mov al, byte [esi]
inc ecx
test al, al
jne 0xf0510fa
jmp 0xf051059
push 3
push 0xf076b44
push ebx
call fcn.0f00d1bf
add esp, 0xc
test eax, eax
jne 0xf0511fb
lea esi, [ebx + 3]
jmp 0xf051158
mov al, byte [esi]
test al, al
je 0xf051166
cmp al, 0xa
je 0xf051166
cmp al, 0xd
je 0xf051166
inc esi
movsx eax, byte [esi]
push eax
call fcn.0f05ed5c
pop ecx
test eax, eax
je 0xf051149
mov cl, byte [esi]
mov eax, esi
jmp 0xf05117e
cmp cl, 0xa
je 0xf051182
cmp cl, 0xd
je 0xf051182
cmp cl, 0x3d
je 0xf051182
inc eax
mov cl, byte [eax]
test cl, cl
jne 0xf05116c
mov cl, byte [eax]
test cl, cl
je 0xf0511fb
cmp cl, 0xa
je 0xf0511fb
cmp cl, 0xd
je 0xf0511fb
mov edx, dword [ebp - 0x26c]
cmp esi, eax
jae 0xf0511b0
mov ecx, eax
sub ecx, esi
add dword [ebp - 0x25c], ecx
mov cl, byte [esi]
mov byte [edx], cl
inc edx
inc esi
cmp esi, eax
jb 0xf0511a6
mov byte [edx], 0
inc edx
inc dword [ebp - 0x25c]
inc esi
mov al, byte [esi]
test al, al
je 0xf0511eb
mov ecx, dword [ebp - 0x25c]
add ecx, 2
cmp al, 0xa
je 0xf0511eb
cmp al, 0xd
je 0xf0511eb
cmp ecx, dword [0xf0ae390]
jae 0xf0511eb
mov byte [edx], al
inc edx
inc esi
inc dword [ebp - 0x25c]
mov al, byte [esi]
inc ecx
test al, al
jne 0xf0511ca
mov byte [edx], 0
inc edx
mov dword [ebp - 0x26c], edx
inc dword [ebp - 0x25c]
push dword [ebp - 0x260]
push ebx
push dword [ebp - 0x264]
call fcn.0f050a68
sub dword [ebp - 0x260], eax
push 2
push 0xf076b40
push dword [ebp - 0x264]
mov dword [ebp - 0x268], eax
add ebx, eax
call fcn.0f0508e4
jmp 0xf050dc7
cmp byte [ebp + 8], 0
je 0xf051412
push 0x3f
lea eax, [ebp - 0x154]
push eax
push 0xa
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0xf05126d
push 0xa
lea eax, [ebp - 0x154]
push 0
push eax
call fcn.0f00dfc8
add esp, 0xc
mov esi, eax
jmp 0xf051270
xor esi, esi
inc esi
call dword [sym.imp.KERNEL32.dll_GetOEMCP]
push 0xf076b40
mov ecx, str.country
push ecx
mov edi, 0xf0ae3c0
push edi
push eax
push esi
push ecx
push 0xf0046a4
mov ebx, 0x110
lea eax, [ebp - 0x114]
push ebx
push eax
call fcn.0f050a2d
lea eax, [ebp - 0x114]
add esp, 0x24
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0xf0512ad
sub eax, ecx
push eax
lea eax, [ebp - 0x114]
push eax
push dword [ebp - 0x264]
call fcn.0f0508e4
push edi
push str.System32command.com
push edi
push str.shell
push 0xf00468c
lea eax, [ebp - 0x114]
push ebx
push eax
call fcn.0f050a2d
lea eax, [ebp - 0x114]
add esp, 0x1c
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0xf0512f3
sub eax, ecx
push eax
lea eax, [ebp - 0x114]
push eax
push dword [ebp - 0x264]
call fcn.0f0508e4
mov esi, dword [ebp - 0x270]
test esi, esi
je 0xf05137a
movsx eax, byte [esi]
push eax
call fcn.0f05ed5c
pop ecx
test eax, eax
je 0xf05137a
mov eax, esi
mov al, byte [eax]
jmp 0xf051338
cmp al, 0xa
je 0xf05133c
cmp al, 0xd
je 0xf05133c
inc esi
mov al, byte [esi]
test al, al
jne 0xf05132d
mov edi, dword [ebp - 0x274]
test esi, esi
je 0xf051400
cmp dword [ebp - 0x270], 0
mov byte [esi], 0
je 0xf0513ae
call fcn.0f0523bf
push 0xf004684
push ebx
lea eax, [ebp - 0x114]
push eax
call fcn.0f050988
push 0x10d
push dword [ebp - 0x270]
jmp 0xf0513ca
mov edi, dword [ebp - 0x274]
test edi, edi
je 0xf0513aa
movsx eax, byte [edi]
push eax
call fcn.0f05ed5c
pop ecx
test eax, eax
je 0xf0513aa
movsx eax, byte [edi]
mov esi, edi
jmp 0xf05139d
inc esi
movsx eax, byte [esi]
push eax
call fcn.0f05ed5c
pop ecx
test eax, eax
jne 0xf051399
jmp 0xf051342
xor esi, esi
jmp 0xf051342
test edi, edi
je 0xf0513d7
push 0xf002d04
push ebx
lea eax, [ebp - 0x114]
push eax
call fcn.0f050988
push 0x10f
push edi
push ebx
lea eax, [ebp - 0x114]
push eax
call fcn.0f0509c2
lea eax, [ebp - 0x114]
mov byte [ebp - 5], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0xf0513e4
sub eax, edx
push eax
lea eax, [ebp - 0x114]
push eax
push dword [ebp - 0x264]
call fcn.0f050a68
push 2
push 0xf076b40
push dword [ebp - 0x264]
call fcn.0f0508e4
push dword [ebp - 0x264]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push dword [ebp - 0x264]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x280]
call esi
push dword [ebp - 0x278]
call fcn.0f00996a
cmp byte [ebp + 8], 0
pop ecx
pop ebx
jne 0xf05149b
mov esi, dword [ebp - 0x25c]
mov eax, dword [0xf0899b0]
test esi, esi
je 0xf051486
test eax, eax
je 0xf051486
cmp esi, dword [0xf0ae390]
jae 0xf051486
mov byte [eax + esi], 0
inc esi
push esi
push dword [0xf0899b0]
call fcn.0f00ca76
pop ecx
pop ecx
test eax, eax
je 0xf05149b
mov dword [0xf0899b0], eax
mov dword [0xf0ae390], esi
jmp 0xf05149b
push eax
call fcn.0f00996a
and dword [0xf0899b0], 0
and dword [0xf0ae390], 0
pop ecx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0f0057d5
leave
ret 4