Function at 0x10389e5
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x29c
mov eax, dword [0x108e1f8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push 0x100ba80
mov esi, 0x100a820
push esi
push 0x45d
push 2
mov ebx, ecx
call fcn.01054409
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0xc]
add esp, 0x10
cmp eax, 0x10
je 0x1038a44
cmp eax, 0x20
je 0x1038a44
push 0x100ba40
push esi
push 0x462
push 2
call fcn.01054409
add esp, 0x10
xor al, al
jmp 0x103910c
push edi
push 0x100ba0c
push esi
push 0x466
push 2
call fcn.01054409
add esp, 0x10
push 0x20
call sub.d3d9.dll_Direct3DCreate9
mov edi, eax
test edi, edi
jne 0x1038a81
push 0x100b9dc
push esi
push 0x46b
push 2
call fcn.01054409
add esp, 0x10
jmp 0x10390c5
push 0x100b9a8
push esi
push 0x46f
push 2
call fcn.01054409
add esp, 0x10
push 0x100b98c
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x120], eax
test eax, eax
je 0x1038af6
push 0x100b940
push esi
push 0x474
push 2
call fcn.01054409
add esp, 0x10
push 0x100b930
push dword [ebp - 0x120]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x1038ae2
push 0x100b8f8
push esi
push 0x479
jmp 0x1038b01
mov ecx, dword [edi]
push eax
push edi
call dword [ecx + 0xc]
push 0x100b8d0
push esi
push 0x47e
jmp 0x1038b01
push 0x100b8ac
push esi
push 0x485
push 2
call fcn.01054409
add esp, 0x10
push 0x100b884
push esi
push 0x489
push 2
call fcn.01054409
add esp, 0x10
jmp 0x1038b41
call fcn.01035b0e
test al, al
je 0x1038b56
cmp dword [ebx + 0x8c], 0
jne 0x1038b56
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.01035d76
lea eax, [ebp - 0x29c]
push eax
push edi
mov ecx, ebx
call fcn.01037c2d
test al, al
je 0x1038b22
jmp 0x1038b94
mov eax, dword [edi]
push edi
call dword [eax + 8]
push 0x100b820
push esi
push 0x49d
push 2
call fcn.01054409
add esp, 0x10
push 1
push 0
push 0
push 0xfffe
push 1
push 0x386
push 0x385
call fcn.010571e4
push 0
call fcn.010367df
push dword [ebp - 0x298]
push 0x100b7ec
push esi
push 0x4a2
push 2
call fcn.01054409
add esp, 0x14
test dword [ebp - 0x280], 0x10000
mov byte [ebp - 0x119], 0
je 0x1038bd9
cmp dword [ebp - 0x29c], 1
jne 0x1038bd9
mov byte [ebp - 0x119], 1
mov eax, 0x100b7e4
jmp 0x1038bde
mov eax, 0x100b7dc
push eax
push 0x100b7ac
push esi
push 0x4ae
push 2
call fcn.01054409
mov eax, dword [ebp - 0x29c]
add esp, 0x14
dec eax
je 0x1038c1d
dec eax
je 0x1038c10
dec eax
jne 0x1038c32
push 0x100b798
push esi
push 0x4b9
jmp 0x1038c28
push 0x100b784
push esi
push 0x4be
jmp 0x1038c28
push 0x100b770
push esi
push 0x4b4
push 2
call fcn.01054409
add esp, 0x10
mov eax, dword [edi]
lea ecx, [ebp - 0x16c]
push ecx
push dword [ebp - 0x298]
push edi
call dword [eax + 0x20]
mov eax, dword [ebp - 0x160]
push 0x15
push 3
push 0
push eax
push dword [ebp - 0x29c]
mov dword [ebx + 0x34], eax
push dword [ebp - 0x298]
mov ecx, dword [edi]
push edi
call dword [ecx + 0x28]
test eax, eax
jl 0x1038c7d
mov eax, dword [ebx + 0x30]
cmp dword [eax + 0xc], 0x10
je 0x1038c7d
mov byte [ebp - 0x11a], 0
jmp 0x1038ce4
mov eax, dword [edi]
push 0x17
push 3
push 0
push dword [ebp - 0x160]
push dword [ebp - 0x29c]
push dword [ebp - 0x298]
push edi
call dword [eax + 0x28]
test eax, eax
jge 0x1038cdd
mov eax, dword [edi]
push edi
call dword [eax + 8]
push 0x100b720
push esi
push 0x4d4
push 2
call fcn.01054409
add esp, 0x10
push 1
push 0
push 0
push 0xfffe
push 1
push 0x389
push 0x385
call fcn.010571e4
push 0
call fcn.010367df
mov byte [ebp - 0x11a], 1
xor eax, eax
cmp byte [ebp - 0x11a], al
sete al
dec eax
and eax, 0xfffffff0
add eax, 0x20
push eax
push 0x100b6f8
push esi
push 0x4de
push 2
call fcn.01054409
push 0x38
lea eax, [ebp - 0x15c]
push 0
push eax
call sub.msvcrt.dll_memset
mov eax, dword [ebx + 0x30]
xor ecx, ecx
add esp, 0x20
cmp byte [eax + 0x10], cl
sete cl
and dword [ebp - 0x138], 0
mov dword [ebp - 0x13c], ecx
xor ecx, ecx
inc ecx
mov dword [ebp - 0x150], ecx
mov edx, dword [eax]
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x144], ecx
mov edx, dword [eax + 8]
mov dword [ebp - 0x158], edx
mov eax, dword [eax + 4]
xor edx, edx
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x128], ecx
cmp dword [ebp - 0x13c], edx
je 0x1038d7b
mov eax, dword [ebp - 0x160]
jmp 0x1038d95
xor eax, eax
cmp byte [ebp - 0x11a], al
mov dword [ebp - 0x12c], edx
setne al
mov dword [ebp - 0x128], edx
add eax, 0x16
push 0x110
mov dword [ebp - 0x154], eax
mov dword [ebx + 4], eax
push edx
lea eax, [ebp - 0x114]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x118]
push eax
mov dword [ebp - 0x118], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
push dword [ebp - 0x10c]
push dword [ebp - 0x110]
push dword [ebp - 0x114]
push 0x100b6b0
push esi
push 0x513
push 2
call fcn.01054409
xor eax, eax
add esp, 0x1c
cmp byte [ebp - 0x119], al
mov byte [ebp - 0x119], 0
sete al
dec eax
and eax, 0x20
add eax, 0x20
cmp dword [ebp - 0x114], 6
mov dword [ebp - 0x124], eax
jb 0x1038ea1
push 0x100b690
push esi
push 0x51c
push 2
call fcn.01054409
add esp, 0x10
or dword [ebp - 0x124], 0x1000
mov byte [ebp - 0x119], 1
jmp 0x1038ea1
cmp dword [ebp - 0x120], 0x8876086c
jne 0x1038e82
cmp byte [ebp - 0x119], 0
je 0x1038e82
push 0x100b664
push esi
push 0x532
push 2
call fcn.01054409
add esp, 0x10
and dword [ebp - 0x124], 0xffffefff
mov byte [ebp - 0x119], 0
jmp 0x1038ea1
call fcn.01035b0e
test al, al
je 0x1038edc
cmp dword [ebx + 0x8c], 0
jne 0x1038edc
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.01035d76
mov ecx, dword [edi]
lea eax, [ebx + 0x3c]
push eax
lea eax, [ebp - 0x15c]
push eax
push dword [ebp - 0x124]
mov eax, dword [ebx + 0x30]
push dword [eax]
push dword [ebp - 0x29c]
push dword [ebp - 0x298]
push edi
call dword [ecx + 0x40]
mov dword [ebp - 0x120], eax
test eax, eax
jl 0x1038e45
jmp 0x1038f61
mov eax, dword [edi]
push edi
call dword [eax + 8]
cmp dword [ebp - 0x120], 0x8876017c
jne 0x1038f17
push 0x100b620
push esi
push 0x54d
push 2
call fcn.01054409
add esp, 0x10
push 1
push 0
push 0
push 0xfffe
push 1
push 0x37d
jmp 0x1038f50
push dword [ebp - 0x120]
call fcn.01045968
push eax
push dword [ebp - 0x120]
push 0x100b5e4
push esi
push 0x555
push 2
call fcn.01054409
add esp, 0x18
push 1
push 0
push 0
push 0xfffe
push 1
push 0x388
push 0x385
call fcn.010571e4
push 0
call fcn.010367df
push dword [ebp - 0x298]
mov eax, dword [edi]
push edi
call dword [eax + 0x3c]
mov dword [ebx + 0x28], eax
mov eax, dword [edi]
push edi
call dword [eax + 8]
push 0x100b5a8
push esi
push 0x560
push 2
call fcn.01054409
push dword [0x1098350]
call fcn.0103479e
push 0x14
call fcn.0103472f
mov ecx, eax
add esp, 0x18
test ecx, ecx
je 0x1038fae
xor eax, eax
mov edi, ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
jmp 0x1038fb0
xor ecx, ecx
mov dword [0x1098350], ecx
push dword [ebx + 0x3c]
call fcn.010494a4
mov eax, dword [ebp - 0x244]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x240]
push 1
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax]
push 0x16
push eax
call dword [ecx + 0xe4]
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax]
push 0
push 0x89
push eax
call dword [ecx + 0xe4]
cmp byte [ebp - 0x11a], 0
je 0x1039006
mov eax, dword [ebx + 0x30]
mov dword [eax + 0xc], 0x10
push 0x100b560
push esi
push 0x578
push 2
call fcn.01054409
add esp, 0x10
mov ecx, ebx
call fcn.0104959a
and dword [ebp - 0x120], 0
lea eax, [ebx + 0x44]
mov dword [ebx + 0x2c], eax
mov edi, eax
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax]
test al, al
je 0x10390aa
inc dword [ebp - 0x120]
add edi, 4
cmp dword [ebp - 0x120], 3
jb 0x1039031
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax]
push 0
lea edx, [ebx + 0x84]
push edx
push 2
push dword [ebx + 4]
push 4
push 4
push eax
call dword [ecx + 0x90]
mov edi, eax
test edi, edi
jge 0x10390df
push edi
call fcn.01045968
push eax
push edi
push 0x100b508
push esi
push 0x596
push 2
call fcn.01054409
add esp, 0x18
push 1
push 0
push 0
push 0xfffe
push 1
cmp edi, 0x8876017c
jne 0x10390c9
push 0x37d
jmp 0x10390ce
push dword [ebp - 0x120]
push 0x100b4c8
push esi
push 0x588
push 2
call fcn.01054409
add esp, 0x14
xor al, al
jmp 0x103910b
push 0x388
push 0x385
call fcn.010571e4
push 0
call fcn.010367df
push 0x100b460
push esi
push 0x5a4
push 2
call fcn.01054409
mov ecx, dword [0x10982d8]
add esp, 0x10
call fcn.010440fc
call fcn.01035b98
mov ecx, ebx
call fcn.01038108
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.01034b69
leave
ret