Function at 0x418350
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x44c240
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x4651b0]
xor eax, esp
mov dword [esp + 0x7c], eax
push ebx
push ebp
push esi
mov eax, dword [0x4651b0]
xor eax, esp
push eax
lea eax, [esp + 0x94]
mov dword fs:[0], eax
xor eax, eax
xor esi, esi
mov dword [esp + 0x6d], eax
mov dword [esp + 0x71], eax
mov dword [esp + 0x75], eax
mov dword [esp + 0x79], eax
mov dword [esp + 0x7d], eax
mov dword [esp + 0x81], eax
mov dword [esp + 0x85], eax
mov byte [esp + 0x89], al
lea eax, [esp + 0x30]
push eax
lea ecx, [edi + 0x38]
mov ebx, 1
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x3c], esi
mov byte [esp + 0x40], 0
mov byte [esp + 0x41], 0
mov dword [esp + 0x4e], esi
mov byte [esp + 0x70], 0
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
call fcn.0041cad1
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0xa8]
push eax
mov dword [esp + 0xa4], esi
call fcn.0041d0fc
lea ecx, [esp + 0x30]
mov byte [esp + 0x9c], 2
call fcn.0041d0c6
lea ecx, [esp + 0x28]
call fcn.0041d938
cmp eax, esi
je 0x418607
sub eax, ebx
je 0x4184b1
sub eax, ebx
je 0x41847b
sub eax, ebx
je 0x418442
mov ebx, 0x200
jmp 0x4184fc
push 0x12
lea ecx, [esp + 0x2c]
mov byte [esp + 0x70], 2
call fcn.0041d928
push eax
lea edx, [esp + 0x75]
push 0x1d
push edx
call fcn.00438e1d
add esp, 0x10
mov dword [esp + 0x14], 0x24
mov dword [esp + 0x1c], 0x13
mov dword [esp + 0x20], esi
jmp 0x4184fc
push 0xa
lea ecx, [esp + 0x2c]
mov byte [esp + 0x70], 1
call fcn.0041d928
push eax
lea eax, [esp + 0x75]
push 0x1d
push eax
call fcn.00438e1d
add esp, 0x10
mov dword [esp + 0x14], 0x1c
mov dword [esp + 0x1c], 0xb
mov dword [esp + 0x20], esi
jmp 0x4184fc
lea ecx, [esp + 0x28]
mov byte [esp + 0x6c], 0
call fcn.0041d948
push 0xc
lea ecx, [esp + 0x2c]
mov dword [esp + 0x4e], eax
call fcn.0041d928
push eax
lea ecx, [esp + 0x75]
push 0x1d
push ecx
call fcn.00438e1d
push 4
lea edx, [esp + 0x5e]
push edx
lea eax, [esp + 0x91]
push 0x11
push eax
call fcn.00438e1d
add esp, 0x20
mov dword [esp + 0x14], 0x18
test bl, 1
je 0x418607
movzx eax, word [esp + 0x14]
cdq
mov ebp, edx
mov esi, eax
push ebp
push esi
mov eax, edi
mov ebx, 1
call fcn.00416510
cmp esi, eax
jne 0x418525
cmp ebp, edx
je 0x41853b
mov eax, dword [edi + 0x2c]
inc dword [eax]
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax]
mov edx, dword [edi]
mov edx, dword [edx + 0x44]
push ecx
mov ecx, edi
call edx
mov ebx, eax
test bl, 1
je 0x418607
mov ecx, dword [edi + 0x30]
push 5
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 0x8d1470f
mov byte [esp + 0x40], 0
mov edx, dword [ecx]
push eax
lea ebp, [edi + 0x68]
push edx
lea esi, [esp + 0x24]
mov eax, ebp
call fcn.004213d7
mov ebx, eax
test bl, 1
je 0x418607
cmp dword [esp + 0x18], 5
jne 0x418602
mov ecx, dword [edi + 0x30]
mov edx, dword [ecx]
push 2
lea eax, [esp + 0x18]
push eax
push edx
mov eax, ebp
call fcn.004213d7
mov ebx, eax
test bl, 1
je 0x418607
cmp dword [esp + 0x18], 2
jne 0x418602
mov eax, dword [edi + 0x30]
mov ecx, dword [eax]
push ecx
lea esi, [edi + 0x114]
push ebp
call fcn.004214ac
mov edx, dword [esp + 0x1c]
add dword [esi], edx
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + 0x2c]
adc dword [esi + 4], eax
movzx eax, word [esp + 0x14]
mov edx, dword [ecx]
sub eax, 7
push eax
mov dword [edi + 0x110], edx
mov edx, dword [edi + 0x30]
mov eax, dword [edx]
lea ecx, [esp + 0x70]
push ecx
push eax
lea esi, [esp + 0x24]
mov eax, ebp
call fcn.004213d7
mov ebx, eax
test bl, 1
je 0x418607
movzx ecx, word [esp + 0x14]
sub ecx, 7
cmp ecx, dword [esp + 0x18]
je 0x418607
mov ebx, 0x1000900
lea ecx, [esp + 0x28]
mov dword [esp + 0x9c], 0xffffffff
call fcn.0041d5d7
mov eax, ebx
mov ecx, dword [esp + 0x94]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x7c]
xor ecx, esp
call fcn.00438b17
add esp, 0x90
ret 4