Function at 0x14004ec30
Capabilities:
Check os version

Disassembly:
push rbx
push rbp
push r15
mov eax, 0x8180
call fcn.1400cc430
sub rsp, rax
xor ebp, ebp
cmp byte [rcx], 0x3e
mov r15, rcx
jne 0x14004ecf9
mov rcx, qword [0x140110960]
lea rdx, str.KflGWIY1l4kY0ye0Ln7McI3igFnDI2DVihP9d50SUnYQgyUtbfJ8zBQ59rZgsM6psCSj73fIGLn9j9kW6jRANbwBJFvQSYIoH1wqB5filemQOd
call fcn.1400ae710
mov r9, qword [0x140110958]
mov rdx, qword [0x140110950]
test rax, rax
mov eax, ebp
setne bl
cmp byte [r15 + 1], 3
cmova rax, qword [0x1401108b8]
test bl, bl
mov qword [rsp + 0x48], rax
mov byte [rsp + 0x40], 1
sete cl
mov byte [rsp + 0x38], bl
lea rax, [rsp + 0x60]
xor r8d, r8d
mov qword [rsp + 0x30], rax
mov rax, qword [0x140110960]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], cl
lea rcx, [0x140112790]
call fcn.140048800
test eax, eax
jne 0x14004ecf9
test bl, bl
je 0x14004eceb
mov rcx, qword [0x14010e490]
lea rdx, str.ERROR
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400b3100
mov ebp, eax
mov eax, ebp
add rsp, 0x8180
pop r15
pop rbp
pop rbx
ret
movzx eax, byte [r15]
mov qword [rsp + 0x8178], rsi
mov qword [rsp + 0x8170], rdi
mov qword [rsp + 0x8168], r12
mov qword [rsp + 0x8160], r13
movaps xmmword [rsp + 0x8140], xmm6
cmp al, 0x5d
jne 0x14004eeae
xor ecx, ecx
push rax
call fcn.1402431b4
mov rcx, qword [0x140110950]
cmp word [rcx], bp
jne 0x14004ed4c
xor al, al
mov byte [rsp + 0x81a8], al
jmp 0x14004ed6b
mov r9, rax
xor r8d, r8d
xor edx, edx
call fcn.140018320
mov byte [rsp + 0x81a8], al
test al, al
jne 0x14004edac
mov rcx, qword [0x140110950]
lea rdx, [rsp + 0x5c]
xor r8d, r8d
call fcn.140075350
mov dword [rsp + 0x50], eax
test eax, eax
je 0x14004ed88
add eax, 0xfffffff4
cmp eax, 0x1f
jbe 0x14004edb7
mov rcx, qword [0x14010e490]
lea rdx, [0x1400ebbd8]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400b3100
jmp 0x14004f538
mov eax, dword [rsp + 0x81a0]
mov dword [rsp + 0x50], eax
mov rsi, qword [0x140110958]
mov r13b, 1
mov byte [rsp + 0x81a0], bpl
movzx eax, word [rsi]
mov dword [rsp + 0x54], 1
mov byte [rsp + 0x81b0], r13b
mov r12d, ebp
test ax, ax
je 0x14004ee92
movsd xmm6, qword [0x1400fb6c8]
lea rdi, [rsi + 2]
movzx ebx, ax
test ebx, 0xffffff80
jne 0x14004ee13
mov edx, 2
mov ecx, ebx
call fcn.1401a6641
int3
movzx eax, bx
cmp eax, 0x44
je 0x14004ee6d
cmp eax, 0x4c
je 0x14004ee67
cmp eax, 0x54
jne 0x14004ee75
mov rcx, rdi
xor r13b, r13b
call fcn.140012670
mov rcx, rdi
test al, al
je 0x14004ee56
xor edx, edx
lea r8d, [rdx + 0x10]
push rdx
call fcn.1401a659d
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, xmm6
cvttsd2si r12d, xmm0
jmp 0x14004ee75
push rbp
call fcn.1402c12f1
mulsd xmm0, xmm6
cvttsd2si r12d, xmm0
jmp 0x14004ee75
mov dword [rsp + 0x54], ebp
jmp 0x14004ee75
mov byte [rsp + 0x81a0], 1
movzx eax, word [rsi + 2]
add rsi, 2
add rdi, 2
test ax, ax
jne 0x14004edf4
mov byte [rsp + 0x81b0], r13b
lea rax, [rsp + 0x130]
mov dword [rsp + 0x120], ebp
mov qword [rsp + 0x110], rax
jmp 0x14004ef79
mov rdx, qword [0x140110950]
mov rcx, qword [0x140110960]
cmp al, 0x3e
je 0x14004eec9
cmp al, 0x5c
je 0x14004eecd
cmp word [rcx], bp
jne 0x14004eed2
cmp al, 0x5c
jne 0x14004ef37
cmp word [rdx], bp
je 0x14004ef37
xor r13b, r13b
cmp al, 0x5c
cmove rcx, rdx
mov byte [rsp + 0x81b0], r13b
call fcn.1400246d0
movzx eax, byte [rsp + 0x81a0]
movzx edx, byte [rsp + 0x81a0]
mulsd xmm0, qword [0x1400fb6c8]
mov ecx, dword [rsp + 0x81a0]
mov byte [rsp + 0x81a0], al
mov byte [rsp + 0x81a8], dl
cvttsd2si r12d, xmm0
mov eax, dword [rsp + 0x81a0]
mov dword [rsp + 0x50], ecx
mov dword [rsp + 0x54], eax
cmp r12d, 1
jge 0x14004ef79
mov r12d, 0x1f4
jmp 0x14004ef79
movzx eax, byte [rsp + 0x81a0]
mov r13b, 1
mov r12d, ebp
mov byte [rsp + 0x81a8], al
mov eax, dword [rsp + 0x81a0]
mov byte [rsp + 0x81b0], r13b
mov dword [rsp + 0x50], eax
movzx eax, byte [rsp + 0x81a0]
mov byte [rsp + 0x81a0], al
mov eax, dword [rsp + 0x81a0]
mov dword [rsp + 0x54], eax
cmp byte [r15], 0x3e
mov qword [rsp + 0x8158], r14
je 0x14004efa6
mov rcx, qword [0x14010e490]
lea rdx, [0x1400ce5d8]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400b3100
cmp byte [r15], 0x5c
jne 0x14004efc6
mov edx, 1
mov rcx, r15
call fcn.140036560
mov byte [rsp + 0x81b8], 1
cmp eax, 1
je 0x14004efce
mov byte [rsp + 0x81b8], bpl
mov r14d, ebp
mov ecx, 0x4001
lea rdi, [rsp + 0x130]
lea rdx, [0x1400ce544]
cmp byte [r15 + 1], bpl
jbe 0x14004f07d
mov rsi, rbp
lea r13, sym.__________SC.bin__Q_0s_5s__K_x_SA.sEsbp_BL_g__h.sb0IFF_b
nop dword [rax]
test ecx, ecx
jne 0x14004f00b
mov qword [rsp + rsi + 0x70], rdx
jmp 0x14004f063
mov rdx, qword [rsi + r13 + 0x110950]
movsxd rbx, ecx
mov rcx, rdi
lea r8, [rbx - 1]
mov qword [rsp + rsi + 0x70], rdi
call fcn.140159232
int3
movzx eax, byte [r15 + 1]
inc r14d
add rsi, 8
cmp r14d, eax
jl 0x14004f000
movzx r13d, byte [rsp + 0x81b0]
mov edi, dword gs:[0x48]
push rax
call fcn.140272839
mov r14, qword [rsp + 0x60]
xorps xmm6, xmm6
movzx esi, byte [rsp + 0x81a0]
mov ebx, eax
mov r11, qword [0x14010b028]
lea r9, sym.__________SC.bin__Q_0s_5s__K_x_SA.sEsbp_BL_g__h.sb0IFF_b
mov rdx, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov r10, qword [rsp + 0x78]
movzx eax, byte [r15]
add eax, 0xffffffc2
cmp eax, 0x40
ja case.0x14004f0e6.69
cdqe
movzx eax, byte [r9 + rax + 0x4f58c]
mov ecx, dword [r9 + rax*4 + 0x4f56c]
add rcx, r9
jmp rcx
movzx eax, byte [r15 + 1]
mov dword [rsp + 0x40], ebp
mov qword [rsp + 0x38], rbp
cmp al, 4
mov byte [rsp + 0x30], 1
lea r10, [0x1400ce544]
cmova r10, rdx
cmp al, 3
lea r9, [0x1400ce544]
cmova r9, r8
cmp al, 1
lea r8, [0x1400ce544]
cmova r8, qword [rsp + 0x78]
test al, al
lea rdx, [0x1400ce544]
cmovne rdx, qword [rsp + 0x70]
mov rcx, r11
mov byte [rsp + 0x28], bpl
mov qword [rsp + 0x20], r10
call fcn.1400b48e0
test rax, rax
je case.0x14004f0e6.69
mov rax, qword [0x14010b028]
cmp dword [rax + 0x74], 0xffffffff
jle 0x14004f50a
call fcn.1402cc61c
int3
call fcn.1402a6252
int3
movzx eax, byte [r15 + 1]
mov dword [rsp + 0x40], ebp
mov qword [rsp + 0x38], rbp
cmp al, 4
mov byte [rsp + 0x30], bpl
lea rcx, [0x1400ce544]
cmova rcx, rdx
cmp al, 3
lea r9, [0x1400ce544]
cmova r9, r8
cmp al, 1
lea r8, [0x1400ce544]
cmova r8, r10
test al, al
lea rdx, [0x1400ce544]
cmovne rdx, qword [rsp + 0x70]
mov byte [rsp + 0x28], bpl
mov qword [rsp + 0x20], rcx
mov rcx, r11
call fcn.1400b48e0
test rax, rax
jne case.0x14004f0e6.69
mov rax, qword [0x14010b028]
cmp dword [rax + 0x74], 0xffffffff
jle 0x14004f50a
push rcx
call fcn.1401fa739
cmp dword [0x140111718], eax
mov rax, qword [0x14010b028]
mov ecx, dword [rax + 0x74]
jne 0x14004f17b
mov edx, 1
call fcn.140001be0
mov eax, 1
jmp 0x14004f530
movzx eax, byte [r15 + 1]
lea rcx, [0x1400ce544]
lea r9, [0x1400ce544]
cmp al, 4
mov byte [rsp + 0x28], 1
cmova rcx, rdx
cmp al, 3
lea rdx, [0x1400ce544]
cmova r9, r8
cmp al, 1
mov qword [rsp + 0x20], rcx
lea r8, [0x1400ce544]
mov rcx, r11
cmova r8, r10
test al, al
cmovne rdx, qword [rsp + 0x70]
call fcn.1400b46e0
test rax, rax
jne 0x14004f1ef
jmp case.0x14004f0e6.69
movzx eax, byte [r15 + 1]
lea rcx, [0x1400ce544]
lea r9, [0x1400ce544]
cmp al, 4
mov byte [rsp + 0x28], 1
cmova rcx, rdx
cmp al, 3
lea rdx, [0x1400ce544]
cmova r9, r8
cmp al, 1
mov qword [rsp + 0x20], rcx
lea r8, [0x1400ce544]
mov rcx, r11
cmova r8, r10
test al, al
cmovne rdx, qword [rsp + 0x70]
call fcn.1400b46e0
test rax, rax
je 0x14004f1ef
jmp case.0x14004f0e6.69
cmp byte [rsp + 0x81b8], bpl
je 0x14004f303
push rbp
call fcn.14028b0c8
test eax, eax
jne 0x14004f50a
jmp case.0x14004f0e6.69
mov ecx, SafeArrayDestroy
call fcn.14030508e
int3
movzx eax, byte [rsp + 0x81a8]
test al, al
je 0x14004f34f
mov edx, dword [rsp + 0x54]
movzx ecx, al
call fcn.1400756d0
cmp al, sil
je 0x14004f50a
jmp case.0x14004f0e6.69
mov rax, qword [rsp + 0x110]
mov word [rax], bp
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x14004f384
mov edx, dword [rsp + 0x5c]
lea r8, [rsp + 0x110]
xor r9d, r9d
mov ecx, eax
call fcn.140075780
ucomisd xmm0, xmm6
jp 0x14004f380
je 0x14004f384
mov al, 1
jmp 0x14004f386
xor eax, eax
cmp al, sil
je 0x14004f50a
jmp case.0x14004f0e6.69
test r14, r14
je 0x14004f4f4
lea rdx, [rsp + 0x58]
mov rcx, r14
call fcn.14024a4ad
int3
cmp dword [0x140111718], edi
jne 0x14004f4a4
test r13b, r13b
jne 0x14004f3dc
call fcn.14026a9dd
int3
mov edx, 1
mov ecx, 0x8000012f
call fcn.140001be0
test al, al
je 0x14004f09d
mov r11, qword [0x14010b028]
mov rdx, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov r10, qword [rsp + 0x78]
lea r9, sym.__________SC.bin__Q_0s_5s__K_x_SA.sEsbp_BL_g__h.sb0IFF_b
cmp byte [r11 + 0x139], bpl
je 0x14004f0c0
movsxd rcx, dword [0x14010f5c4]
mov eax, 0x190
lea r9, sym.__________SC.bin__Q_0s_5s__K_x_SA.sEsbp_BL_g__h.sb0IFF_b
test ecx, ecx
cmovne eax, ecx
dec eax
movsxd rdx, eax
cmp qword [r9 + rdx*8 + 0x10fc20], r15
jne 0x14004f460
cmp dword [r9 + rdx*4 + 0x10f5e0], ebx
mov rdx, qword [rsp + 0x90]
je 0x14004f0c0
mov rdx, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov r10, qword [rsp + 0x78]
mov qword [r9 + rcx*8 + 0x10fc20], r15
mov dword [r9 + rcx*4 + 0x10f5e0], ebx
inc ecx
mov dword [0x14010f5c4], ecx
cmp ecx, 0x190
jl 0x14004f0c0
mov dword [0x14010f5c4], ebp
jmp 0x14004f0ab
test r13b, r13b
jne 0x14004f4ba
push rsi
call fcn.1402cd8ea
lea ecx, [rbx + r12]
sub ecx, eax
cmp ecx, 5
jle 0x14004f511
mov ecx, 0xa
call fcn.1402248ae
int3
mov dword [rsp + 0x58], ebp
mov rcx, qword [0x14010e490]
movsxd rdx, ebp
mov r8b, 0x18
call fcn.140001720
mov eax, 1
jmp 0x14004f530
mov rcx, qword [0x14010e490]
lea rdx, [0x1400ebbd8]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400b3100
mov r14, qword [rsp + 0x8158]
mov r13, qword [rsp + 0x8160]
mov r12, qword [rsp + 0x8168]
mov rdi, qword [rsp + 0x8170]
movaps xmm6, xmmword [rsp + 0x8140]
mov rsi, qword [rsp + 0x8178]
add rsp, 0x8180
pop r15
pop rbp
pop rbx
ret