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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x55a234
push eax
mov eax, 0x30720
mov dword fs:[0], esp
call fcn.0051cbf0
push ebx
push ebp
push esi
mov esi, ecx
xor ebp, ebp
push edi
mov al, byte [esi + 0x787]
mov dword [esp + 0x10], ebp
test al, al
je 0x4f6f37
mov eax, dword [0x5b5ecc]
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x14]
push ebp
push ecx
lea ecx, [esi + 0x20]
mov dword [esp + 0x30740], ebp
call fcn.004e1180
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x10]
push edx
push eax
call fcn.004f5c80
add esp, 8
test eax, eax
jne 0x4f6f1d
mov dword [esp + 0x10], ebp
lea ecx, [esp + 0x14]
mov dword [esp + 0x30738], 0xffffffff
call fcn.00537b04
mov eax, dword [esp + 0x10]
jmp 0x4f6f41
mov eax, dword [esi + 0x78c]
mov dword [esp + 0x10], eax
cmp eax, ebp
je 0x4f6fd4
test byte [eax + 0xc], 1
je 0x4f6fd4
mov ecx, dword [eax + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4f6fd4
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x20]
add eax, 0x20
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x4f6fd4
lea ecx, [esp + 0x20]
push 0xffffffffffffffff
push ecx
lea ecx, [esp + 0x1c]
call fcn.00530e81
lea edx, [esp + 0x1c]
push str._a___d__b__Y__H:_M:_S_GMT
push edx
lea ecx, [esp + 0x1c]
call fcn.00530fb2
mov ecx, dword [esi + 0x408]
mov eax, dword [eax]
push ecx
push eax
lea ecx, [esi + 0x20]
mov dword [esp + 0x30740], 1
call fcn.004fed60
lea ecx, [esp + 0x1c]
mov dword [esp + 0x30738], 0xffffffff
call fcn.00537b04
mov byte [esi + 0x34e], 1
mov eax, dword [esi + 0x64c]
lea edi, [esi + 0x64c]
cmp eax, ebp
je 0x4f7193
push 0x437060
push 0x4f6980
push 0x10
lea edx, [esp + 0x3c]
push 0x3070
push edx
call fcn.0051d375
mov ebx, 2
push 0x8b0
mov dword [esp + 0x3073c], ebx
call fcn.005380a1
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebp
mov byte [esp + 0x30738], 3
je 0x4f704b
mov ecx, dword [esi]
lea edx, [esi + 0x42c]
push ecx
push edx
lea ecx, [esi + 0x20]
lea edx, [esp + 0x38]
push ecx
push edx
push edi
mov ecx, eax
call fcn.004df0b0
mov edi, eax
jmp 0x4f704d
xor edi, edi
lea eax, [esi + 0x14]
mov dword [esi + 0x640], edi
mov dword [edi + 0x10], eax
mov dword [edi + 0x98], eax
lea eax, [esi + 0x18]
lea ecx, [esi + 0x790]
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], ecx
mov edx, dword [esp + 0x10]
mov byte [esp + 0x30738], bl
mov dword [edi + 0x1f4], edx
mov eax, dword [esi + 0x77c]
cmp eax, ebp
je 0x4f70b4
cmp dword [esi + 0x780], ebp
je 0x4f70b4
mov eax, dword [esi + 0x414]
mov ecx, dword [esi + 0x410]
cmp eax, ebp
jl 0x4f70b4
jg 0x4f70a7
cmp ecx, ebp
jbe 0x4f70b4
push eax
push ecx
mov ecx, dword [esi + 0x640]
call fcn.004f4b60
mov eax, dword [esi + 0x770]
mov ecx, dword [esi + 0x774]
mov edx, dword [esi + 0x780]
push eax
mov eax, dword [esi + 0x77c]
push ecx
push edx
mov dl, byte [esi + 0x76c]
xor ecx, ecx
push eax
test dl, dl
mov edx, dword [esi + 0x408]
sete cl
push ecx
push edx
mov ecx, edi
call fcn.004f4890
cmp eax, ebp
mov dword [esi + 0x768], eax
jne 0x4f7158
mov eax, dword [esi + 8]
mov edx, dword [edi]
mov ecx, edi
mov dword [edi + 0x1d0], eax
call dword [edx + 8]
mov ecx, esi
mov dword [esi + 0x768], eax
call fcn.004fb0e0
mov ecx, dword [esi + 0x640]
mov eax, dword [ecx + 0x218]
mov edx, dword [ecx + 0x21c]
mov dword [esi + 0x418], eax
mov dword [esi + 0x41c], edx
mov edx, dword [ecx + 0x210]
mov ebp, dword [ecx + 0x214]
mov eax, edx
mov ebx, ebp
or eax, ebx
je 0x4f7151
mov dword [esi + 0x410], edx
mov dword [esi + 0x414], ebp
call fcn.004f4af0
xor ebp, ebp
cmp edi, ebp
mov dword [esi + 0x640], ebp
je 0x4f7172
mov ecx, edi
call fcn.004df160
push edi
call fcn.005380ca
add esp, 4
push 0x437060
push 0x10
lea eax, [esp + 0x38]
push 0x3070
mov dword [esp + 0x30744], 0xffffffff
push eax
jmp 0x4f73b0
push fcn.004d51e0
push fcn.004d4fd0
push 0x10
lea ecx, [esp + 0x3c]
push 0x3070
push ecx
call fcn.0051d375
mov ebx, 4
push 0x8b0
mov dword [esp + 0x3073c], ebx
call fcn.005380a1
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebp
mov byte [esp + 0x30738], 5
je 0x4f71f6
mov edx, dword [esi]
lea ecx, [esi + 0x42c]
push edx
push ecx
lea edx, [esi + 0x20]
lea ecx, [esp + 0x38]
push edx
push ecx
push edi
mov ecx, eax
call fcn.004df0b0
mov edi, eax
jmp 0x4f71f8
xor edi, edi
lea eax, [esi + 0x14]
mov dword [esi + 0x640], edi
mov dword [edi + 0x10], eax
mov dword [edi + 0x98], eax
lea edx, [esi + 0x18]
lea eax, [esi + 0x790]
mov dword [edi + 0x14], edx
mov dword [edi + 0x18], eax
mov ecx, dword [esp + 0x10]
mov byte [esp + 0x30738], bl
mov dword [edi + 0x1f4], ecx
mov eax, dword [esi + 0x77c]
cmp eax, ebp
je 0x4f725f
cmp dword [esi + 0x780], ebp
je 0x4f725f
mov eax, dword [esi + 0x414]
mov ecx, dword [esi + 0x410]
cmp eax, ebp
jl 0x4f725f
jg 0x4f7252
cmp ecx, ebp
jbe 0x4f725f
push eax
push ecx
mov ecx, dword [esi + 0x640]
call fcn.004f4b60
mov edx, dword [esi + 0x770]
mov eax, dword [esi + 0x774]
mov ecx, dword [esi + 0x780]
push edx
mov edx, dword [esi + 0x77c]
push eax
push ecx
mov cl, byte [esi + 0x76c]
xor eax, eax
push edx
test cl, cl
mov ecx, dword [esi + 0x408]
sete al
push eax
push ecx
mov ecx, edi
call fcn.004f4890
cmp eax, ebp
mov dword [esi + 0x768], eax
jne 0x4f737a
mov edx, dword [esi + 8]
mov eax, dword [edi]
mov ecx, edi
mov dword [edi + 0x1d0], edx
call dword [eax + 8]
cmp eax, 0x7563
mov dword [esi + 0x768], eax
jne 0x4f7324
cmp edi, ebp
mov dword [esi + 0x640], ebp
je 0x4f72dc
mov ecx, edi
call fcn.004df160
push edi
call fcn.005380ca
add esp, 4
mov eax, dword [esp + 0x10]
mov dword [esi + 0x768], ebp
cmp eax, ebp
je 0x4f72f3
push eax
call fcn.005380ca
add esp, 4
mov ecx, esi
call fcn.004f6400
push fcn.004d51e0
push 0x10
lea ecx, [esp + 0x38]
push 0x3070
push ecx
mov esi, eax
mov dword [esp + 0x30748], 0xffffffff
call fcn.0051d281
mov eax, esi
jmp 0x4f753a
mov ecx, esi
call fcn.004fb0e0
mov ecx, dword [esi + 0x640]
mov eax, dword [ecx + 0x218]
mov edx, dword [ecx + 0x21c]
mov dword [esi + 0x418], eax
mov dword [esi + 0x41c], edx
mov edx, dword [ecx + 0x210]
mov ebp, dword [ecx + 0x214]
mov eax, edx
mov ebx, ebp
or eax, ebx
je 0x4f7369
mov dword [esi + 0x410], edx
mov dword [esi + 0x414], ebp
mov eax, dword [esi + 0x408]
test eax, eax
je 0x4f7378
call fcn.004f4af0
xor ebp, ebp
cmp edi, ebp
mov dword [esi + 0x640], ebp
je 0x4f7394
mov ecx, edi
call fcn.004df160
push edi
call fcn.005380ca
add esp, 4
push fcn.004d51e0
push 0x10
lea edx, [esp + 0x38]
push 0x3070
mov dword [esp + 0x30744], 0xffffffff
push edx
call fcn.0051d281
cmp dword [esi + 0x778], ebp
jne 0x4f741f
cmp dword [esi + 0x768], ebp
jne 0x4f741f
mov al, byte [esi + 0x346]
test al, al
je 0x4f741f
mov al, byte [esi + 0x347]
test al, al
jne 0x4f741f
cmp dword [esi + 0x1c0], ebp
je 0x4f73e6
mov eax, dword [esi + 0x54]
jmp 0x4f73e9
mov eax, dword [esi + 0x50]
push eax
mov ecx, esi
call fcn.004f7560
test al, al
jne 0x4f741f
mov byte [esi + 0x346], al
mov eax, dword [esp + 0x10]
cmp eax, ebp
mov byte [esi + 0x347], 1
je 0x4f7413
push eax
call fcn.005380ca
add esp, 4
mov ecx, esi
call fcn.004f6eb0
jmp 0x4f753a
mov ebp, dword [esp + 0x10]
xor ebx, ebx
cmp ebp, ebx
je 0x4f752d
cmp dword [esi + 0x768], 0x7573
jne 0x4f751c
cmp dword [esi + 0x414], ebx
jg 0x4f74e8
jl 0x4f7457
cmp dword [esi + 0x410], ebx
ja 0x4f74e8
mov eax, dword [ebp + 8]
push ebx
push ebx
push 3
push ebx
push 1
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x4f74e4
lea ecx, [esp + 0x18]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esi + 0x410], eax
mov dword [esi + 0x414], ebx
cmp dword [esi + 0x410], 0xffffffff
jne 0x4f74b3
mov eax, ebx
cmp eax, ebx
jne 0x4f74b3
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x4f74b3
mov dword [esi + 0x410], ebx
mov dword [esi + 0x414], ebx
jmp 0x4f74dd
mov edx, dword [esp + 0x18]
push 1
push ebx
push ebx
push edx
call fcn.0051ec30
mov ecx, dword [esi + 0x410]
add ecx, eax
mov dword [esi + 0x410], ecx
mov eax, dword [esi + 0x414]
adc eax, edx
mov dword [esi + 0x414], eax
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebp, dword [esp + 0x10]
mov edx, dword [ebp + 0x48]
cmp edx, ebx
je 0x4f7516
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4f7516
push edx
lea eax, [esi + 0x350]
push 0x597ddc
push eax
call fcn.0053091a
mov ebp, dword [esp + 0x1c]
add esp, 0xc
mov dword [esi + 0x768], ebx
cmp ebp, dword [esi + 0x78c]
je 0x4f752d
push ebp
call fcn.005380ca
add esp, 4
mov ecx, esi
call fcn.004f8740
mov eax, dword [esi + 0x768]
mov ecx, dword [esp + 0x30730]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x3072c
ret