Function at 0x412194
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x6a0
mov eax, dword [ebp + 8]
mov dword [esp + 0x110], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x160], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0xb0], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x74], eax
mov dword [esp + 0xac], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0xbc], 0
lea eax, [esp + 0x492]
mov ecx, 0x20a
cmp ecx, 0
je 0x412384
mov byte [eax], 0
add ecx, 0xffffffff
add eax, 1
jmp 0x412374
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 4], 0x4268
call fcn.004120d6
xor eax, eax
mov ecx, dword [esp + 0x74]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x44]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x70]
mov edx, eax
mov si, word [ecx + edx*2]
add eax, 1
cmp si, 0
jne 0x4123ab
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x7c]
sub ecx, 1
movzx eax, word [eax + ecx*2]
cmp eax, 0x22
jne 0x4123db
jmp 0x4123d4
jmp 0x4123d6
jmp 0x414479
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x7c]
sub ecx, 1
movzx eax, word [eax + ecx*2]
cmp eax, 0x6b
jne 0x41240e
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x7c]
sub ecx, 2
movzx eax, word [eax + ecx*2]
cmp eax, 0x2d
jne 0x41240e
mov dword [esp + 0xbc], 1
lea eax, [esp + 0x492]
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
mov dword [esp + 4], 2
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x104
lea eax, [esp + 0xf4]
mov dword [esp + 0x10], eax
call fcn.00411ffd
cmp dword [esp + 0xf4], 3
jae 0x41244f
jmp 0x414479
mov dword [esp], 0x7f564a48
call fcn.00412134
movzx eax, word [eax]
cmp eax, 0x8664
jne 0x41246d
mov dword [esp + 0x54], 1
cmp dword [esp + 0xbc], 0
jne 0x41248a
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 4], 0x59d8
call fcn.004120d6
jmp 0x41248c
lea eax, [esp + 0x16c]
mov ecx, 0x11c
cmp ecx, 0
je 0x4124a8
mov byte [eax], 0
add ecx, 0xffffffff
add eax, 1
jmp 0x412498
mov eax, dword [esp + 0x74]
movzx eax, word [eax + 0xac]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0xa4]
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0xa8]
mov dword [esp + 0x174], eax
cmp dword [esp + 0x170], 6
sete al
test al, 1
jne 0x4124ed
jmp 0x412522
cmp dword [esp + 0x174], 1
jne 0x412522
mov dword [esp], 0x7f56480c
call fcn.00412134
movzx eax, byte [eax]
cmp eax, 0
je 0x412520
mov dword [esp], 0x7f564800
call fcn.00412134
mov al, byte [eax]
mov byte [esp + 0x286], al
jmp 0x412522
mov esi, dword [ebp + 8]
mov dword [esp], 0xac134c
call fcn.00412134
add esi, eax
mov dword [esp + 0xf8], esi
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
add al, 0x24
call fcn.00412142
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0xac], eax
mov dword [esp + 0x50], 0
cmp dword [esp + 0x50], 0x105
jae 0x41258e
mov eax, dword [esp + 0x50]
mov word [esp + eax*2 + 0x288], 0
mov eax, dword [esp + 0x50]
add eax, 1
mov dword [esp + 0x50], eax
jmp 0x412569
lea edx, [esp + 0x288]
mov eax, dword [esp + 0x100]
cmp eax, 0
je 0x4125ca
jmp 0x4125a3
mov ecx, edx
mov si, word [ecx]
add edx, 2
cmp si, 0
jne 0x4125a3
mov dx, word [eax]
cmp dx, 0
je 0x4125c5
mov word [ecx], dx
add ecx, 2
add eax, 2
jmp 0x4125b1
mov word [ecx], 0
lea edx, [esp + 0x288]
mov eax, dword [esp + 0xac]
cmp eax, 0
je 0x412606
jmp 0x4125df
mov ecx, edx
mov si, word [ecx]
add edx, 2
cmp si, 0
jne 0x4125df
mov dx, word [eax]
cmp dx, 0
je 0x412601
mov word [ecx], dx
add ecx, 2
add eax, 2
jmp 0x4125ed
mov word [ecx], 0
lea eax, [esp + 0x288]
mov edx, eax
mov ecx, eax
mov si, word [edx]
test si, si
je 0x412623
jmp 0x41261b
sub si, 0x5c
je 0x412627
jmp 0x41262c
mov edx, eax
jmp 0x412631
mov ecx, edx
add ecx, 2
add edx, 2
jmp 0x412611
cmp eax, ecx
jae 0x412643
mov si, word [eax]
mov word [edx], si
add edx, 2
add eax, 2
jmp 0x412631
lea eax, [esp + 0x492]
mov word [edx], 0
mov dword [esp + 0xfc], edx
mov ecx, dword [esp + 0xfc]
cmp ecx, 0
sete dl
cmp ecx, eax
sete dh
or dh, dl
test dh, 1
jne 0x41268a
jmp 0x412671
mov dx, word [eax]
cmp dx, 0
je 0x412685
mov word [ecx], dx
add ecx, 2
add eax, 2
jmp 0x412671
mov word [ecx], 0
xor ecx, ecx
lea edx, [esp + 0x288]
mov eax, ecx
mov si, word [edx + eax*2]
add ecx, 1
cmp si, 0
jne 0x412693
lea ecx, [esp + 0x288]
shl eax, 1
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
mov word [esp + 0x128], ax
mov eax, dword [esp + 0xa8]
add eax, 2
mov word [esp + 0x12a], ax
mov dword [esp + 0x12c], ecx
lea eax, [esp + 0xdc]
mov ecx, 0x18
cmp ecx, 0
je 0x4126f7
mov byte [eax], 0
add ecx, 0xffffffff
add eax, 1
jmp 0x4126e7
mov dword [esp + 0xdc], 0x18
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe8], 0x40
lea eax, [esp + 0x128]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
lea eax, [esp + 0x44]
mov ecx, 8
cmp ecx, 0
je 0x412755
mov byte [eax], 0
add ecx, 0xffffffff
add eax, 1
jmp 0x412745
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x178]
mov eax, dword [esp + 0x170]
cmp eax, 0xa
sete dl
cmp esi, 0
je 0x4128a3
test dl, 1
jne 0x41277d
jmp 0x4127c9
cmp dword [esp + 0x174], 0
jne 0x412865
xor eax, eax
lea eax, [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x44]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.00411d67
jmp 0x412ae6
cmp eax, 6
jne 0x412865
mov eax, dword [esp + 0x174]
mov ecx, eax
sub ecx, 2
je 0x412827
jmp 0x4127e2
sub eax, 3
jne 0x412865
jmp 0x4127e9
xor eax, eax
lea eax, [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x44]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.00411db2
jmp 0x412ae6
xor eax, eax
lea eax, [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x44]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.00411e1c
jmp 0x412ae6
xor eax, eax
lea eax, [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x44]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.00411d92
jmp 0x412ae6
test dl, 1
jne 0x4128ad
jmp 0x4129ea
cmp dword [esp + 0x174], 0
mov eax, 0xc00000bb
jne 0x412ae6
mov eax, ecx
sub eax, 0x2800
je 0x4128f2
jmp 0x4128cb
mov eax, ecx
sub eax, 0x295a
je 0x4128f2
jmp 0x4128d6
mov eax, ecx
sub eax, 0x3839
je 0x412930
jmp 0x4128e1
sub ecx, 0x3ad7
je 0x41296e
jmp 0x4129ac
xor eax, eax
lea eax, [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
xor eax, eax
xor eax, eax
lea eax, [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x44]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
inc esp
and al, 0x10
add dword [eax], eax
add byte [eax], al
mov dword [esp + 0x14], 0
call fcn.00411df1
jmp 0x412ae6
xor eax, eax
lea eax, [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x44]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.00411da7
jmp 0x412ae6
cmp eax, 6
mov eax, 0xc00000bb