Function at 0x4054d0
Capabilities:
Check os version

Disassembly:
sub esp, 0xa4
mov eax, dword [0x449590]
xor eax, esp
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xb0]
push ebx
mov ebx, dword [esp + 0xb0]
push ebp
push esi
mov ebp, 1
xor esi, esi
mov dword [eax], 0
push edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x10], ebp
mov dword [ebx], 0
cmp dword [0x44ab1c], esi
jne 0x405553
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x20], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x405540
mov dword [0x44ab1c], 0xffffffff
jmp 0x405553
xor ecx, ecx
cmp dword [esp + 0x2c], ebp
sete cl
lea ecx, [ecx + ecx - 1]
mov dword [0x44ab1c], ecx
mov edi, dword [esp + 0xb8]
lea ebx, [ebx]
mov al, byte [edi]
movzx edx, al
mov eax, dword [edx*4 + 0x439868]
inc edi
lea ecx, [ecx]
test al, 0x10
je 0x405582
mov al, byte [edi]
movzx eax, al
mov eax, dword [eax*4 + 0x439c68]
inc esi
inc edi
test eax, 0x100000
je 0x40558f
inc esi
or eax, 0x100
test al, 4
je 0x4055a1
xor ecx, ecx
cmp ebp, 1
setne cl
mov ebp, ecx
mov dword [esp + 0x18], ebp
test al, 8
je 0x4055b3
xor edx, edx
cmp dword [esp + 0x10], 1
setne dl
mov dword [esp + 0x10], edx
test eax, 0x40000
je 0x4055bd
or dword [ebx], 1
test al, 2
jne 0x405702
test al, 1
je 0x4055ca
inc esi
test al, 0x20
je 0x4055d1
add esi, 2
test eax, 0x200
je 0x4055ed
mov cl, byte [edi]
inc edi
inc esi
cmp cl, 0x20
jne 0x4055ed
cmp dword [0x44ab1c], 1
jne 0x4055ed
add esi, 4
test eax, 0x400
je 0x405601
or dword [ebx], 2
movsx ecx, byte [edi]
mov edx, dword [esp + 0x14]
mov dword [edx], ecx
inc esi
test eax, 0x800
je 0x40562f
or dword [ebx], 2
xor ecx, ecx
test ebp, ebp
setne cl
lea ecx, [ecx + ecx + 2]
cmp ecx, 2
jne 0x405620
movsx edx, word [edi]
jmp 0x405622
mov edx, dword [edi]
mov ebp, dword [esp + 0x14]
mov dword [ebp], edx
mov ebp, dword [esp + 0x18]
add esi, ecx
test eax, 0x1000
je 0x405646
or dword [ebx], 4
xor ecx, ecx
test ebp, ebp
setne cl
lea ecx, [ecx + ecx + 2]
add esi, ecx
test eax, 0x2000
je 0x40565a
xor edx, edx
test ebp, ebp
setne dl
lea edx, [edx + edx + 4]
add esi, edx
test eax, 0x4000
je 0x40566e
xor ecx, ecx
test ebp, ebp
setne cl
lea ecx, [ecx + ecx + 4]
add esi, ecx
test al, al
jns 0x405684
or dword [ebx], 8
xor edx, edx
cmp dword [esp + 0x10], edx
setne dl
lea edx, [edx + edx + 2]
add esi, edx
test al, 0x40
je 0x405695
xor ecx, ecx
test ebp, ebp
setne cl
lea ecx, [ecx + ecx + 2]
add esi, ecx
test eax, 0x80000
je 0x4056b5
mov cl, byte [edi]
cmp cl, 0xf8
je 0x4056b4
cmp cl, 0xe8
je 0x4056b4
cmp cl, 0x70
je 0x4056b4
or eax, 0x100
jmp 0x4056b5
inc esi
test eax, 0x8000
je 0x4056d2
mov dl, byte [edi]
and dl, 0x38
movzx eax, dl
neg eax
sbb eax, eax
add eax, 0x101
jmp 0x405570
test eax, 0x10000
je 0x4056f1
mov al, byte [edi]
and al, 0x38
movzx eax, al
neg eax
sbb eax, eax
and eax, 0xffffffc0
add eax, 0x140
jmp 0x405570
test eax, 0x20000
je 0x405708
mov eax, 0x100
jmp 0x405570
inc esi
jmp 0x405560
test eax, 0x100
je 0x405774
mov cl, byte [edi]
mov al, cl
shr al, 6
inc edi
inc esi
and cl, 7
cmp al, 3
je 0x405774
cmp dword [esp + 0x10], 0
jne 0x405744
test al, al
jne 0x405737
cmp cl, 6
jne 0x405774
or dword [ebx], 8
add esi, 2
jmp 0x405774
cmp al, 1
je 0x40576a
cmp al, 2
jne 0x405774
add esi, 2
jmp 0x405774
cmp cl, 4
jne 0x405758
inc esi
test al, al
jne 0x405766
mov cl, byte [edi]
and cl, 7
cmp cl, 5
jmp 0x40576f
test al, al
jne 0x405766
cmp cl, 5
jne 0x405774
or dword [ebx], 8
jmp 0x405771
cmp al, 1
jne 0x40576d
inc esi
jmp 0x405774
cmp al, 2
jne 0x405774
add esi, 4
mov ecx, dword [esp + 0xb0]
pop edi
lea eax, [esi + 1]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042433d
add esp, 0xa4
ret