Function at 0x422290
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x477108
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4947a0]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x30], 2
mov eax, dword [esp + 0xa0]
sub eax, dword [esp + 0x9c]
xor esi, esi
sar eax, 3
mov dword [esp + 0x1c], esi
test eax, eax
jbe 0x4226b0
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0x90]
call fcn.004364d0
mov esi, dword [eax + 4]
mov ebp, dword [eax]
mov ecx, esi
push ecx
mov edx, ebp
push edx
lea ecx, [esp + 0x80]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], esi
call fcn.00439230
mov ebx, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x74]
test eax, eax
mov eax, dword [esp + 0x70]
jne 0x4224d6
cmp ebp, eax
jne 0x422339
cmp esi, ecx
je 0x4224d6
cmp ebp, edx
jne 0x422345
cmp esi, ebx
je 0x4224d6
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x18], 0
sar eax, 2
test eax, eax
jbe 0x42268c
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x40]
call fcn.0040cf80
cmp dword [esp + 0x38], 0
mov ecx, dword [eax]
jne 0x42238f
mov eax, ebp
cdq
idiv ecx
test edx, edx
jne 0x4224b5
mov eax, esi
cdq
idiv ecx
test edx, edx
jmp 0x4224aa
mov eax, dword [esp + 0x38]
cmp eax, 1
jne 0x4223a5
lea eax, [esi + ebp]
cdq
idiv ecx
test edx, edx
jmp 0x4224aa
cmp eax, 2
jne 0x4223c3
mov eax, ebp
cdq
idiv ecx
test edx, edx
je 0x4224ac
mov eax, esi
cdq
idiv ecx
test edx, edx
jmp 0x4224aa
cmp eax, 3
jne 0x4223f2
mov eax, ebp
cdq
idiv ecx
cmp edx, 9
jne 0x4224b5
mov eax, esi
cdq
idiv ecx
cmp edx, 9
jne 0x4224b5
lea eax, [esi + ebp]
cdq
idiv ecx
cmp edx, 9
jmp 0x4224aa
cmp eax, 4
jne 0x42241e
mov eax, ebp
cdq
idiv ecx
test edx, edx
jne 0x4224b5
mov eax, esi
cdq
idiv ecx
test edx, edx
jne 0x4224b5
lea eax, [esi + ebp]
cdq
idiv ecx
test edx, edx
jmp 0x4224aa
cmp eax, 5
jne 0x422459
mov eax, ebp
cdq
idiv ecx
mov ebx, edx
test ebx, ebx
jne 0x422441
mov eax, esi
cdq
idiv ecx
test edx, edx
jne 0x422441
lea eax, [esi + ebp]
cdq
idiv ecx
test edx, edx
je 0x4224ac
cmp ebx, 1
jne 0x4224b5
mov eax, esi
cdq
idiv ecx
cmp edx, ebx
jne 0x4224b5
lea eax, [esi + ebp]
cdq
idiv ecx
cmp edx, ebx
jmp 0x4224aa
cmp eax, 6
jne 0x4224b5
mov eax, ebp
cdq
idiv ecx
mov ebx, edx
test ebx, ebx
jne 0x42247c
mov eax, esi
cdq
idiv ecx
test edx, edx
jne 0x42247c
lea eax, [esi + ebp]
cdq
idiv ecx
test edx, edx
je 0x4224ac
cmp ebx, 1
jne 0x422494
mov eax, esi
cdq
idiv ecx
cmp edx, ebx
jne 0x422494
lea eax, [esi + ebp]
cdq
idiv ecx
cmp edx, ebx
je 0x4224ac
cmp ebx, 2
jne 0x4224b5
mov eax, esi
cdq
idiv ecx
cmp edx, ebx
jne 0x4224b5
lea eax, [esi + ebp]
cdq
idiv ecx
cmp edx, ebx
jne 0x4224b5
lea ebx, [esp + 0x20]
call fcn.00436560
mov ecx, dword [esp + 0x50]
sub ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
inc eax
sar ecx, 2
mov dword [esp + 0x18], eax
cmp eax, ecx
jb 0x422360
jmp 0x42268c
cmp ebp, eax
jne 0x4224e2
cmp esi, ecx
je 0x422683
cmp ebp, edx
jne 0x4224ee
cmp esi, ebx
je 0x422683
mov edx, dword [esp + 0x68]
sub edx, dword [esp + 0x64]
mov dword [esp + 0x18], 0
sar edx, 2
test edx, edx
jbe 0x42268c
lea esp, [esp]
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x58]
call fcn.0040cf80
cmp dword [esp + 0x3c], 0
mov ecx, dword [eax]
jne 0x42253f
mov eax, ebp
cdq
idiv ecx
test edx, edx
jne 0x422665
mov eax, esi
cdq
idiv ecx
test edx, edx
jmp 0x42265a
mov eax, dword [esp + 0x3c]
cmp eax, 1
jne 0x422555
lea eax, [esi + ebp]
cdq
idiv ecx
test edx, edx
jmp 0x42265a
cmp eax, 2
jne 0x422573
mov eax, ebp
cdq
idiv ecx
test edx, edx
je 0x42265c
mov eax, esi
cdq
idiv ecx
test edx, edx
jmp 0x42265a
cmp eax, 3
jne 0x4225a2
mov eax, ebp
cdq
idiv ecx
cmp edx, 9
jne 0x422665
mov eax, esi
cdq
idiv ecx
cmp edx, 9
jne 0x422665
lea eax, [esi + ebp]
cdq
idiv ecx
cmp edx, 9
jmp 0x42265a
cmp eax, 4
jne 0x4225ce
mov eax, ebp
cdq
idiv ecx
test edx, edx
jne 0x422665
mov eax, esi
cdq
idiv ecx
test edx, edx
jne 0x422665
lea eax, [esi + ebp]
cdq
idiv ecx
test edx, edx
jmp 0x42265a
cmp eax, 5
jne 0x422609
mov eax, ebp
cdq
idiv ecx
mov ebx, edx
test ebx, ebx
jne 0x4225f1
mov eax, esi
cdq
idiv ecx
test edx, edx
jne 0x4225f1
lea eax, [esi + ebp]
cdq
idiv ecx
test edx, edx
je 0x42265c
cmp ebx, 1
jne 0x422665
mov eax, esi
cdq
idiv ecx
cmp edx, ebx
jne 0x422665
lea eax, [esi + ebp]
cdq
idiv ecx
cmp edx, ebx
jmp 0x42265a
cmp eax, 6
jne 0x422665
mov eax, ebp
cdq
idiv ecx
mov ebx, edx
test ebx, ebx
jne 0x42262c
mov eax, esi
cdq
idiv ecx
test edx, edx
jne 0x42262c
lea eax, [esi + ebp]
cdq
idiv ecx
test edx, edx
je 0x42265c
cmp ebx, 1
jne 0x422644
mov eax, esi
cdq
idiv ecx
cmp edx, ebx
jne 0x422644
lea eax, [esi + ebp]
cdq
idiv ecx
cmp edx, ebx
je 0x42265c
cmp ebx, 2
jne 0x422665
mov eax, esi
cdq
idiv ecx
cmp edx, ebx
jne 0x422665
lea eax, [esi + ebp]
cdq
idiv ecx
cmp edx, ebx
jne 0x422665
lea ebx, [esp + 0x20]
call fcn.00436560
mov ecx, dword [esp + 0x68]
sub ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x18]
inc eax
sar ecx, 2
mov dword [esp + 0x18], eax
cmp eax, ecx
jb 0x422510
jmp 0x42268c
lea ebx, [esp + 0x20]
call fcn.00436560
mov edx, dword [esp + 0xa0]
sub edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x1c]
inc eax
sar edx, 3
mov dword [esp + 0x1c], eax
cmp eax, edx
jb 0x4222e0
xor esi, esi
mov eax, dword [esp + 0x4c]
cmp eax, esi
je 0x4226c1
push eax
call fcn.004396bc
add esp, 4
mov eax, dword [esp + 0x40]
push eax
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
call fcn.004396bc
mov eax, dword [esp + 0x68]
add esp, 4
cmp eax, esi
je 0x4226eb
push eax
call fcn.004396bc
add esp, 4
mov ecx, dword [esp + 0x58]
push ecx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
call fcn.004396bc
mov eax, dword [esp + 0xa0]
add esp, 4
cmp eax, esi
je 0x422718
push eax
call fcn.004396bc
add esp, 4
mov edx, dword [esp + 0x90]
push edx
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], esi
call fcn.004396bc
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x70