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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
push rbp
push r13
push r14
push r15
sub rsp, 0xb8
test byte [rcx + 0x1a8], 1
mov r15, rcx
mov qword [rax - 0x28], rbx
mov rbx, rdx
mov qword [rax - 0x30], rsi
mov qword [rax - 0x40], r12
mov r12, qword [rdx + 0x88]
movaps xmmword [rax - 0x58], xmm6
mov qword [rsp + 0xf8], r12
mov rbp, qword [r12 + 8]
mov qword [rsp + 0x20], rbp
je 0x14002966b
test byte [rcx + 0x16c], 4
jne 0x14002966b
call fcn.14002a4a0
mov rax, qword [r12]
test rax, rax
je 0x1400296a6
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x14002969d
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x14002969d
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x14002969d
cmp qword [rcx + 0x20], 0
je 0x14002969d
cmp qword [rcx + 0x38], 0
jne 0x140029716
mov rax, qword [rax + 8]
test rax, rax
jne 0x140029674
test byte [r15 + 0x68], 0x10
je 0x1400296c0
xorps xmm0, xmm0
call fcn.140031ba0
mov rdx, rbx
mov rcx, r15
call fcn.14002a4a0
movsd xmm1, qword [0x1401587f8]
comisd xmm1, xmmword [rbx + 0x1a8]
ja 0x1400296e2
movsd xmm0, qword [0x140183690]
movsd qword [rbx + 0x1a8], xmm0
comisd xmm1, xmmword [rbx + 0x1b0]
ja 0x1400296fc
movsd xmm0, qword [0x140183688]
movsd qword [rbx + 0x1b0], xmm0
comisd xmm1, xmmword [rbx + 0x1b8]
ja 0x140029716
movsd xmm0, qword [0x140183680]
movsd qword [rbx + 0x1b8], xmm0
mov rcx, rbp
mov qword [rsp + 0xa0], rdi
call fcn.140069140
mov rcx, rbx
call fcn.14005e150
mov r13, qword [r12]
mov qword [rsp + 0xe0], r13
test r13, r13
je 0x140029c8c
mov r14, qword [r13 + 0x18]
test r14, r14
je 0x1400297e7
mov rsi, qword [r14 + 0x10]
test rsi, rsi
je 0x1400297db
nop dword [rax]
mov rbx, qword [rsi + 0x10]
test rbx, rbx
je 0x1400297d3
nop dword [rax]
cmp qword [rbx + 0x20], 0
mov rdi, qword [rbx + 8]
je 0x1400297c6
mov rcx, rbx
call fcn.140073ac0
test eax, eax
jns 0x1400297c6
cmp qword [rbx + 0x38], 0
je 0x1400297be
mov rax, qword [rbx + 0x30]
test rax, rax
je 0x1400297a8
mov rcx, rax
call fcn.140070d00
mov rax, qword [rbx + 0x30]
test rax, rax
jne 0x140029797
xor edx, edx
mov rcx, rbx
call fcn.140074590
xor edx, edx
mov rcx, rbx
call fcn.140074550
jmp 0x1400297c6
mov rcx, rbx
call fcn.140074330
call fcn.140008a90
mov rbx, rdi
test rdi, rdi
jne 0x140029770
mov rsi, qword [rsi]
test rsi, rsi
jne 0x140029760
mov r14, qword [r14]
test r14, r14
jne 0x140029750
mov r13, qword [r13 + 8]
test r13, r13
jne 0x140029743
mov r13, qword [r12]
mov qword [rsp + 0xe0], r13
test r13, r13
je 0x140029c8c
mov r12, qword [rsp + 0xe8]
mov rbp, qword [r13 + 0x18]
mov qword [rsp + 0xf0], rbp
test rbp, rbp
je 0x140029c6a
nop word [rax + rax]
mov r14, qword [rbp + 0x10]
test r14, r14
je 0x140029c55
lea rbp, str.pvDatumNote
nop dword [rax]
nop dword [rax + rax]
mov rdi, qword [r14 + 0x18]
test rdi, rdi
je 0x1400298f1
nop dword [rax]
mov eax, dword [r15 + 0x68]
bt eax, 8
jae 0x1400298a5
cmp byte [r13 + 0x7c], 2
jne 0x1400298a5
movzx ecx, byte [rdi + 0x3c]
mov edx, 1
and ecx, 1
or rcx, 2
shl rcx, 5
mov rcx, qword [rcx + rbp]
call fcn.140021200
mov rdx, qword [0x1401bcf18]
lea rcx, [rdi + 0x28]
mov r8, rax
call fcn.140020130
mov eax, dword [r15 + 0x68]
test al, 0x40
je 0x1400298e5
movsxd rsi, dword [rdi + 0x38]
xor ebx, ebx
test rsi, rsi
jle 0x1400298e0
nop dword [rax]
nop dword [rax + rax]
mov r8, qword [rdi + 0x20]
mov rdx, rdi
mov rcx, qword [r12 + 0x88]
mov r8, qword [r8 + rbx*8]
call fcn.14006c1b0
inc rbx
cmp rbx, rsi
jl 0x1400298c0
call fcn.140008a90
mov rdi, qword [rdi]
test rdi, rdi
jne 0x140029860
mov rbx, qword [r14 + 0x10]
test rbx, rbx
je 0x140029a37
mov r13d, 0x60
mov r8d, dword [r15 + 0x68]
bt r8d, 8
jae 0x140029947
movzx eax, byte [rbx + 0x52]
test al, al
je 0x140029947
cmp al, 2
mov ecx, gethostname
mov edx, 1
cmove rcx, r13
mov rcx, qword [rcx + rbp]
call fcn.140021200
mov rdx, qword [0x1401bcf18]
lea rcx, [rbx + 0x40]
mov r8, rax
call fcn.140020130
mov r8d, dword [r15 + 0x68]
cmp qword [rbx + 0x20], 0
je 0x140029a22
test r8b, 0x40
je 0x1400299fd
cmp qword [rbx + 0x38], 0
jne 0x1400299fd
cmp byte [rbx + 0x52], 1
mov rdx, rbx
mov rcx, qword [r12 + 0x88]
jne 0x1400299f2
and r8d, 0x200
bts r8d, 0xa
shr r8d, 9
call fcn.1400743e0
mov rdi, rax
test rax, rax
je 0x1400299fd
mov rcx, r15
call fcn.140017c00
mov r8, qword [rbx + 0x18]
mov rsi, rax
test r8, r8
jne 0x1400299b4
mov rcx, r15
call fcn.140017b80
mov r8, rax
mov rdx, qword [rdi + 0x18]
test rdx, rdx
je 0x1400299fd
nop dword [rax]
mov rcx, qword [rdx + 0x28]
test rcx, rcx
je 0x1400299e8
nop dword [rax]
cmp qword [rcx + 0x48], 0
mov rax, rsi
cmovne rax, r8
mov qword [rcx + 0x10], rax
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1400299d0
mov rdx, qword [rdx]
test rdx, rdx
jne 0x1400299c0
jmp 0x1400299fd
mov r8d, 1
call fcn.1400743e0
cmp byte [rbx + 0x50], 0
jne 0x140029a1d
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x140029a1d
test dword [rax + 0x38], 0x1000000
jne 0x140029a1d
mov rcx, rbx
call fcn.140073e00
call fcn.140008a90
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x140029904
mov r13, qword [rsp + 0xe0]
mov rdi, qword [r14 + 0x20]
test rdi, rdi
je 0x140029a7e
test byte [r15 + 0x68], 0x40
je 0x140029a76
movsxd rsi, dword [rdi + 0x18]
xor ebx, ebx
test rsi, rsi
jle 0x140029a71
mov r8, qword [rdi + 0x10]
xor edx, edx
mov rcx, qword [r12 + 0x88]
mov r8, qword [r8 + rbx*8]
call fcn.14006c1b0
inc rbx
cmp rbx, rsi
jl 0x140029a52
call fcn.140008a90
mov rdi, qword [rdi]
test rdi, rdi
jne 0x140029a40
mov rbx, qword [r14 + 0x28]
test rbx, rbx
je 0x140029b78
nop dword [rax + rax]
mov ecx, dword [rbx + 0x48]
bt ecx, 0xc
jb 0x140029b67
mov eax, ecx
mov edx, 1
and eax, 0xf00
cmp eax, 0x100
jne 0x140029b00
lea rcx, str.pvDatumAnnotation
call fcn.140021200
mov rdx, qword [0x1401bcf18]
lea rcx, [rbx + 0x18]
mov r8, rax
call fcn.140020130
cmp dword [rbx + 0x4c], 0
jle 0x140029b67
cmp byte [r15 + 0x2f8], 0xb
jb 0x140029af6
test dword [rbx + 0x48], 0x100000
je 0x140029af6
mov rcx, rbx
call fcn.1400755d0
jmp 0x140029b67
mov rcx, rbx
call fcn.140075840
jmp 0x140029b67
cmp eax, 0x300
jne 0x140029b47
lea rcx, [0x1401810d0]
call fcn.140021200
mov rdx, qword [0x1401bcf18]
lea rcx, [rbx + 0x18]
mov r8, rax
call fcn.140020130
mov edx, 1
lea rcx, str.pvDatumScreen
call fcn.140021200
mov rdx, rax
xor r8d, r8d
mov rcx, r15
call fcn.14001b030
jmp 0x140029b67
movzx ecx, cl
mov rcx, qword [rbp + rcx*8]
call fcn.140021200
mov rdx, qword [0x1401bcf18]
lea rcx, [rbx + 0x18]
mov r8, rax
call fcn.140020130
mov rbx, qword [rbx]
test rbx, rbx
jne 0x140029a90
call fcn.140008a90
test dword [r15 + 0x68], 0x100
je 0x140029c41
mov rbx, qword [r14 + 0x30]
test rbx, rbx
je 0x140029bc1
nop
mov rcx, qword [str.pvDatumPoint]
mov edx, 1
call fcn.140021200
mov rdx, qword [0x1401bcf18]
lea rcx, [rbx + 0x28]
mov r8, rax
call fcn.140020130
mov rbx, qword [rbx]
test rbx, rbx
jne 0x140029b90
call fcn.140008a90
mov rbx, qword [r14 + 0x38]
test rbx, rbx
je 0x140029c01
nop word [rax + rax]
mov rcx, qword [str.pvDatumPoint]
mov edx, 1
call fcn.140021200
mov rdx, qword [0x1401bcf18]
lea rcx, [rbx + 0x40]
mov r8, rax
call fcn.140020130
mov rbx, qword [rbx]
test rbx, rbx
jne 0x140029bd0
call fcn.140008a90
mov rbx, qword [r14 + 0x40]
test rbx, rbx
je 0x140029c41
nop word [rax + rax]
mov rcx, qword [str.pvDatumPoint]
mov edx, 1
call fcn.140021200
mov rdx, qword [0x1401bcf18]
lea rcx, [rbx + 0x58]
mov r8, rax
call fcn.140020130
mov rbx, qword [rbx]
test rbx, rbx
jne 0x140029c10
call fcn.140008a90
mov r14, qword [r14]
test r14, r14
jne 0x140029850
mov rbp, qword [rsp + 0xf0]
mov rbp, qword [rbp]
mov qword [rsp + 0xf0], rbp
test rbp, rbp
jne 0x140029830
mov r13, qword [r13 + 8]
mov qword [rsp + 0xe0], r13
test r13, r13
jne 0x140029811
mov r12, qword [rsp + 0xf8]
mov rbp, qword [rsp + 0x20]
mov r13, qword [rsp + 0xe8]
movss xmm6, dword [0x140158be8]
movss xmm0, dword [r13 + 0x98]
ucomiss xmm0, xmm6
jp 0x140029e38
jne 0x140029e38
movss xmm0, dword [rbp + 0x10]
ucomiss xmm0, xmm6
jp 0x140029cc4
je 0x140029e38
mov rbx, qword [r12]
movaps xmmword [rsp + 0x70], xmm7
movss xmm7, dword [0x140158bec]
movaps xmmword [rsp + 0x60], xmm8
movss xmm8, dword [0x140158bf0]
movaps xmmword [rsp + 0x50], xmm9
movss xmm9, dword [0x140158bf8]
movaps xmmword [rsp + 0x40], xmm10
movss xmm10, dword [0x140158bfc]
movaps xmmword [rsp + 0x30], xmm11
movss xmm11, dword [0x140158bf4]
test rbx, rbx
je 0x140029de5
nop word [rax + rax]
lea r8, [rbx + 0x38]
lea rdx, [rbp + 0x10]
lea rcx, [rsp + 0x20]
call fcn.140065340
movss xmm0, dword [rsp + 0x20]
comiss xmm0, xmm11
jbe 0x140029d42
movaps xmm11, xmm0
comiss xmm6, xmm0
jbe 0x140029d4a
movaps xmm6, xmm0
movss xmm0, dword [rsp + 0x24]
comiss xmm0, xmm9
jbe 0x140029d5a
movaps xmm9, xmm0
comiss xmm7, xmm0
jbe 0x140029d62
movaps xmm7, xmm0
movss xmm0, dword [rsp + 0x28]
comiss xmm0, xmm10
jbe 0x140029d72
movaps xmm10, xmm0
comiss xmm8, xmm0
jbe 0x140029d7c
movaps xmm8, xmm0
lea r8, [rbx + 0x38]
lea rdx, [rbp + 0x1c]
lea rcx, [rsp + 0x20]
call fcn.140065340
movss xmm0, dword [rsp + 0x20]
comiss xmm0, xmm11
jbe 0x140029d9e
movaps xmm11, xmm0
comiss xmm6, xmm0
jbe 0x140029da6
movaps xmm6, xmm0
movss xmm0, dword [rsp + 0x24]
comiss xmm0, xmm9
jbe 0x140029db6
movaps xmm9, xmm0
comiss xmm7, xmm0
jbe 0x140029dbe
movaps xmm7, xmm0
movss xmm0, dword [rsp + 0x28]
comiss xmm0, xmm10
jbe 0x140029dce
movaps xmm10, xmm0
comiss xmm8, xmm0
jbe 0x140029dd8
movaps xmm8, xmm0
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x140029d20
movss dword [r13 + 0x9c], xmm7
movaps xmm7, xmmword [rsp + 0x70]
movss dword [r13 + 0xa0], xmm8
movaps xmm8, xmmword [rsp + 0x60]
movss dword [r13 + 0xa4], xmm11
movaps xmm11, xmmword [rsp + 0x30]
movss dword [r13 + 0xa8], xmm9
movaps xmm9, xmmword [rsp + 0x50]
movss dword [r13 + 0xac], xmm10
movaps xmm10, xmmword [rsp + 0x40]
movss dword [r13 + 0x98], xmm6
mov rdx, r13
mov rcx, r15
call fcn.14005b200
mov r14, qword [r13 + 0x88]
movaps xmm6, xmmword [rsp + 0x80]
mov qword [rsp + 0x20], r14
mov rsi, qword [r14]
mov qword [rsp + 0xe0], rsi
test rsi, rsi
je 0x14002a135
nop dword [rax + rax]
mov r13, qword [rsi + 0x18]
mov rbx, qword [rsi + 8]
mov qword [rsp + 0xf8], rbx
test r13, r13
je 0x14002a0fc
nop dword [rax]
mov r14, qword [r13 + 0x10]
mov rbx, qword [r13]
mov qword [rsp + 0xf0], rbx
test r14, r14
je 0x14002a0cf
nop dword [rax]
mov rbx, qword [r14 + 0x20]
mov r12, qword [r14]
test rbx, rbx
je 0x140029f59
test dword [r15 + 0x68], 0x100000
mov rbp, qword [rbx]
je 0x140029f45
mov eax, dword [rbx + 0x18]
xor esi, esi
test eax, eax
jle 0x140029f43
xor edi, edi
mov eax, dword [r15 + 0x68]
test al, 0x20
jne 0x140029ef3
mov rcx, qword [rbx + 0x10]
xor edx, edx
mov rcx, qword [rcx + rdi]
call fcn.14006c4a0
mov eax, dword [r15 + 0x68]
test al, 0x40
jne 0x140029f06
mov rcx, qword [rbx + 0x10]
xor edx, edx
mov rcx, qword [rcx + rdi]
call fcn.14006c4e0
mov rax, qword [rbx + 0x10]
mov rcx, qword [rdi + rax]
cmp qword [rcx + 0x18], 0
jne 0x140029f34
add rcx, 0x20
call fcn.14002a620
test eax, eax
je 0x140029f34
mov rdx, qword [rbx + 0x10]
mov rcx, rbx
mov rdx, qword [rdx + rdi]
call fcn.14006c810
jmp 0x140029f3a
inc esi
add rdi, 8
mov eax, dword [rbx + 0x18]
cmp esi, eax
jl 0x140029ed8
test eax, eax
jne 0x140029f4d
mov rcx, rbx
call fcn.14006c760
mov rbx, rbp
test rbp, rbp
jne 0x140029ec0
mov rbx, qword [r14 + 0x18]
test rbx, rbx
je 0x14002a001
nop word [rax + rax]
mov eax, dword [rbx + 0x38]
xor esi, esi
mov rbp, qword [rbx]
test eax, eax
jle 0x140029feb
xor edi, edi
nop
mov eax, dword [r15 + 0x68]
test al, 0x20
jne 0x140029f9b
mov rcx, qword [rbx + 0x20]
xor edx, edx
mov rcx, qword [rdi + rcx]
call fcn.14006c4a0
mov eax, dword [r15 + 0x68]
test al, 0x40
jne 0x140029fae
mov rcx, qword [rbx + 0x20]
xor edx, edx
mov rcx, qword [rdi + rcx]
call fcn.14006c4e0
mov rax, qword [rbx + 0x20]
mov rcx, qword [rdi + rax]
cmp qword [rcx + 0x18], 0
jne 0x140029fdc
add rcx, 0x20
call fcn.14002a620
test eax, eax
je 0x140029fdc
mov rdx, qword [rbx + 0x20]
mov rcx, rbx
mov rdx, qword [rdi + rdx]
call fcn.14006ca90
jmp 0x140029fe2
inc esi
add rdi, 8
mov eax, dword [rbx + 0x38]
cmp esi, eax
jl 0x140029f80
test eax, eax
jne 0x140029ff5
mov rcx, rbx
call fcn.14006c9d0
mov rbx, rbp
test rbp, rbp
jne 0x140029f70
mov rbx, qword [r14 + 0x10]
test rbx, rbx
je 0x14002a074
nop word [rax + rax]
test byte [r15 + 0x68], 0x20
mov rdi, qword [rbx + 8]
jne 0x14002a03f
mov rax, qword [rbx + 0x30]
test rax, rax
je 0x14002a035
mov rcx, rax
call fcn.140070d00
mov rax, qword [rbx + 0x30]
test rax, rax
jne 0x14002a024
xor edx, edx
mov rcx, rbx
call fcn.140074590
test byte [r15 + 0x68], 0x40
jne 0x14002a050
xor edx, edx
mov rcx, rbx
call fcn.140074520
cmp qword [rbx + 0x20], 0
jne 0x14002a06c
lea rcx, [rbx + 0x38]
call fcn.14002a620
test eax, eax
je 0x14002a06c
mov rcx, rbx
call fcn.140074330
mov rbx, rdi
test rdi, rdi
jne 0x14002a010
cmp qword [r14 + 0x20], 0
jne 0x14002a0ad
cmp qword [r14 + 0x18], 0
jne 0x14002a0ad
cmp qword [r14 + 0x10], 0
jne 0x14002a0ad
cmp qword [r14 + 0x28], 0
jne 0x14002a0ad
cmp qword [r14 + 0x30], 0
jne 0x14002a0ad
cmp qword [r14 + 0x38], 0
jne 0x14002a0ad
cmp qword [r14 + 0x40], 0
jne 0x14002a0ad
mov rcx, r14
call fcn.140076b90
call fcn.140008a90
mov r14, r12
test r12, r12
jne 0x140029eb0
mov r14, qword [r13 + 0x10]
mov rbx, qword [rsp + 0xf0]
test r14, r14
jne 0x14002a0d7
mov rcx, r13
call fcn.140076e60
mov r13, rbx
test rbx, rbx
jne 0x140029e90
mov rsi, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0xf8]
mov r13, qword [rsi + 0x18]
test r13, r13
jne 0x14002a111
lea rcx, [rsi + 0x30]
call fcn.14002a620
test eax, eax
je 0x14002a111
mov rcx, rsi
call fcn.140077580
mov qword [rsp + 0xe0], rbx
mov rsi, rbx
test rbx, rbx
jne 0x140029e70
mov r14, qword [rsp + 0x20]
mov r13, qword [rsp + 0xe8]
mov rsi, qword [r14]
mov r12, qword [rsp + 0x98]
xor ebp, ebp
test rsi, rsi
je 0x14002a22f
mov r8d, ebp
mov r9d, ebp
mov r10d, ebp
mov ebx, ebp
mov ecx, ebp
mov edi, ebp
nop word [rax + rax]
movzx edx, byte [rsi + 0x7c]
mov r11, qword [rsi + 8]
test edx, edx
je 0x14002a19d
cmp edx, 1
je 0x14002a187
test rcx, rcx
je 0x14002a17f
mov qword [rdi + 8], rsi
mov rdi, rsi
jmp 0x14002a1ae
mov rcx, rsi
mov rdi, rsi
jmp 0x14002a1ae
test r8, r8
je 0x14002a195
mov qword [r9 + 8], rsi
mov r9, rsi
jmp 0x14002a1ae
mov r8, rsi
mov r9, rsi
jmp 0x14002a1ae
test r10, r10
je 0x14002a1a8
mov qword [rbx + 8], rsi
jmp 0x14002a1ab
mov r10, rsi
mov rbx, rsi
mov qword [rsi + 8], rbp
mov rsi, r11
test r11, r11
jne 0x14002a160
test r10, r10
je 0x14002a1d0
test r8, r8
je 0x14002a1ca
mov qword [r9 + 8], r10
jmp 0x14002a1cd
mov r8, r10
mov r9, rbx
test rcx, rcx
je 0x14002a1eb
test r8, r8
je 0x14002a1e6
mov qword [r9 + 8], rcx
mov rcx, r8
mov qword [r14], r8
jmp 0x14002a200
mov qword [r14], rcx
jmp 0x14002a200
mov qword [r14], r8
mov rcx, r8
test r8, r8
je 0x14002a22f
nop word [rax + rax]
movzx eax, byte [rcx + 0x7c]
mov edx, dword [r15 + 0x68]
test al, al
jne 0x14002a218
bt edx, 0xf
jae 0x14002a226
mov byte [rcx + 0x7c], 1
jmp 0x14002a226
cmp al, 1
jne 0x14002a226
bt edx, 0x10
jae 0x14002a226
mov byte [rcx + 0x7c], bpl
mov rcx, qword [rcx + 8]
test rcx, rcx
jne 0x14002a200
test dword [r15 + 0x68], 0x40000
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xb0]
je 0x14002a25c
mov rdx, r13
mov rcx, r15
call fcn.14005ab10
cmp qword [r14], 0
jne 0x14002a2bf
test dword [r15 + 0x68], 0x40000
je 0x14002a2b0
mov rax, qword [r13 + 0x88]
cmp qword [rax + 0x20], 0
jne 0x14002a2bf
cmp byte [rax + 0xa8], 0
jne 0x14002a2bf
cmp byte [rax + 0xa9], 0
jne 0x14002a2bf
cmp byte [rax + 0xaa], 0
jne 0x14002a2bf
cmp byte [rax + 0xab], 0
jne 0x14002a2bf
cmp byte [rax + 0xac], 0
jne 0x14002a2bf
cmp byte [rax + 0xad], 0
jne 0x14002a2bf
mov rcx, r14
call fcn.140033100
mov qword [r13 + 0x88], rbp
add rsp, 0xb8
pop r15
pop r14
pop r13
pop rbp
ret