Function at 0x10036810
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0xd4800b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x568
mov eax, dword [ebp + 0x10]
push ebx
push esi
xor esi, esi
push edi
mov dword [esp + 0xa4], ecx
cmp eax, esi
jne 0x10036848
lea eax, [esp + 0x7c]
mov edi, dword [0xd5b4d8]
mov edx, eax
mov ebx, ecx
mov dword [esp + 0x60], eax
mov dword [edx], esi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x2c], ebx
cmp ecx, esi
je 0x10036b49
cmp dword [0xd61690], esi
je 0x1003689c
cmp dword [0xd61680], esi
je 0x1003688a
mov eax, dword [0xd61678]
push eax
call dword [0xd492b4]
mov dword [0xd61680], esi
call dword [0xd49618]
mov dword [0xd61690], esi
mov dword [0xd61678], esi
mov esi, dword [0xd492cc]
call esi
mov edx, dword [0xd5b4d8]
mov ecx, eax
sub ecx, dword [0xd61634]
cmp ecx, dword [edx + 0xb0]
jbe 0x100368e7
push 0
push 0
push 0
push 0
lea eax, [esp + 0x134]
push eax
call dword [0xd49660]
test eax, eax
je 0x100368e0
push 1
push 0xffffffffffffffff
call fcn.10001fb0
add esp, 8
call esi
mov dword [0xd61634], eax
cmp byte [edi + 0xc4], 0
jne 0x10036918
cmp byte [edi + 0xc6], 0
jne 0x10036918
mov edx, dword [0xd61628]
cmp edx, 0xffffffff
jle 0x10036918
mov ecx, dword [edi + 0x28]
cmp ecx, edx
jle 0x10036914
mov byte [edi + 0xc4], 1
jmp 0x10036918
inc ecx
mov dword [edi + 0x28], ecx
mov ecx, dword [edi + 4]
mov edx, dword [edi]
cmp ecx, 0xffffffff
jl 0x1003693b
jg 0x10036929
cmp edx, 0xffffffff
jbe 0x1003693b
cmp dword [0xd61624], ecx
jg 0x1003694d
jl 0x1003693b
cmp dword [0xd61620], edx
jae 0x1003694d
mov ecx, dword [edi + 0x24]
cmp ecx, 0xffffffff
jle 0x10036959
sub eax, dword [0xd61630]
cmp eax, ecx
jb 0x10036959
push 1
push 0xa
call fcn.10001fb0
add esp, 8
cmp byte [edi + 0xcf], 0
je 0x1003697a
push 1
push 0x8000012f
call fcn.10001fb0
add esp, 8
cmp byte [edi + 0xcf], 0
jne 0x10036962
mov dword [0xd613a4], ebx
cmp byte [edi + 0xd0], 0
je 0x100369be
mov ecx, dword [0xd608e4]
mov dword [ecx*4 + 0xd608e8], ebx
call esi
mov ecx, dword [0xd608e4]
mov dword [ecx*4 + 0xd5e880], eax
inc ecx
mov dword [0xd608e4], ecx
cmp ecx, 0x190
jl 0x100369be
mov dword [0xd608e4], 0
cmp dword [0xd60fa8], 0xffffffff
je 0x100369d3
cmp byte [ebx], 0x6a
je 0x100369d3
mov esi, ebx
call fcn.100053b0
mov al, byte [ebx]
cmp al, 1
je 0x100369fc
cmp al, 0x6a
je 0x100369fc
cmp al, 0x70
je 0x100369fc
mov edx, dword [ebp + 0xc]
push 0
push 0xffffffffffffffff
push edx
push ebx
call fcn.10068280
mov dword [esp + 0x30], eax
cmp eax, 1
jne 0x10036b4e
mov al, byte [ebx]
mov esi, dword [ebp + 0xc]
mov byte [esp + 0xd8], al
cmp al, 0xa
jb 0x10036b65
cmp al, 0x21
ja 0x10036b65
add dword [0xd61620], 1
push ebx
adc dword [0xd61624], 0
call fcn.1003b080
mov edi, 3
cmp eax, edi
jne 0x10036ac9
mov ecx, dword [ebx + 0x14]
cmp byte [ecx], 0x71
jne 0x10036a62
mov ecx, dword [ecx + 0x14]
lea eax, [esp + 0x44]
push eax
push esi
push 2
call fcn.10036810
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x44]
cmp eax, ecx
je 0x10036a41
jmp 0x10036a76
lea edx, [esp + 0x44]
push edx
push esi
push edi
call fcn.10036810
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x1003a6f6
cmp dword [ebp + 8], edi
je 0x1003a714
cmp dword [esp + 0x30], 1
jne 0x1003a714
test eax, eax
je 0x10036aab
mov ecx, dword [eax + 0x1c]
cmp ecx, dword [ebx + 0x1c]
jne 0x1003a709
mov dword [esp + 0x2c], eax
jmp 0x1003a6f2
mov ebx, dword [ebx + 0x18]
cmp byte [ebx], 9
mov dword [esp + 0x2c], ebx
jne 0x1003a6f2
mov edx, ebx
mov eax, dword [edx + 0x18]
mov dword [esp + 0x2c], eax
jmp 0x1003a6f2
mov ebx, dword [ebx + 0x18]
cmp byte [ebx], 9
mov dword [esp + 0x2c], ebx
jne 0x10036b40
mov ecx, dword [ebx + 0x14]
cmp byte [ecx], 0x71
jne 0x10036b01
lea ecx, [ecx]
mov ecx, dword [ecx + 0x14]
lea edx, [esp + 0x44]
push edx
push esi
push 2
call fcn.10036810
mov ecx, dword [ebx + 0x14]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x30], eax
cmp edx, ecx
je 0x10036ae0
jmp 0x10036b15
lea eax, [esp + 0x44]
push eax
push esi
push edi
call fcn.10036810
mov edx, dword [esp + 0x44]
mov dword [esp + 0x30], eax
cmp dword [ebp + 8], edi
je 0x1003a735
cmp eax, 1
jne 0x1003a735
test edx, edx
je 0x100373fa
mov ecx, dword [edx + 0x1c]
cmp ecx, dword [ebx + 0x1c]
jne 0x1003a755
jmp 0x1003a6ee
cmp dword [ebp + 8], edi
jne 0x1003a6f2
mov eax, 1
mov ecx, dword [esp + 0x574]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
movzx ecx, al
add ecx, 0xfffffff8
cmp ecx, 0xd3
ja 0x10037452
movzx ecx, byte [ecx + 0xcd9f74]
jmp dword [ecx*4 + 0xcd9f3c]
mov edx, dword [ebx + 0x18]
jmp 0x1003a6ee
add dword [0xd61620], 1
mov esi, dword [0xd5ef10]
mov edi, dword [0xd5b4d8]
mov edx, 0
adc dword [0xd61624], edx
mov al, byte [ebx]
movzx ecx, al
dec ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edi
cmp ecx, 0xdc
ja 0x1003a6d3
movzx ecx, byte [ecx + 0xcda2e4]
jmp dword [ecx*4 + 0xcda064]
xor eax, eax
mov dword [esp + 0x30], eax
test eax, eax
je 0x10036b4e
cmp dword [ebp + 8], 3
je 0x10036b4e
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x10036b49
mov edi, dword [esp + 0x5c]
xor esi, esi
jmp 0x10036868
mov ecx, dword [esp + 0x60]
mov dword [ecx], eax
jmp 0x10036b49
mov edx, dword [esp + 0x60]
mov dword [edx], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x574]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [esp + 0x60]
mov dword [ecx], edx
mov ecx, dword [esp + 0x574]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esp + 0x60]
mov dword [eax], edx
jmp 0x10036b49