Function at 0x41ae00
Capabilities:
Check os version

Disassembly:
lea r12, [rsp - 0x188]
cmp r12, qword [r14 + 0x10]
jbe 0x41baa9
sub rsp, 0x208
mov qword [rsp + 0x200], rbp
lea rbp, [rsp + 0x200]
mov eax, 2
call fcn.0041a2e0
lea rax, [0x0062e0f0]
call fcn.004023a0
mov qword [0x005d8ff8], rax
call fcn.00457d20
mov qword [rsp + 0x38], rax
call fcn.00449b60
mov qword [rax + 0xd0], 5
lea rdi, [rax + 0xc8]
mov qword [rsp + 0x1f8], rdi
cmp dword [0x0062d9b0], 0
jne 0x41ae88
lea rdx, [0x004eefac]
mov qword [rax + 0xc8], rdx
jmp 0x41ae94
lea rdx, [0x004eefac]
call fcn.00466d00
mov qword [rsp + 0x1d0], rax
mov byte [rax + 0xf9], 2
mov rdx, qword [rax + 0x90]
mov qword [rsp + 0x1e0], rdx
mov ebx, 2
mov ecx, 6
mov rax, rdx
nop
call fcn.0043e1a0
movups xmmword [rsp + 0x108], xmm15
lea rdx, [0x0041bac0]
mov qword [rsp + 0x108], rdx
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x110], rdx
lea rdx, [rsp + 0x108]
mov qword [rsp], rdx
call fcn.004648e0
xorps xmm15, xmm15
mov r14, qword [0x0062d908]
mov r14, qword gs:[r14]
mov r14, qword [r14]
lea rdx, [0x004fbf50]
mov qword [rsp], rdx
call fcn.004648e0
xorps xmm15, xmm15
mov r14, qword [0x0062d908]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rdx, qword [rsp + 0x1d0]
mov byte [rdx + 0xf9], 0
mov rax, qword [rsp + 0x1e0]
mov ebx, 4
mov ecx, 2
call fcn.0043dde0
cmp byte [0x005df8f0], 0
je 0x41af65
nop
call fcn.00459120
mov rcx, qword [rsp + 0x1d0]
mov qword [rcx + 0xd0], 0
cmp dword [0x0062d9b0], 0
nop
jne 0x41af8f
mov qword [rcx + 0xc8], 0
jmp 0x41af9e
mov rdi, qword [rsp + 0x1f8]
xor edx, edx
call fcn.00466d00
cmp dword [0x0062d748], 0
jne 0x41ba97
lea rax, [0x0062e198]
call fcn.00432f20
mov qword [0x00631290], rax
lea rcx, [0x004fbf28]
mov qword [rsp], rcx
call fcn.004648e0
xorps xmm15, xmm15
mov r14, qword [0x0062d908]
mov r14, qword gs:[r14]
mov r14, qword [r14]
call fcn.00457d20
mov qword [rsp + 0x60], rax
call fcn.00468960
xorps xmm15, xmm15
mov r14, qword [0x0062d908]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp]
mov qword [rsp + 0x40], rcx
movsxd rdx, dword [rsp + 8]
mov qword [rsp + 0x100], rdx
mov rbx, qword [0x005d8fe8]
mov rsi, qword [rsp + 0x60]
mov rdi, rsi
sub rsi, rbx
add qword [0x005d8fe0], rsi
mov qword [0x005d8fd8], rdi
mov rbx, qword [0x005d8fe8]
sub rdi, rbx
lea rax, [0x006312a0]
mov rbx, rdi
call fcn.0040a740
mov rcx, qword [rsp + 0x40]
imul rcx, rcx, 0x3b9aca00
mov rdx, qword [rsp + 0x100]
add rcx, rdx
lea rdx, [0x00630268]
mov rbx, rcx
xchg qword [rdx], rcx
mov rcx, qword [rsp + 0x60]
lea rdx, [0x00631288]
xchg qword [rdx], rcx
movzx ecx, byte [0x00631278]
mov rdx, qword [0x005d8fe0]
lea rdi, [0x00630278]
mov qword [rdi + rcx*8], rdx
movzx ecx, byte [0x00631278]
lea rdx, [0x00630a78]
mov qword [rdx + rcx*8], rbx
mov rcx, qword [0x00630270]
add rcx, qword [0x005d8fe0]
mov qword [0x00630270], rcx
movsxd rcx, dword [0x005d8fb4]
mov qword [rsp + 0x100], rcx
mov rdx, qword [0x005d8fc8]
sub rdx, qword [0x005d8fc0]
mov qword [rsp + 0xf8], rdx
lea rax, [0x0062e148]
call fcn.00402140
mov qword [rsp + 0x88], rax
lea rax, [0x0062e150]
call fcn.00402140
mov qword [rsp + 0x80], rax
lea rax, [0x0062e158]
call fcn.00402140
mov qword [rsp + 0x78], rax
lea rax, [0x0062e160]
call fcn.00402140
mov qword [rsp + 0x70], rax
movsxd rcx, dword [0x005d8fb4]
mov qword [rsp + 0xf0], rcx
mov rdx, qword [0x005d8fd8]
sub rdx, qword [0x005d8fd0]
mov qword [rsp + 0xe8], rdx
lea rax, [0x0062da50]
nop
call fcn.00402140
mov qword [rsp + 0x48], rax
lea rax, [0x0062da58]
call fcn.00402140
mov rcx, qword [rsp + 0x88]
add qword [0x005d9008], rcx
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
lea rsi, [rbx + rdx]
add qword [0x005d9010], rsi
mov rsi, qword [rsp + 0x70]
add qword [0x005d9018], rsi
mov rdi, qword [rsp + 0xf8]
mov r8, qword [rsp + 0x100]
imul rdi, r8
mov qword [rsp + 0x30], rdi
mov r8, qword [rsp + 0xf0]
mov r9, qword [rsp + 0xe8]
imul r8, r9
mov qword [rsp + 0x68], r8
lea r9, [rdi + r8]
add qword [0x005d9020], r9
add rcx, rdi
add rcx, rdx
add rcx, rbx
add rcx, rsi
add rcx, r8
add qword [0x005d9028], rcx
mov rcx, qword [rsp + 0x48]
add qword [0x005d9030], rcx
add qword [0x005d9038], rax
add rcx, rax
add qword [0x005d9040], rcx
mov rcx, qword [0x005d9568]
mov rdx, qword [rsp + 0x60]
sub rdx, rcx
movsxd rcx, dword [0x0062d74c]
imul rcx, rdx
add rcx, qword [0x005d9570]
mov qword [0x005d9058], rcx
lea rax, [0x005d9a90]
call fcn.00402140
add rax, qword [0x005d9048]
mov qword [0x005d9048], rax
mov rcx, qword [0x005d9058]
mov rdx, qword [0x005d9028]
add rdx, qword [0x005d9040]
add rdx, rax
sub rcx, rdx
mov qword [0x005d9050], rcx
mov rcx, qword [0x005d9028]
sub rcx, qword [0x005d9018]
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
mov rcx, qword [0x005d9058]
xorps xmm1, xmm1
cvtsi2sd xmm1, rcx
divsd xmm0, xmm1
movsd qword [0x00631280], xmm0
lea rax, [0x0062da50]
xor ebx, ebx
call fcn.00402160
lea rax, [0x0062da58]
xor ebx, ebx
call fcn.00402160
lea rax, [0x005d9a90]
xor ebx, ebx
call fcn.00402160
mov qword [0x005d8a34], 0
cmp byte [0x005d8f78], 0
je 0x41b2f2
inc dword [0x0063127c]
lea rax, [0x005d8fa0]
call fcn.0040be00
inc dword [0x00631278]
lea rax, [0x005d8fa8]
call fcn.00442040
lea rax, [0x005d8fa0]
call fcn.0040c020
lea rax, [0x0062dc60]
mov rbx, qword [rsp + 0x60]
call fcn.0041cd60
call fcn.004301a0
lea rax, [0x005d8a3c]
call fcn.004254c0
nop
test bl, bl
je 0x41ba86
mov byte [rsp + 0x2b], bl
mov dword [rsp + 0x2c], eax
lea rax, [0x004fbf58]
mov qword [rsp], rax
nop dword [rax + rax]
call fcn.004648e0
xorps xmm15, xmm15
mov r14, qword [0x0062d908]
mov r14, qword gs:[r14]
mov r14, qword [r14]
call fcn.004301e0
nop dword [rax]
call fcn.00427e00
lea rax, [0x004fbf10]
mov qword [rsp], rax
call fcn.004648e0
xorps xmm15, xmm15
mov r14, qword [0x0062d908]
mov r14, qword gs:[r14]
mov r14, qword [r14]
lea rax, [0x004fbf68]
mov qword [rsp], rax
call fcn.004648e0
xorps xmm15, xmm15
mov r14, qword [0x0062d908]
mov r14, qword gs:[r14]
mov r14, qword [r14]
lea rax, [0x005d8a3c]
mov ebx, dword [rsp + 0x2c]
movzx ecx, byte [rsp + 0x2b]
call fcn.00425540
cmp dword [0x0062dc1c], 0
jle 0x41b9a5
movsd xmm0, qword [0x00501c60]
mulsd xmm0, qword [0x00631280]
movsd qword [rsp + 0xe0], xmm0
movups xmmword [rsp + 0x118], xmm15
movups xmmword [rsp + 0x120], xmm15
call fcn.0043b220
mov rax, qword [0x005d8fc0]
sub rax, qword [0x0062d8d0]
mov rcx, rax
movabs rax, 0x8637bd05af6c69b6
mul rcx
shr rdx, 0x13
lea rax, [rsp + 0x118]
mov ebx, 0x18
mov rcx, rbx
mov rdi, rdx
mov esi, 3
call fcn.0041caa0
mov ecx, dword [0x00631278]
mov qword [rsp + 0xd8], rcx
mov rdx, rax
lea rax, [rsp + 0x188]
mov rsi, rbx
mov rbx, rdx
mov rcx, rsi
nop dword [rax]
call fcn.00451560
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0xd0], rbx
call fcn.0043b220
lea rax, [0x004eec64]
mov ebx, 3
call fcn.0043bac0
mov rax, qword [rsp + 0xd8]
call fcn.0043b800
lea rax, [0x004eea93]
mov ebx, 2
call fcn.0043bac0
mov rax, qword [rsp + 0x1f0]
mov rbx, qword [rsp + 0xd0]
call fcn.0043bac0
lea rax, [0x004eeb1b]
mov ebx, 2
call fcn.0043bac0
movsd xmm0, qword [rsp + 0xe0]
cvttsd2si rax, xmm0
nop dword [rax]
call fcn.0043b8e0
lea rax, [0x004eeb47]
mov ebx, 3
call fcn.0043bac0
call fcn.0043b2a0
mov rax, qword [0x005d8fc0]
movups xmmword [rsp + 0x130], xmm15
movups xmmword [rsp + 0x138], xmm15
mov rcx, qword [0x005d8fc8]
mov qword [rsp + 0x130], rcx
mov rcx, qword [0x005d8fd0]
mov qword [rsp + 0x138], rcx
mov rcx, qword [0x005d8fd8]
mov qword [rsp + 0x140], rcx
xor ecx, ecx
jmp 0x41b5cf
sub rdi, rax
lea rax, [rsp + 0x118]
mov ebx, 0x18
mov rcx, rbx
call fcn.0041cb40
mov rcx, rbx
mov rbx, rax
lea rax, [rsp + 0x168]
call fcn.00451560
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0xd0], rbx
call fcn.0043b220
mov rax, qword [rsp + 0x1f0]
mov rbx, qword [rsp + 0xd0]
call fcn.0043bac0
call fcn.0043b2a0
mov rcx, qword [rsp + 0x98]
inc rcx
mov rax, qword [rsp + 0x50]
cmp rcx, 3
jge 0x41b62d
mov qword [rsp + 0x98], rcx
mov rdi, qword [rsp + rcx*8 + 0x130]
mov qword [rsp + 0x50], rdi
test rcx, rcx
je 0x41b565
mov qword [rsp + 0x100], rax
nop dword [rax + rax]
call fcn.0043b220
lea rax, [0x004eea79]
mov ebx, 1
call fcn.0043bac0
call fcn.0043b2a0
mov rax, qword [rsp + 0x100]
mov rdi, qword [rsp + 0x50]
jmp 0x41b565
call fcn.0043b220
lea rax, [0x004f0112]
mov ebx, 0xb
nop
call fcn.0043bac0
call fcn.0043b2a0
lea rax, [0x0062e148]
call fcn.00402140
mov qword [rsp + 0x100], rax
lea rax, [0x0062e150]
call fcn.00402140
mov qword [rsp + 0xf8], rax
lea rax, [0x0062e158]
call fcn.00402140
mov qword [rsp + 0xf0], rax
lea rax, [0x0062e160]
call fcn.00402140
movups xmmword [rsp + 0x1a8], xmm15
movups xmmword [rsp + 0x1b0], xmm15
movups xmmword [rsp + 0x1c0], xmm15
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x1a8], rcx
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x1b0], rcx
mov rcx, qword [rsp + 0xf8]
mov rdx, qword [rsp + 0xf0]
add rcx, rdx
mov qword [rsp + 0x1b8], rcx
mov qword [rsp + 0x1c0], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x1c8], rax
xor eax, eax
jmp 0x41b760
lea rax, [rsp + 0x118]
mov ebx, 0x18
mov rcx, rbx
call fcn.0041cb40
mov rcx, rbx
mov rbx, rax
lea rax, [rsp + 0x148]
call fcn.00451560
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0xd0], rbx
call fcn.0043b220
mov rax, qword [rsp + 0x1f0]
mov rbx, qword [rsp + 0xd0]
call fcn.0043bac0
call fcn.0043b2a0
mov rax, qword [rsp + 0x90]
inc rax
cmp rax, 5
jge 0x41b7ed
mov qword [rsp + 0x90], rax
mov rdi, qword [rsp + rax*8 + 0x1a8]
mov qword [rsp + 0x58], rdi
nop
cmp rax, 2
je 0x41b78c
cmp rax, 3
jne 0x41b7b4
call fcn.0043b220
lea rax, [0x004eea7a]
mov ebx, 1
nop dword [rax]
call fcn.0043bac0
call fcn.0043b2a0
mov rdi, qword [rsp + 0x58]
jmp 0x41b6fe
test rax, rax
je 0x41b6fe
nop dword [rax]
call fcn.0043b220
lea rax, [0x004eea79]
mov ebx, 1
call fcn.0043bac0
call fcn.0043b2a0
mov rax, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x58]
jmp 0x41b6fe
lea rax, [0x0062e108]
call fcn.004023a0
mov qword [rsp + 0xd8], rax
lea rax, [0x0062e118]
call fcn.004023a0
mov qword [rsp + 0xc8], rax
mov rcx, qword [0x005d8ff0]
mov qword [rsp + 0xc0], rcx
mov rdx, qword [0x005d8ff8]
mov qword [rsp + 0xb8], rdx
mov rbx, qword [0x005d9000]
mov qword [rsp + 0xb0], rbx
mov rsi, qword [0x0062e0e8]
mov qword [rsp + 0xa8], rsi
movsxd rdi, dword [0x005d8fb8]
mov qword [rsp + 0x100], rdi
call fcn.0043b220
lea rax, [0x004ef9a5]
mov ebx, 9
call fcn.0043bac0
mov rax, qword [rsp + 0xc0]
shr rax, 0x14
call fcn.0043b800
lea rax, [0x004eeaa5]
mov ebx, 2
call fcn.0043bac0
mov rax, qword [rsp + 0xb8]
shr rax, 0x14
call fcn.0043b800
lea rax, [0x004eeaa5]
mov ebx, 2
call fcn.0043bac0
mov rax, qword [rsp + 0xb0]
shr rax, 0x14
call fcn.0043b800
lea rax, [0x004eee7b]
mov ebx, 5
call fcn.0043bac0
mov rax, qword [rsp + 0xa8]
shr rax, 0x14
call fcn.0043b800
lea rax, [0x004efccf]
mov ebx, 0xa
call fcn.0043bac0
mov rax, qword [rsp + 0xd8]
shr rax, 0x14
call fcn.0043b800
lea rax, [0x004f056b]
mov ebx, 0xc
nop dword [rax + rax]
call fcn.0043bac0
mov rax, qword [rsp + 0xc8]
shr rax, 0x14
call fcn.0043b800
lea rax, [0x004f0aac]
mov ebx, 0xd
call fcn.0043bac0
mov rax, qword [rsp + 0x100]
call fcn.0043b8e0
lea rax, [0x004eea95]
mov ebx, 2
call fcn.0043bac0
call fcn.0043b2a0
cmp byte [0x005d8f78], 0
je 0x41b98e
call fcn.0043b220
lea rax, [0x004ef942]
mov ebx, 9
call fcn.0043bac0
call fcn.0043b2a0
call fcn.0043b220
call fcn.0043b460
call fcn.0043b2a0
nop dword [rax]
call fcn.0043b2a0
lea rax, [0x005d8a60]
call fcn.0040be00
mov rcx, qword [0x005d8a80]
mov qword [rsp + 0x1d8], rcx
mov rdx, qword [0x005d8a88]
mov qword [rsp + 0xa0], rdx
movups xmmword [0x005d8a88], xmm15
cmp dword [0x0062d9b0], 0
nop
jne 0x41b9ef
mov qword [0x005d8a80], 0
jmp 0x41b9fd
lea rdi, [0x005d8a80]
xor ebx, ebx
call fcn.00466d20
lea rax, [0x005d8a60]
call fcn.0040c020
mov rcx, qword [rsp + 0x1d8]
xor eax, eax
jmp 0x41ba44
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x1e8], rcx
mov rax, qword [rcx]
call fcn.00404980
mov rcx, qword [rsp + 0x1e8]
add rcx, 0x10
mov rax, qword [rsp + 0xd0]
inc rax
mov rdx, qword [rsp + 0xa0]
cmp rax, rdx
jl 0x41ba15
lea rax, [0x00584374]
call fcn.0044b920
lea rax, [0x00584368]
call fcn.0044b920
mov rax, qword [rsp + 0x1d0]
call fcn.00449b80
mov rbp, qword [rsp + 0x200]
add rsp, 0x208
ret
lea rax, [0x004f5afe]
mov ebx, 0x1b
call fcn.00439a60
lea rax, [0x004f65b1]
mov ebx, 0x1d
call fcn.00439a60
nop
call fcn.00464a20
jmp fcn.0041ae00