Function at 0x14049ea10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
mov qword [rsp + 0x88], r8
mov rsi, rdx
mov r15, rcx
mov rax, qword [0x1406a7e00]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov dword [rdx + 0xc], 0x80000000
mov qword [rsp + 0xa8], 0
mov eax, dword [rcx + 0x28]
mov dword [rdx], eax
movzx eax, byte [rcx + 0x30]
mov byte [rdx + 8], al
mov r9d, dword [rcx + 0x3c]
mov r8d, dword [rcx + 0x34]
mov rcx, qword [rcx]
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
mov edx, 0x47535542
call fcn.1404853a0
mov eax, dword [r15 + 0x2c]
mov dword [rsi + 4], eax
movzx eax, byte [r15 + 0x31]
mov qword [rsp + 0x68], rsi
mov byte [rsi + 9], al
lea rax, [rsp + 0xb4]
lea rdx, [rsp + 0xbc]
mov r9d, dword [r15 + 0x40]
mov r8d, dword [r15 + 0x38]
mov rcx, qword [r15]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
mov edx, 0x47504f53
call fcn.1404853a0
mov edx, dword [r15 + 0x54]
test rdx, rdx
mov qword [rsp + 0x78], r15
je 0x14049ef7c
mov rcx, qword [r15 + 0x58]
lea r9, [0x14049f480]
mov edi, 0x1c
mov r8d, 0x1c
call fcn.140367830
mov r8d, dword [r15 + 0x54]
xor esi, esi
mov eax, 0
cmp r8, 2
jb 0x14049ec39
mov rcx, qword [r15 + 0x58]
lea rax, [r8 + r8*8]
lea rdx, [rax + rax*2]
add rdx, r8
xor eax, eax
movdqa xmm0, xmmword [0x140599730]
jmp 0x14049eb76
lea r8, [rcx + rdi]
inc eax
lea r9, [rax + rax*8]
lea r9, [r9 + r9*2]
add r9, rax
movdqu xmm1, xmmword [r8]
movdqu xmm2, xmmword [r8 + 0xc]
movdqu xmmword [rcx + r9 + 0xc], xmm2
movdqu xmmword [rcx + r9], xmm1
add rdi, 0x1c
cmp rdx, rdi
je 0x14049ec35
mov r9d, dword [rcx + rdi]
mov r10d, eax
lea r8, [r10 + r10*8]
lea r8, [r8 + r8*2]
add r8, r10
cmp r9d, dword [rcx + r8]
jne 0x14049eb40
test byte [rcx + rdi + 0xc], 1
lea r10, [rcx + r8 + 0xc]
mov r9d, dword [rcx + r8 + 0xc]
jne 0x14049ebd0
test r9b, 1
je 0x14049ebac
xor r9d, 1
mov dword [r10], r9d
mov r10d, dword [rcx + r8 + 8]
mov r11d, dword [rcx + rdi + 8]
cmp r10d, r11d
cmova r11d, r10d
mov dword [rcx + r8 + 8], r11d
jmp 0x14049ebeb
or r9d, 1
mov dword [r10], r9d
mov r10d, dword [rcx + rdi + 8]
mov dword [rcx + r8 + 8], r10d
mov r10d, dword [rcx + rdi + 0x10]
mov dword [rcx + r8 + 0x10], r10d
mov r10d, dword [rcx + rdi + 0xc]
and r10d, 2
or r10d, r9d
mov dword [rcx + r8 + 0xc], r10d
movq xmm1, qword [rcx + r8 + 0x14]
movq xmm2, qword [rcx + rdi + 0x14]
movdqa xmm3, xmm1
pxor xmm3, xmm0
movdqa xmm4, xmm2
pxor xmm4, xmm0
pcmpgtd xmm4, xmm3
pand xmm1, xmm4
pandn xmm4, xmm2
por xmm4, xmm1
movq qword [rcx + r8 + 0x14], xmm4
jmp 0x14049eb69
mov r8d, dword [r15 + 0x54]
lea ecx, [rax + 1]
test ecx, ecx
cmovg esi, ecx
cmp esi, r8d
jae 0x14049eca6
mov dword [r15 + 0x54], esi
mov ecx, dword [r15 + 0x50]
test ecx, ecx
js 0x14049ecaa
cmp esi, ecx
ja 0x14049ec5f
mov edx, ecx
shr edx, 2
cmp esi, edx
jae 0x14049eca6
cmp esi, 0x924924a
jae 0x14049f45c
cmp eax, 0x7fffffff
jb 0x14049ec7f
mov rcx, qword [r15 + 0x58]
call fcn.140568364
xor eax, eax
jmp 0x14049ec9e
mov eax, esi
lea rcx, [rax + rax*8]
lea rdx, [rcx + rcx*2]
add rdx, rax
mov rcx, qword [r15 + 0x58]
call fcn.14056f590
test rax, rax
je 0x14049f467
mov qword [r15 + 0x58], rax
mov dword [r15 + 0x50], esi
mov esi, dword [r15 + 0x54]
test esi, esi
je 0x14049ef7c
mov rax, qword [rsp + 0x68]
add rax, 0x10
mov qword [rsp + 0x60], rax
lea rdi, [rsp + 0xc4]
mov r14d, esi
mov eax, dword [rsp + 0xa8]
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0xac]
mov dword [rsp + 0x5c], eax
mov ebp, 4
xor r12d, r12d
mov qword [rsp + 0x70], r14
jmp 0x14049ed56
mov edx, 1
mov ecx, r13d
shl edx, cl
mov r8d, 0xffffffff
mov ecx, ebp
shl r8d, cl
mov dword [rax + 0x14], ebp
add r8d, edx
mov dword [rax + 0x18], r8d
mov edx, dword [rbx + 0x10]
shl edx, cl
and edx, r8d
mov rcx, qword [rsp + 0x68]
or dword [rcx + 0xc], edx
mov ecx, dword [rax + 0x14]
mov r8d, dword [rax + 0x18]
mov edx, dword [rax + 0x20]
mov ebp, r13d
mov r9d, 1
shl r9d, cl
and r9d, r8d
mov dword [rax + 0x1c], r9d
and edx, 0xfffffffe
or edx, r15d
mov dword [rax + 0x20], edx
mov r15, qword [rsp + 0x78]
inc r12
cmp r12, r14
je 0x14049ef66
mov eax, dword [r15 + 0x54]
cmp r12, rax
jae 0x14049ef3c
lea rax, [r12 + r12*8]
lea rbx, [rax + rax*2]
add rbx, r12
add rbx, qword [r15 + 0x58]
test byte [rbx + 0xc], 1
mov eax, dword [rbx + 8]
je 0x14049ed83
xor r13d, r13d
cmp eax, 1
je 0x14049ed9f
bsr r13d, eax
xor r13d, 0xffffffe0
add r13d, 0x21
cmp r13d, 8
jb 0x14049ed9b
mov r13d, 8
test eax, eax
je 0x14049ed4a
add r13d, ebp
cmp r13d, 0x1e
ja 0x14049ed4a
mov eax, dword [rbx]
cmp dword [rsp + 0xb0], eax
jne 0x14049edba
mov ecx, dword [rbx + 0x14]
mov dword [rsp + 0x58], ecx
mov r9d, dword [r15 + 0x3c]
mov r8d, dword [r15 + 0x34]
mov rcx, qword [r15]
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], eax
mov edx, 0x47535542
call fcn.140485580
mov esi, eax
mov eax, dword [rbx]
cmp dword [rsp + 0xb4], eax
jne 0x14049edf4
mov ecx, dword [rbx + 0x18]
mov dword [rsp + 0x5c], ecx
mov r9d, dword [r15 + 0x40]
mov r8d, dword [r15 + 0x38]
mov rcx, qword [r15]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
mov edx, 0x47504f53
call fcn.140485580
xor r15d, r15d
or esi, eax
je 0x14049eec8
mov rcx, qword [rsp + 0x60]
call fcn.14049f4b0
mov ecx, dword [rbx]
mov dword [rax], ecx
mov ecx, dword [rsp + 0xc0]
mov dword [rax + 4], ecx
mov ecx, dword [rsp + 0xc4]
mov dword [rax + 8], ecx
mov ecx, dword [rbx + 0x14]
mov dword [rax + 0xc], ecx
mov ecx, dword [rbx + 0x18]
mov dword [rax + 0x10], ecx
mov ecx, dword [rbx + 0xc]
mov edx, dword [rax + 0x20]
shr ecx, 1
and ecx, 2
and edx, 0xfffffffd
or edx, ecx
xor edx, 2
mov dword [rax + 0x20], edx
mov ecx, dword [rbx + 0xc]
shr ecx, 1
and ecx, 4
and edx, 0xfffffffb
or edx, ecx
xor edx, 4
mov dword [rax + 0x20], edx
mov ecx, dword [rbx + 0xc]
shr ecx, 2
and ecx, 8
and edx, 0xfffffff7
or edx, ecx
mov dword [rax + 0x20], edx
mov ecx, dword [rbx + 0xc]
shr ecx, 2
and ecx, 0x10
and edx, 0xffffffef
or edx, ecx
mov dword [rax + 0x20], edx
test byte [rbx + 0xc], 1
je 0x14049ecf0
cmp dword [rbx + 8], 1
jne 0x14049ecf0
movabs rcx, 0x800000000000001f
mov qword [rax + 0x14], rcx
mov ecx, 0x1f
mov r8d, 0x80000000
jmp 0x14049ed2c
mov eax, dword [rbx + 0xc]
test al, 0x10
je 0x14049ef1c
mov r8d, dword [rbx]
mov r14, qword [rsp + 0x78]
mov rcx, qword [r14]
mov edx, 0x47535542
lea r9, [rsp + 0xc0]
call fcn.140485010
mov esi, eax
mov r8d, dword [rbx]
mov rcx, qword [r14]
mov edx, 0x47504f53
mov r14, rdi
mov r9, rdi
call fcn.140485010
test sil, sil
jne 0x14049ef2f
test al, al
mov rdi, r14
mov r14, qword [rsp + 0x70]
jne 0x14049ee1d
mov eax, dword [rbx + 0xc]
mov r15d, 1
test al, 2
je 0x14049ed45
jmp 0x14049ee1d
mov rdi, r14
mov r14, qword [rsp + 0x70]
jmp 0x14049ee1d
movups xmm0, xmmword [0x1405d750c]
movups xmmword [0x1406ade4c], xmm0
movdqa xmm0, xmmword [0x1405d7500]
movdqa xmmword [0x1406ade40], xmm0
lea rbx, [0x1406ade40]
jmp 0x14049ed72
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0xa8], eax
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0xac], eax
lea rcx, [r15 + 0x60]
call fcn.14049e940
mov ecx, dword [r15 + 0x44]
mov dword [rax], ecx
mov qword [rax + 8], 0
inc dword [r15 + 0x44]
lea rcx, [r15 + 0x70]
call fcn.14049e940
mov ecx, dword [r15 + 0x48]
mov dword [rax], ecx
mov qword [rax + 8], 0
inc dword [r15 + 0x48]
mov eax, 0xc
mov qword [rsp + 0x80], rax
xor edx, edx
jmp 0x14049efe6
inc rdx
add qword [rsp + 0x80], 4
cmp rdx, 2
je 0x14049f437
cmp dword [r15 + rdx*4 + 0x44], 0
je 0x14049efd0
mov rax, rdx
shl rax, 4
mov rcx, qword [rsp + 0x68]
lea r12, [rcx + rax]
add r12, 0x20
lea rbx, [r15 + rax]
add rbx, 0x64
add rax, rcx
add rax, 0x40
mov qword [rsp + 0x90], rax
xor edi, edi
xor r14d, r14d
xor ebp, ebp
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x98], rbx
jmp 0x14049f050
shl rsi, 4
add rsi, qword [rbx + 4]
mov rcx, qword [rsi + 8]
mov qword [rax + 8], rcx
inc ebp
mov rdx, qword [rsp + 0x60]
inc edi
cmp edi, dword [r15 + rdx*4 + 0x44]
jae 0x14049efd0
mov qword [rsp + 0x70], r14
mov dword [rsp + 0x58], ebp
mov ebp, dword [rsp + rdx*4 + 0xb8]
cmp ebp, 0xffff
je 0x14049f160
cmp dword [rsp + rdx*4 + 0xa8], edi
jne 0x14049f160
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + rdx*4]
mov dword [rsp + 0x5c], eax
lea rax, str.BUSGSOPG
mov edx, dword [rax + rdx*4]
mov rcx, qword [r15]
mov ebx, edx
call fcn.1404858e0
mov esi, eax
xor r14d, r14d
jmp 0x14049f0bc
add r14d, eax
cmp eax, 0x20
jne 0x14049f160
mov dword [rsp + 0xa4], 0x20
mov rcx, qword [r15]
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xa4]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r14d
mov edx, ebx
mov r8d, ebp
mov r9d, dword [rsp + 0x5c]
call fcn.1404857b0
mov eax, dword [rsp + 0xa4]
test eax, eax
je 0x14049f160
xor r13d, r13d
jmp 0x14049f11a
inc r13
mov ecx, eax
cmp r13, rcx
jae 0x14049f0b0
cmp dword [rsp + r13*4 + 0xc0], esi
jae 0x14049f110
mov rcx, r12
call fcn.14049e820
mov dword [rax + 4], 0x80000000
movzx ecx, word [rsp + r13*4 + 0xc0]
mov word [rax], cx
movzx ecx, word [rax + 2]
and ecx, 0xfffffff0
or ecx, 3
mov word [rax + 2], cx
mov dword [rax + 8], 0x20202020
mov eax, dword [rsp + 0xa4]
jmp 0x14049f110
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + 0x14]
test rax, rax
je 0x14049f240
mov rcx, qword [rsp + 0x68]
mov rsi, qword [rcx + 0x18]
shl rax, 2
lea r14, [rax + rax*8]
mov rax, qword [rsp + 0x80]
lea r13, [rsi + rax]
xor ebp, ebp
jmp 0x14049f1ad
add rbp, 0x24
cmp r14, rbp
je 0x14049f240
cmp dword [r13 + rbp], edi
jne 0x14049f1a0
mov eax, dword [rsi + rbp + 0x20]
mov ecx, eax
and ecx, 0x10
shr ecx, 4
mov edx, eax
and edx, 8
shr edx, 3
mov r8d, eax
and r8d, 4
shr r8d, 2
and eax, 2
shr eax, 1
mov r10d, dword [rsi + rbp]
mov r11d, dword [rsi + rbp + 0x18]
mov r9, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x60]
mov r15d, dword [r9 + rbx*4]
mov r9d, dword [r13 + rbp - 8]
mov dword [rsp + 0x50], r10d
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x20], r15d
mov r15, qword [rsp + 0x78]
mov byte [rsp + 0x48], cl
mov byte [rsp + 0x40], dl
mov byte [rsp + 0x38], r8b
mov byte [rsp + 0x30], al
mov rcx, r15
mov rdx, qword [rsp + 0x68]
mov r8d, ebx
call fcn.14049e6b0
jmp 0x14049f1a0
mov edx, dword [r12 + 4]
mov ecx, edx
mov r14, qword [rsp + 0x70]
sub ecx, r14d
mov rbx, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x58]
jbe 0x14049f3d0
mov eax, ecx
mov r8d, 0
cmovb eax, r8d
cmp eax, ecx
cmovae eax, ecx
test eax, eax
je 0x14049f29f
mov ecx, r14d
lea rcx, [rcx + rcx*2]
shl rcx, 2
add rcx, qword [r12 + 8]
mov edx, eax
mov r8d, 0xc
lea r9, [0x14049f5a0]
call fcn.140367830
mov edx, dword [r12 + 4]
lea esi, [r14 + 1]
cmp esi, edx
jae 0x14049f354
mov eax, esi
lea rcx, [rax*4]
lea rcx, [rcx + rcx*2]
jmp 0x14049f313
mov r9d, dword [rdx + rcx + 4]
shl r8, 2
lea r8, [r8 + r8*2]
or dword [rdx + r8 + 4], r9d
mov rdx, qword [r12 + 8]
movzx r9d, word [rdx + rcx + 2]
or r9d, 0xfffe
and word [rdx + r8 + 2], r9w
mov rdx, qword [r12 + 8]
movzx r9d, word [rdx + rcx + 2]
or r9d, 0xfffd
and word [rdx + r8 + 2], r9w
inc rax
mov edx, dword [r12 + 4]
add rcx, 0xc
cmp rax, rdx
jae 0x14049f350
mov rdx, qword [r12 + 8]
movzx r9d, word [rdx + rcx]
mov r8d, r14d
lea r10, [r8 + r8*2]
cmp r9w, word [rdx + r10*4]
je 0x14049f2c0
lea r8, [rdx + rcx]
inc r14d
lea r9, [r14 + r14*2]
mov r10d, dword [r8 + 8]
mov dword [rdx + r9*4 + 8], r10d
mov r8, qword [r8]
mov qword [rdx + r9*4], r8
jmp 0x14049f302
lea esi, [r14 + 1]
test esi, esi
mov eax, 0
cmovle esi, eax
cmp esi, edx
jae 0x14049f3d0
mov dword [r12 + 4], esi
mov eax, dword [r12]
test eax, eax
js 0x14049f3d0
cmp esi, eax
ja 0x14049f37c
mov ecx, eax
shr ecx, 2
cmp esi, ecx
jae 0x14049f3d0
cmp esi, 0x15555556
jae 0x14049f42f
cmp r14d, 0x7fffffff
jb 0x14049f39f
mov rcx, qword [r12 + 8]
call fcn.140568364
xor eax, eax
jmp 0x14049f3b8
mov eax, esi
shl rax, 2
lea rdx, [rax + rax*2]
mov rcx, qword [r12 + 8]
call fcn.14056f590
test rax, rax
je 0x14049f427
mov qword [r12 + 8], rax
mov dword [r12], esi
nop word cs:[rax + rax]
mov r14d, dword [r12 + 4]
cmp ebp, dword [rbx]
jae 0x14049f042
mov rax, qword [rbx + 4]
mov esi, ebp
mov rcx, rsi
shl rcx, 4
cmp dword [rax + rcx], edi
jne 0x14049f042
mov rcx, qword [rsp + 0x90]
call fcn.14049e940
mov dword [rax], r14d
cmp dword [rbx], ebp
ja 0x14049f030
movdqa xmm0, xmmword [0x1405d7500]
movdqa xmmword [0x1406ade40], xmm0
lea rsi, [0x1406ade40]
jmp 0x14049f038
mov eax, dword [r12]
cmp esi, eax
jbe 0x14049f3d0
not eax
mov dword [r12], eax
jmp 0x14049f3d0
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.1405602f0
nop
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
not ecx
mov dword [r15 + 0x50], ecx
jmp 0x14049eca6
mov eax, dword [r15 + 0x50]
cmp esi, eax
jbe 0x14049eca6
not eax
mov dword [r15 + 0x50], eax
jmp 0x14049eca6