Function at 0x45ab20
Capabilities:
Check os version

Disassembly:
push ebx
push esi
push edi
mov edi, dword [esp + 0x14]
cmp edi, 0xa
je 0x45ae9c
cmp edi, 0x11
je 0x45ae9c
cmp edi, 0x17
je 0x45ae9c
cmp edi, 0x51
je 0x45ae9c
cmp edi, 0x52
je 0x45ae9c
cmp edi, 0xf
je 0x45ae23
cmp edi, 0x54
je 0x45ae23
cmp edi, 0x33
je 0x45ad60
cmp edi, 0x55
je 0x45ad60
cmp edi, 0x10
jne 0x45abad
mov esi, dword [esp + 0x10]
test esi, esi
je 0x45aee4
mov dword [esi + 0x80], 0xffffffd3
call fcn.004039f6
push 0
push 0xff
push 0
push dword [eax]
push 0x207
jmp 0x45aed9
cmp edi, 0x1a
je 0x45ac97
cmp edi, 0x19
je 0x45ac97
cmp edi, 0x18
je 0x45ac97
mov esi, dword [esp + 0x10]
cmp edi, 0x1c
jne 0x45abf0
mov eax, dword [esi + 0x120]
mov ecx, edi
mov word [eax + 2], cx
call fcn.00491cf0
mov ecx, dword [esi + 0x120]
mov dword [ecx + 8], eax
jmp 0x45add2
cmp edi, 0x1d
jne 0x45ac14
mov eax, dword [esi + 0x120]
mov ecx, edi
mov word [eax + 2], cx
call fcn.00491cf0
mov ecx, dword [esi + 0x120]
mov dword [ecx + 8], eax
jmp 0x45add2
cmp edi, 0x1e
jne 0x45ac38
mov eax, dword [esi + 0x120]
mov ecx, edi
mov word [eax + 2], cx
call fcn.00491cf0
mov ecx, dword [esi + 0x120]
mov dword [ecx + 8], eax
jmp 0x45add2
cmp edi, 0xb
jne 0x45ac41
mov ecx, edi
jmp 0x45ac48
cmp edi, 0x65
jne 0x45ac65
mov ecx, edi
mov eax, dword [esi + 0x120]
mov word [eax + 2], cx
call fcn.00488ed0
mov ecx, dword [esi + 0x120]
mov dword [ecx + 8], eax
jmp 0x45add2
push esi
call fcn.00488d00
add esp, 4
test eax, eax
jne 0x45add2
mov eax, dword [esi + 0x120]
mov ecx, 1
mov word [eax + 2], cx
mov eax, dword [esi + 0x120]
mov dword [eax + 8], 0xffffffff
jmp 0x45add2
mov esi, dword [esp + 0x10]
mov ecx, fcn.00491cf0
mov eax, 0x4889f0
push esi
test byte [esi + 0x144], 0x10
cmovne eax, ecx
call eax
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x45ad30
mov word [ebx + 2], di
mov ecx, ebx
mov eax, dword [ecx + 0x480]
test eax, eax
je 0x45acd5
mov word [ecx + 2], di
mov ecx, eax
test ecx, ecx
jne 0x45acc1
mov edi, dword [esi + 0x120]
test edi, edi
je 0x45add2
mov eax, dword [edi + 0x480]
test eax, eax
je 0x45acf8
mov edi, eax
test edi, edi
jne 0x45ace3
jmp 0x45add2
mov ax, word [ebx + 2]
push 0
mov word [edi + 2], ax
lea eax, [ebx + 8]
push 0xc
push eax
lea eax, [edi + 8]
push eax
call fcn.0041a450
mov eax, dword [ebx + 0x480]
push ebx
mov dword [edi + 0x480], eax
call fcn.0045aaf0
mov eax, dword [esi + 0x120]
add esp, 0x14
pop edi
pop esi
pop ebx
ret
mov dword [esi + 0x80], 0xffffffd3
call fcn.004039f6
push 0
push 0xff
push 0
push dword [eax]
push 0x208
push 0xffffffffffffffd3
push esi
call fcn.0043dcc0
add esp, 0x1c
xor eax, eax
pop edi
pop esi
pop ebx
ret
mov esi, dword [esp + 0x10]
push 0xb
push esi
call fcn.0045cdc0
add esp, 8
cmp eax, 0xdcba
je 0x45ada2
test esi, esi
je 0x45aee4
mov dword [esi + 0x80], 0xffffffd3
call fcn.004039f6
push 0
push 0xff
push 0
push dword [eax]
push 0x5221
jmp 0x45aed9
push edi
push esi
call fcn.00491cf0
mov edi, eax
add esp, 8
test edi, edi
je 0x45aee4
push 0
push 0x488
push edi
push dword [esi + 0x120]
call fcn.0041a450
push edi
call fcn.0043eeb0
add esp, 0x14
mov edi, dword [esi + 0x120]
test edi, edi
je 0x45aeff
cmp word [edi + 2], 9
jne 0x45aeff
mov al, byte [edi + 8]
add edi, 8
test al, al
je 0x45aeff
lea esp, [esp]
cmp al, 0x20
jne 0x45aef4
mov edx, edi
lea ebx, [ebx]
mov al, byte [edx + 1]
lea edx, [edx + 1]
mov byte [edx - 1], al
cmp byte [edx], 0
jne 0x45ae10
jmp 0x45aef5
mov esi, dword [esp + 0x10]
push 9
push esi
call fcn.0045cdc0
add esp, 8
cmp eax, 0x1538
je 0x45ae62
test esi, esi
je 0x45aee4
mov dword [esi + 0x80], 0xffffffd3
call fcn.004039f6
push 0
push 0xff
push 0
push dword [eax]
push 0x205
jmp 0x45aed9
push esi
call fcn.00491cf0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x45aee4
cmp word [ebx + 2], 0xf
jne 0x45ae83
cmp edi, 0x54
jne 0x45ae83
mov eax, edi
mov word [ebx + 2], ax
push 0
push 0x488
push ebx
push dword [esi + 0x120]
call fcn.0041a450
push ebx
jmp 0x45adca
mov esi, dword [esp + 0x10]
push 7
push esi
call fcn.0045cdc0
add esp, 8
cmp eax, 0x4e9b
je 0x45add2
test esi, esi
je 0x45aee4
mov dword [esi + 0x80], 0xffffffd3
call fcn.004039f6
push 0
push 0xff
push 0
push dword [eax]
push 0x12d
push 0xffffffffffffffd3
push esi
call fcn.0043dcc0
add esp, 0x1c
pop edi
mov dword [esi + 0x120], 0
xor eax, eax
pop esi
pop ebx
ret
inc edi
mov al, byte [edi]
test al, al
jne 0x45ae00
mov eax, dword [esi + 0x120]
pop edi
pop esi
pop ebx
ret