Function at 0x10035d38
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1005c4ae
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd0
mov byte [esp + 0x30], dl
push ebx
mov ebx, ecx
mov dword [esp + 0x40], ebx
push esi
push edi
test dl, dl
je 0x10035d7f
mov eax, dword [ebp + 0x10]
movzx eax, word [eax]
push eax
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.100314fb
jmp 0x100361e1
push 1
lea ecx, [esp + 0x88]
call fcn.10004886
xor edx, edx
mov dword [esp + 0xc], edx
jmp 0x10035da8
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xc8], 0x13dd
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x10035d95
mov dword [esp + 0xc], edx
jmp 0x10035dcb
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], 0xdba76aab
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x10035db5
mov ecx, dword [esp + 0x84]
mov dword [ecx], edx
mov eax, dword [ecx]
inc dword [ecx]
cmp dword [ecx], 4
mov dword [esp + eax*4 + 0xc8], 8
jl 0x10035ddb
lea ecx, [esp + 0x84]
call fcn.10004909
push 0x7c
pop eax
xor ecx, ecx
mov dword [esp + 0x1c], 0x6d03d500
push 2
mov word [esp + 0x24], 0x2ab0
xor edi, edi
mov word [esp + 0x1c], ax
pop esi
mov dword [esp + 0x30], ecx
cmp esi, 2
jne 0x10035e2d
push 4
pop ecx
push ecx
mov dword [esp + 0x34], ecx
pop esi
jmp 0x10035e8d
movzx edx, byte [esp + esi + 0x1d]
mov eax, esi
sub eax, ecx
push 1
push 0x5784
push edi
movzx eax, byte [esp + eax + 0x26]
push 0x304f
push 0x4fb
push 0x3ac4
movzx ecx, word [esp + eax*2 + 0x30]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [esp + esi + 0x34]
add ecx, edx
mov edx, 0x79b4
push 1
mov word [esp + eax*2 + 0x34], cx
lea eax, [esp + 0x4c]
push eax
push 0xeff
mov ecx, 0x1a06
call fcn.10034a10
mov ecx, dword [esp + 0x54]
add esp, 0x24
add esi, 2
cmp esi, 6
jb 0x10035e1d
xor eax, eax
mov dword [esp + 0xc0], edi
push 7
mov word [esp + 0x1e], ax
lea ecx, [esp + 0xb4]
pop esi
mov word [esp + 0xb0], ax
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0xc8], esi
call fcn.1000fb5d
mov edx, dword [ebp + 0x18]
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x60]
mov dword [esp + 0xe8], edi
call fcn.1003427f
pop ecx
push edi
push 1
lea ecx, [esp + 0xb8]
mov byte [esp + 0xec], 2
call fcn.10004d85
push 3
lea ecx, [esp + 0x6c]
call fcn.10004886
push ecx
lea eax, [esp + 0x6c]
mov byte [esp + 0xe8], 3
push eax
lea eax, [esp + 0x9c]
mov dword [esp + 0x14], 0xcdf98a59
push eax
push 0xd21
push 0x106c
mov dword [esp + 0x24], 0x1b870004
mov edx, 0x60a7
push ecx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x64], 1
mov dword [esp + 0x4c], esi
push edi
call fcn.1003555f
mov dword [esp + 0x28], 2
xor eax, eax
add esp, 0x1c
cmp dword [esp + 0xc], eax
jl 0x10036043
mov dword [esp + 0x38], 0xe994
xor edx, edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x34], 0x65296947
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x68]
mov eax, dword [eax + ecx*4]
add eax, 0xffff
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x68]
cmp eax, dword [ecx + esi*4]
mov eax, dword [esp + 0x68]
setg dl
xor ebx, ebx
cmp edx, dword [eax + edi*4]
mov eax, dword [esp + 0xc]
setne bl
xor ecx, ecx
cmp ebx, eax
setne cl
xor eax, eax
add ecx, 6
cmp ecx, 0x457
mov ecx, 0xfff8
setl al
imul eax, dword [esp + 0x38]
sub eax, 0x3c3fa3c9
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
sub ecx, eax
jne 0x10036026
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x78]
dec dword [esp + 0xc]
push 0
pop eax
jns 0x10035f67
mov ebx, dword [esp + 0x48]
lea ecx, [esp + 0x68]
mov byte [esp + 0xe4], 2
call fcn.10004909
xor ecx, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], 4
mov dword [esp + 0x48], 0xfa5c62e0
mov dword [esp + 0xc], ecx
jmp 0x10036083
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x90], 0xfffffff9
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x10036070
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], ecx
jl 0x100360b6
push ecx
push ecx
push ecx
push 0x3e81
mov byte [esp + 0x27], cl
lea edx, [esp + 0x27]
push ecx
call fcn.10034c40
add esp, 0x14
dec dword [esp + 0x10]
push 0
pop ecx
jns 0x10036094
push 1
push 1
push 0x7c0f
mov edx, 0xd52
mov ecx, 0x4314
call fcn.100343d6
add esp, 0xc
mov dword [esp + 0x24], 0x84027800
mov dword [esp + 0x28], 0x3030222
xor ecx, ecx
mov word [esp + 0x2c], 0x12a
mov byte [esp + 0x2e], 0x2d
push 9
pop eax
push 2
mov word [esp + 0x54], ax
pop esi
cmp esi, 2
jne 0x10036106
push 3
pop ecx
push ecx
pop esi
jmp 0x1003612d
movzx edx, byte [esp + esi + 0x25]
mov eax, esi
sub eax, ecx
movzx eax, byte [esp + eax + 0x22]
movzx eax, word [esp + eax*2 + 0x50]
mov ecx, eax
and eax, edx
or ecx, edx
sub ecx, eax
movzx eax, byte [esp + esi + 0x24]
mov word [esp + eax*2 + 0x50], cx
xor ecx, ecx
add esi, 2
cmp esi, 0xb
jb 0x100360fa
xor eax, eax
mov dword [esp + 0xac], 7
and dword [esp + 0xa8], eax
lea ecx, [esp + 0x98]
mov word [esp + 0x58], ax
mov word [esp + 0x98], ax
lea eax, [esp + 0x50]
push eax
call fcn.1000fb5d
xor eax, eax
mov byte [esp + 0xe4], 4
lea edi, [esp + 0x50]
stosd dword es:[edi], eax
push 0x18
pop ecx
stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [esp + 0x60]
xor edi, edi
sub eax, dword [esp + 0x5c]
cdq
idiv ecx
mov dword [esp + 0x40], edi
mov esi, eax
test esi, esi
je 0x100361bd
lea eax, [esp + 0x98]
mov cl, 1
push eax
lea eax, [esp + 0x44]
push eax
push 1
lea edx, [esp + 0x68]
call fcn.10034364
mov eax, dword [esp + 0x4c]
add esp, 0xc
inc eax
mov dword [esp + 0x40], eax
cmp eax, esi
jb 0x10036193
lea eax, [esp + 0x5c]
mov ecx, ebx
push eax
call fcn.100374aa
push edi
push 1
lea ecx, [esp + 0xa0]
call fcn.10004d85
lea ecx, [esp + 0x5c]
call fcn.10037935
mov ecx, dword [esp + 0xdc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret