Function at 0x649dfc
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
xor eax, eax
push ebp
push 0x43adc4
push dword fs:[eax]
mov dword fs:[eax], esp
inc dword [0x518ac8]
jne 0x43adb6
call fcn.0043ad00
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x43adcb
ret
sub dword [0x518ac8], 1
jae 0x43adf4
mov eax, 0x43ad1c
call fcn.004040bc
mov eax, 0x518acc
xor ecx, ecx
mov edx, 0x2c
call fcn.00402f08
ret
push ebp
mov ebp, esp
xor eax, eax
push ebp
push 0x43ae84
push dword fs:[eax]
mov dword fs:[eax], esp
inc dword [0x518afc]
jne 0x43ae76
mov eax, 0x514c14
mov ecx, 2
mov edx, dword [0x40111c]
call fcn.00404e60
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x43ae8b
ret
sub dword [0x518afc], 1
ret
push ebp
mov ebp, esp
xor eax, eax
push ebp
push 0x43b87c
push dword fs:[eax]
mov dword fs:[eax], esp
inc dword [0x518b00]
jne 0x43b86e
mov eax, 0x514c1c
mov ecx, 2
mov edx, dword [0x40111c]
call fcn.00404e60
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x43b883
ret
sub dword [0x518b00], 1
ret
sub esp, 0x24
push ebx
push ebp
push esi
mov ebx, ecx
mov eax, dword [ebx]
push edi
push eax
lea ecx, [esp + 0x24]
call fcn.005c026c
mov esi, dword [ebx + 0x14]
lea eax, [ebx + 0x14]
xor edi, edi
cmp esi, edi
mov edx, 1
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
je 0x649e2f
mov eax, dword [esi + 0x28]
jmp 0x649e32
or eax, 0xffffffff
mov ecx, dword [esp + 0x38]
cmp ecx, 5
mov ebp, dword [esp + 0x3c]
ja case.default.0x649e43
jmp dword [ecx*4 + 0x51296c]
mov ecx, dword [0x7468a8]
push 0x58
call fcn.0054531c
mov esi, eax
cmp esi, edi
je 0x649f38
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x1c]
push edx
mov ecx, esi
call fcn.007130ec
mov dword [esi], 0x604600
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], edi
mov dword [esi + 0x48], edi
mov dword [esi + 0x4c], edi
mov dword [esi + 0x50], edi
mov dword [esi + 0x54], edi
jmp 0x649f3a
xor esi, esi
mov eax, dword [esp + 0x40]
xor ecx, ecx
cmp eax, 5
setne cl
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
dec ecx
and ecx, 4
mov dword [esi + 0x20], ecx
mov edx, dword [ebx]
mov ecx, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x50]
cmp eax, edi
mov dword [esi + 0x24], edx
mov edx, dword [esp + 0x44]
mov dword [esi + 0x28], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esi + 0x2c], ebp
mov dword [esi + 0x38], edx
mov dword [esi + 0x3c], ecx
je 0x649f8b
push eax
lea ecx, [esi + 0x40]
call fcn.0057364c
mov eax, dword [esp + 0x54]
cmp eax, edi
je 0x649f9c
push eax
lea ecx, [esi + 0x4c]
call fcn.0057364c
cmp dword [esp + 0x10], 2
jne 0x649fd2
mov eax, dword [esp + 0x14]
cmp dword [eax], edi
je 0x649fb8
nop
mov eax, dword [eax]
mov ecx, dword [eax + 0x18]
add eax, 0x18
cmp ecx, edi
jne 0x649fac
lea ecx, [esp + 0x20]
mov dword [eax], esi
call fcn.005be2ac
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x24
ret 0x20
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
cmp eax, edi
je 0x649fe3
mov dword [eax + 0x20], 3
mov edx, dword [ecx]
mov dword [esi + 0x18], edx
mov dword [ecx], esi
lea ecx, [esp + 0x20]
call fcn.005be2ac
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x24
ret 0x20