Function at 0x4a0b80
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x4b3f18
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x4db040]
xor eax, esp
mov dword [esp + 0x3c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4db040]
xor eax, esp
push eax
lea eax, [esp + 0x54]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x64]
push 0
push 0
mov ebx, ecx
push 0x4c45b0
mov dword [esp + 0x28], ebx
call fcn.004a20c4
mov esi, eax
mov eax, dword [ebp]
mov edx, dword [eax + 0x30]
push 0
push esi
mov ecx, ebp
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x38]
push 0x4c9b88
mov ecx, esi
call edx
test ebx, ebx
je 0x4a0bf7
mov eax, dword [esi]
mov edx, dword [eax + 0x40]
push 0
push ebx
mov ecx, esi
call edx
push 0
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x20], esi
call fcn.004a20be
test eax, eax
je 0x4a0c14
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
push 0
push 0
push 0x4c45b0
lea edi, [ebx + 0x20]
call fcn.004a20c4
mov edx, dword [ebp]
mov esi, eax
mov eax, dword [edx + 0x30]
push 0
push esi
mov ecx, ebp
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
push 0x4c9b94
mov ecx, esi
call eax
test edi, edi
je 0x4a0c52
mov edx, dword [esi]
mov eax, dword [edx + 0x40]
push 0
push edi
mov ecx, esi
call eax
push 0
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x20], esi
call fcn.004a20be
test eax, eax
je 0x4a0c6f
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
mov al, byte [ebx + ecx + 0x40]
lea ecx, [esp + 0x20]
call fcn.0045a1f0
mov dword [esp + 0x5c], 0
cmp dword [eax + 0x18], 0x10
jb 0x4a0c9b
mov edi, dword [eax + 4]
jmp 0x4a0c9e
lea edi, [eax + 4]
push 0
push 0
push 0x4c45b0
call fcn.004a20c4
mov edx, dword [ebp]
mov esi, eax
mov eax, dword [edx + 0x30]
push 0
push esi
mov ecx, ebp
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
push 0x4caa48
mov ecx, esi
call eax
test edi, edi
je 0x4a0cd9
mov edx, dword [esi]
mov eax, dword [edx + 0x40]
push 0
push edi
mov ecx, esi
call eax
push 0
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x1c], esi
call fcn.004a20be
test eax, eax
je 0x4a0cf6
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x5c], 0xffffffff
cmp dword [esp + 0x38], 0x10
jb 0x4a0d12
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004a21e6
add esp, 4
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, 0x20
jb 0x4a0c77
xor ebx, ebx
jmp 0x4a0d30
mov edx, dword [esp + 0x1c]
mov al, byte [edx + ebx + 0x60]
lea ecx, [esp + 0x20]
call fcn.0045a1f0
mov dword [esp + 0x5c], 1
cmp dword [eax + 0x18], 0x10
jb 0x4a0d54
mov edi, dword [eax + 4]
jmp 0x4a0d57
lea edi, [eax + 4]
push 0
push 0
push 0x4c45b0
call fcn.004a20c4
mov esi, eax
mov eax, dword [ebp]
mov edx, dword [eax + 0x30]
push 0
push esi
mov ecx, ebp
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x38]
push 0x4caa54
mov ecx, esi
call edx
test edi, edi
je 0x4a0d92
mov eax, dword [esi]
mov edx, dword [eax + 0x40]
push 0
push edi
mov ecx, esi
call edx
push 0
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], esi
call fcn.004a20be
test eax, eax
je 0x4a0daf
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x5c], 0xffffffff
cmp dword [esp + 0x38], 0x10
jb 0x4a0dcb
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004a21e6
add esp, 4
inc ebx
cmp ebx, 0x10
jb 0x4a0d30
xor ebx, ebx
mov edx, dword [esp + 0x1c]
mov al, byte [ebx + edx + 0x70]
lea ecx, [esp + 0x20]
call fcn.0045a1f0
mov dword [esp + 0x5c], 2
cmp dword [eax + 0x18], 0x10
jb 0x4a0dfb
mov edi, dword [eax + 4]
jmp 0x4a0dfe
lea edi, [eax + 4]
push 0
push 0
push 0x4c45b0
call fcn.004a20c4
mov esi, eax
mov eax, dword [ebp]
mov edx, dword [eax + 0x30]
push 0
push esi
mov ecx, ebp
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x38]
push 0x4caa64
mov ecx, esi
call edx
test edi, edi
je 0x4a0e39
mov eax, dword [esi]
mov edx, dword [eax + 0x40]
push 0
push edi
mov ecx, esi
call edx
push 0
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], esi
call fcn.004a20be
test eax, eax
je 0x4a0e56
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x5c], 0xffffffff
cmp dword [esp + 0x38], 0x10
jb 0x4a0e72
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004a21e6
add esp, 4
inc ebx
cmp ebx, 0x20
jb 0x4a0dd7
xor ebx, ebx
mov edi, edi
mov edx, dword [esp + 0x1c]
mov al, byte [edx + ebx + 0x90]
lea ecx, [esp + 0x20]
call fcn.0045a1f0
mov dword [esp + 0x5c], 3
cmp dword [eax + 0x18], 0x10
jb 0x4a0ea7
mov edi, dword [eax + 4]
jmp 0x4a0eaa
lea edi, [eax + 4]
push 0
push 0
push 0x4c45b0
call fcn.004a20c4
mov esi, eax
mov eax, dword [ebp]
mov edx, dword [eax + 0x30]
push 0
push esi
mov ecx, ebp
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x38]
push str.COMPRESSION_TYPE
mov ecx, esi
call edx
test edi, edi
je 0x4a0ee5
mov eax, dword [esi]
mov edx, dword [eax + 0x40]
push 0
push edi
mov ecx, esi
call edx
push 0
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], esi
call fcn.004a20be
test eax, eax
je 0x4a0f02
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x5c], 0xffffffff
cmp dword [esp + 0x38], 0x10
jb 0x4a0f1e
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004a21e6
add esp, 4
inc ebx
cmp ebx, 0x10
jb 0x4a0e80
xor eax, eax
xor esi, esi
lea esp, [esp]
cmp esi, 6
jge 0x4a0f6c
mov edx, dword [esp + 0x1c]
movzx ecx, byte [esi + edx + 0xa4]
mov edx, ecx
shr edx, 4
mov dl, byte [edx + 0x4c9a5c]
mov byte [esp + eax + 0x40], dl
inc eax
cmp eax, 0x10
jge 0x4a0f76
and ecx, 0xf
mov cl, byte [ecx + 0x4c9a5c]
mov byte [esp + eax + 0x40], cl
inc eax
inc esi
cmp eax, 0x10
jl 0x4a0f30
jmp 0x4a0f76
cmp eax, 0x10
jge 0x4a0f76
mov byte [esp + eax + 0x40], 0
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xa0]
lea ecx, [esp + 0x20]
call fcn.0045a210
mov ebx, 0x10
mov dword [esp + 0x5c], 4
cmp dword [eax + 0x18], ebx
jb 0x4a0fa0
mov edi, dword [eax + 4]
jmp 0x4a0fa3
lea edi, [eax + 4]
push 0
push 0
push 0x4c45b0
call fcn.004a20c4
mov esi, eax
mov eax, dword [ebp]
mov edx, dword [eax + 0x30]
push 0
push esi
mov ecx, ebp
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x38]
push 0x4caa84
mov ecx, esi
call edx
test edi, edi
je 0x4a0fde
mov eax, dword [esi]
mov edx, dword [eax + 0x40]
push 0
push edi
mov ecx, esi
call edx
push 0
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], esi
call fcn.004a20be
test eax, eax
je 0x4a0ffb
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x5c], 0xffffffff
cmp dword [esp + 0x38], ebx
jb 0x4a1016
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004a21e6
add esp, 4
push 0
push 0
push 0x4c45b0
call fcn.004a20c4
mov edx, dword [ebp]
mov esi, eax
mov eax, dword [edx + 0x30]
push 0
push esi
mov ecx, ebp
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
push str.DEVICE
mov ecx, esi
call eax
mov edx, dword [esi]
mov edx, dword [edx + 0x40]
push 0
lea eax, [esp + 0x44]
push eax
mov ecx, esi
call edx
push 0
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x44], esi
call fcn.004a20be
test eax, eax
je 0x4a106e
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.004a2151
add esp, 0x4c
ret