Function at 0x461d14
Capabilities:
Check if file exists
Check os version
Get file attributes

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffff004
mov byte [0x4985a4], 0x52
mov byte [0x4985b8], 0x50
mov ebx, str..rar
push eax
add esp, 0xfffff63c
mov dword [esp], eax
xor ebp, ebp
mov edi, dword [ebp*4 + 0x4984fc]
test edi, edi
je 0x462396
push edi
lea eax, [esp + 0x20]
push eax
call fcn.00482a00
add esp, 8
push 0x2e
lea edx, [edi + 1]
push edx
call fcn.00482b3d
add esp, 8
mov edi, eax
test eax, eax
je 0x461d80
push 0x2e
lea edx, [esp + 0x21]
push edx
call fcn.00482b3d
add esp, 8
mov byte [eax], 0
lea ecx, [esp + 0x1c]
push ecx
lea eax, [ebx + 0x545]
push eax
lea edx, [esp + 0x58]
push edx
call fcn.00486578
add esp, 0xc
cmp ebp, 1
sete cl
and ecx, 1
test ebp, ebp
sete al
and eax, 1
mov byte [esp + 4], cl
mov byte [esp + 5], al
mov edx, dword [esp]
cmp byte [edx + ebp], 0
je 0x462129
lea eax, [esp + 0x1c]
call fcn.00460fcc
test al, al
jne 0x461f12
lea edx, [esp + 0x450]
push edx
lea ecx, [ebx + 4]
push ecx
push pe_nt_image_headers32
lea ecx, [ebx + 4]
lea edx, [esp + 0x28]
mov eax, 0x80000000
call fcn.00460a8c
lea eax, [esp + 0x650]
push eax
lea edx, [ebx + 4]
push edx
push pe_nt_image_headers32
lea ecx, [ebx + 0x551]
lea edx, [esp + 0x28]
mov eax, 0x80000000
call fcn.00460a8c
lea ecx, [esp + 0x850]
push ecx
lea eax, [ebx + 4]
push eax
push 0x400
lea ecx, [ebx + 0x55e]
lea edx, [esp + 0x5c]
mov eax, 0x80000000
call fcn.00460a8c
lea edx, [esp + 8]
push edx
lea ecx, [ebx + 4]
push ecx
push 0xa
lea ecx, [ebx + 0x567]
lea edx, [esp + 0x5c]
mov eax, 0x80000000
call fcn.00460a8c
mov byte [esp + 0x12], al
lea eax, [esp + 0x1c]
push eax
lea edx, [ebx + 0x69]
push edx
lea ecx, [esp + 0xc58]
push ecx
call fcn.00486578
add esp, 0xc
mov eax, 0x80000000
lea edx, [esp + 0x1c]
call fcn.00460f00
xor ecx, ecx
mov cl, al
lea edx, [ebx + 0x570]
lea eax, [esp + 0xc50]
call fcn.004609a8
lea ecx, [esp + 0x450]
lea edx, [ebx + 0x559]
lea eax, [esp + 0xc50]
call fcn.004608a8
lea ecx, [esp + 0x650]
lea edx, [ebx + 0x576]
lea eax, [esp + 0xc50]
call fcn.004608a8
cmp byte [esp + 0x850], 0
jne 0x461ef9
cmp byte [esp + 0x12], 0
je 0x461ef9
lea ecx, [ebx + 0x57e]
lea edx, [ebx + 0x548]
lea eax, [esp + 0xc50]
call fcn.004608a8
jmp 0x461f12
lea ecx, [esp + 0x850]
lea edx, [ebx + 0x548]
lea eax, [esp + 0xc50]
call fcn.004608a8
cmp byte [esp + 4], 0
je 0x461f21
lea ecx, [ebx + 0x580]
jmp 0x461f27
lea ecx, [ebx + 0x1c2]
push ecx
lea ecx, [ebx + 4]
lea edx, [esp + 0x20]
mov eax, 0x80000000
call fcn.004608b8
lea ecx, [ebx + 0x551]
lea edx, [esp + 0x1c]
mov eax, 0x80000000
call fcn.00460d38
cmp byte [esp + 5], 0
je 0x461fc6
call fcn.0040e9e0
test eax, eax
je 0x461f64
mov eax, 0x1e
jmp 0x461f69
mov eax, 0x64
mov dword [esp + 0x14], eax
xor esi, esi
cmp esi, dword [esp + 0x14]
jge 0x461fc6
push esi
lea eax, [ebx + 0x58b]
push eax
lea edx, [esp + 0xca8]
push edx
call fcn.00486578
add esp, 0xc
lea ecx, [ebx + 0x1c2]
push ecx
lea ecx, [ebx + 4]
lea edx, [esp + 0xca4]
mov eax, 0x80000000
call fcn.004608b8
lea ecx, [ebx + 0x551]
lea edx, [esp + 0xca0]
mov eax, 0x80000000
call fcn.00460d38
inc esi
cmp esi, dword [esp + 0x14]
jl 0x461f75
mov eax, dword [esp]
cmp byte [eax + 0x17], 0
je 0x46238e
cmp byte [esp + 4], 0
jne 0x461fe5
cmp byte [esp + 5], 0
je 0x46238e
lea edx, [esp + 0x50]
mov eax, 0x80000000
call fcn.00460cfc
mov dword [esp + 0xcc0], 0x94
lea edx, [esp + 0xcc0]
push edx
call sub.KERNEL32.DLL_GetVersionExA
cmp dword [esp + 0xcc4], 4
ja 0x462023
cmp dword [esp + 0xcc8], 0xa
jbe 0x4620e2
push 0x400
lea ecx, [esp + 0xd58]
push ecx
push 0
call sub.KERNEL32.DLL_GetModuleFileNameA
cmp byte [esp + 5], 0
je 0x462046
lea eax, [ebx + 0x592]
jmp 0x46204c
lea eax, [ebx + 0x59d]
push eax
lea eax, [esp + 0xd58]
call fcn.0040a924
push eax
call fcn.00482a00
add esp, 8
lea edx, [esp + 0xd54]
push edx
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0xffffffff
jne 0x4620c1
lea ecx, [ebx + 0x5a8]
push ecx
lea eax, [esp + 0xd58]
push eax
call fcn.004849c0
add esp, 8
mov esi, eax
cmp byte [esp + 5], 0
je 0x4620a8
push esi
push 0x14
push 1
push 0x4985a4
call fcn.00484eac
add esp, 0x10
jmp 0x4620ba
push esi
push 0x16
push 1
push 0x4985b8
call fcn.00484eac
add esp, 0x10
push esi
call fcn.00484510
pop ecx
lea eax, [esp + 0xd54]
lea ecx, [ebx + 0x55e]
push eax
mov eax, 0x80000000
lea edx, [esp + 0x54]
call fcn.004608b8
jmp 0x46238e
cmp byte [esp + 5], 0
je 0x462109
push 0x4985a4
push 0x14
lea ecx, [ebx + 0x5ab]
lea edx, [esp + 0x58]
mov eax, 0x80000000
call fcn.004609fc
jmp 0x46238e
push 0x4985b8
push 0x16
lea ecx, [ebx + 0x5ab]
lea edx, [esp + 0x58]
mov eax, 0x80000000
call fcn.004609fc
jmp 0x46238e
lea edx, [esp + 0x1c]
push edx
lea ecx, [ebx + 0x69]
push ecx
lea eax, [esp + 0x115c]
push eax
call fcn.00486578
add esp, 0xc
lea eax, [esp + 0x1c]
call fcn.00460fcc
test al, al
je 0x46238e
lea edx, [ebx + 0x570]
lea eax, [esp + 0x1154]
mov ecx, 1
call fcn.00460c28
test eax, eax
setne dl
and edx, 1
mov byte [esp + 0x18], dl
lea eax, [ebx + 4]
push eax
push pe_nt_image_headers32
lea ecx, [esp + 0x11ac]
lea edx, [ebx + 0x559]
lea eax, [esp + 0x115c]
call fcn.00460a70
lea edx, [ebx + 0x1c2]
push edx
lea ecx, [esp + 0x11a8]
push ecx
call fcn.00482c08
add esp, 8
test eax, eax
je 0x4621ce
lea eax, [ebx + 0x580]
push eax
lea edx, [esp + 0x11a8]
push edx
call fcn.00482c08
add esp, 8
test eax, eax
jne 0x4621d6
mov byte [esp + 0x11a4], 0
lea ecx, [ebx + 4]
push ecx
push pe_nt_image_headers32
lea ecx, [esp + 0x13ac]
lea edx, [ebx + 0x576]
lea eax, [esp + 0x115c]
call fcn.00460a70
cmp byte [esp + 0x18], 0
je 0x4622da
lea eax, [esp + 0x11a4]
lea ecx, [ebx + 4]
push eax
mov eax, 0x80000000
lea edx, [esp + 0x20]
call fcn.004608b8
cmp byte [esp + 0x13a4], 0
je 0x462244
lea edx, [esp + 0x13a4]
lea ecx, [ebx + 0x551]
push edx
lea edx, [esp + 0x20]
mov eax, 0x80000000
call fcn.004608b8
jmp 0x462258
lea ecx, [ebx + 0x551]
lea edx, [esp + 0x1c]
mov eax, 0x80000000
call fcn.00460d38
lea ecx, [ebx + 4]
push ecx
push 0x400
lea ecx, [esp + 0x15ac]
lea edx, [ebx + 0x548]
lea eax, [esp + 0x115c]
call fcn.00460a70
lea ecx, [ebx + 0x55e]
lea edx, [esp + 0x50]
mov eax, 0x80000000
call fcn.00460d38
mov al, byte [esp + 0x15a4]
test al, al
je 0x4622f6
xor edx, edx
mov dl, al
cmp edx, 0x2a
jne 0x4622bc
lea ecx, [ebx + 4]
mov eax, 0x80000000
push ecx
lea ecx, [ebx + 0x567]
lea edx, [esp + 0x54]
call fcn.004608b8
jmp 0x4622f6
lea eax, [esp + 0x15a4]
lea ecx, [ebx + 0x55e]
push eax
mov eax, 0x80000000
lea edx, [esp + 0x54]
call fcn.004608b8
jmp 0x4622f6
lea edx, [esp + 0x50]
mov eax, 0x80000000
call fcn.00460cfc
lea edx, [esp + 0x1c]
mov eax, 0x80000000
call fcn.00460cfc
cmp byte [esp + 5], 0
je 0x46238e
xor esi, esi
push esi
lea eax, [ebx + 0x58b]
push eax
lea edx, [esp + 0x19ac]
push edx
call fcn.00486578
add esp, 0xc
cmp byte [esp + 0x18], 0
je 0x462373
cmp byte [esp + 0x11a4], 0
je 0x462373
lea ecx, [esp + 0x11a4]
mov eax, 0x80000000
push ecx
lea ecx, [ebx + 4]
lea edx, [esp + 0x19a8]
call fcn.004608b8
cmp byte [esp + 0x13a4], 0
je 0x462384
lea eax, [esp + 0x13a4]
lea ecx, [ebx + 0x551]
push eax
mov eax, 0x80000000
lea edx, [esp + 0x19a8]
call fcn.004608b8
jmp 0x462384
lea edx, [esp + 0x19a4]
mov eax, 0x80000000
call fcn.00460cfc
inc esi
cmp esi, 0x64
jl 0x462303
test edi, edi
jne 0x461d4c
inc ebp
cmp ebp, 0xc
jl 0x461d3d
add esp, 0x19c4
pop ebp
pop edi
pop esi
pop ebx
ret