Function at 0x1402d2f30
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, 0x178
movaps xmmword [rsp + 0x160], xmm7
movaps xmmword [rsp + 0x150], xmm6
mov qword [rsp + 0xb0], r8
mov r11, rdx
mov r12, rcx
movzx eax, word [rsp + 0x1e0]
mov rcx, qword [0x1403e4018]
xor rcx, rsp
mov qword [rsp + 0x148], rcx
test ax, ax
je 0x1402d2f8d
mov rcx, qword [r12]
mov rcx, qword [rcx]
test byte [rcx + 0x60], 0x40
jne 0x1402d2f96
movzx esi, word [r11]
cmp esi, 0x3f
jbe 0x1402d2fce
xor edi, edi
mov rcx, qword [rsp + 0x148]
xor rcx, rsp
call fcn.140319a10
mov eax, edi
movaps xmm6, xmmword [rsp + 0x150]
movaps xmm7, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, 0xffffffffffffffff
mov ecx, esi
shl rdx, cl
not rdx
mov qword [rsp + 0x70], rdx
movzx r13d, r9w
mov ecx, r13d
and ecx, 0x803
cmp ecx, 1
mov ecx, 0x183
sbb ecx, 0
mov dword [rsp + 0x5c], ecx
test esi, esi
je 0x1402d39ac
lea rcx, [r12 + 0x70]
mov qword [rsp + 0xb8], rcx
lea rcx, [r12 + 0x258]
mov qword [rsp + 0xc0], rcx
movzx ecx, ax
movaps xmm6, xmmword [0x1403bc150]
xorps xmm7, xmm7
xor edx, edx
xor r8d, r8d
xor eax, eax
mov qword [rsp + 0x88], rax
xor ebp, ebp
xor r9d, r9d
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x68], r12
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0xa8], rcx
test rdx, rdx
je 0x1402d3064
or r8, qword [r9 + 8]
mov r9, qword [rsp + 0x1e8]
cmp rdx, rcx
jae 0x1402d308c
bt r13d, 0xb
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax + 0x18]
mov r9, qword [rax + rdx*8]
jb 0x1402d3986
test byte [r9 + 0x39], 4
jne 0x1402d39b0
mov qword [rsp + 0x90], rdx
test r13b, r13b
jns 0x1402d30ab
mov word [r9 + 0x1e], 0
mov rax, qword [r12 + 8]
mov qword [rsp + 0x30], r9
movzx ecx, byte [r9 + 0x10]
imul rcx, rcx, 0x68
mov r14d, dword [rax + rcx + 0x4c]
mov qword [rsp + 0xc8], r8
mov r12, r8
not r12
xor edi, edi
mov r13d, 1
mov ecx, edi
shl r13, cl
bt rbp, rdi
jae 0x1402d30f1
inc rdi
cmp rdi, rsi
jne 0x1402d30d3
jmp 0x1402d3309
mov rax, rdi
shl rax, 5
mov rbx, qword [r11 + rax + 8]
test rbx, rbx
je 0x1402d30e4
lea rcx, [r11 + rax]
add rcx, 8
mov eax, dword [rbx + 4]
test eax, 0x82000
je 0x1402d3132
bt eax, 0x13
jb 0x1402d3120
add rbx, 0x10
jmp 0x1402d3128
mov rbx, qword [rbx + 0x20]
add rbx, 8
mov rbx, qword [rbx]
test rbx, rbx
jne 0x1402d310a
jmp 0x1402d30e4
movzx eax, byte [rbx]
cmp eax, 0x9c
je 0x1402d3143
cmp eax, 0x9a
jne 0x1402d30e4
cmp dword [rbx + 0x2c], r14d
jne 0x1402d30e4
mov qword [rsp + 0x50], rcx
movzx eax, word [rbx + 0x30]
lea rdx, [rsp + 0xe0]
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rdx + 0x58], rcx
movups xmmword [rdx + 0x48], xmm6
movups xmmword [rdx + 0x38], xmm6
movups xmmword [rdx + 0x28], xmm6
movups xmmword [rdx + 0x18], xmm6
mov rcx, qword [rsp + 0xb8]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], rcx
mov byte [rsp + 0xf8], 0
movups xmmword [rdx], xmm7
mov ecx, dword [rsp + 0x5c]
mov dword [rsp + 0xf4], ecx
mov dword [rsp + 0xf0], 0
mov dword [rsp + 0xfc], r14d
mov word [rsp + 0xf9], 0x101
cmp ax, 0xfffe
je 0x1402d30e4
mov word [rsp + 0x128], ax
lea rcx, [rsp + 0xd0]
call fcn.1402cec90
mov r11, qword [rsp + 0x38]
test rax, rax
je 0x1402d30e4
mov r15, rax
mov dword [rsp + 0x24], r14d
xor r14d, r14d
mov rax, qword [r15 + 0x28]
test rax, r12
jne 0x1402d3219
test rax, rax
jne 0x1402d3212
movzx eax, word [r15 + 0x14]
test al, 0x82
jne 0x1402d3273
test r14, r14
cmove r14, r15
lea rcx, [rsp + 0xd0]
call fcn.1402cec90
mov r15, rax
test rax, rax
mov r11, qword [rsp + 0x38]
jne 0x1402d31fb
test r14, r14
je 0x1402d3266
movzx eax, word [r14 + 0x14]
cmp ax, 1
jne 0x1402d3270
mov rdx, qword [rsp + 0x30]
movzx ecx, word [rdx + 0x3c]
test rcx, rcx
je 0x1402d3266
mov rdx, qword [rdx + 0x48]
xor r8d, r8d
cmp r14, qword [rdx + r8*8]
je 0x1402d3270
inc r8
cmp rcx, r8
jne 0x1402d3258
mov r14d, dword [rsp + 0x24]
jmp 0x1402d30e4
mov r15, r14
test al, 0x82
mov r14d, dword [rsp + 0x24]
je 0x1402d32f7
cmp word [rbx + 0x30], 0
js 0x1402d32f7
mov rax, qword [rsp + 0x68]
mov rbx, qword [rax]
mov rax, qword [rsp + 0x50]
mov rdx, qword [rax]
mov rcx, rbx
call fcn.140270d40
mov rcx, rbx
mov rbx, rax
test rax, rax
jne 0x1402d32ad
mov rax, qword [rcx]
mov rbx, qword [rax + 0x10]
mov rdx, qword [r15]
call fcn.140238570
test rax, rax
je 0x1402d32ff
mov rax, qword [rax]
mov rcx, qword [rbx]
xor edx, edx
mov r11, qword [rsp + 0x38]
lea r10, [0x1403cba90]
movzx r8d, byte [rcx + rdx]
movzx r9d, byte [rax + rdx]
cmp r8b, r9b
jne 0x1402d32e4
test r8, r8
jne 0x1402d32f2
jmp 0x1402d32f7
mov r8b, byte [r8 + r10]
cmp r8b, byte [r9 + r10]
jne 0x1402d30e4
inc rdx
jmp 0x1402d32c7
or rbp, r13
jmp 0x1402d30e4
mov r11, qword [rsp + 0x38]
jmp 0x1402d30e4
mov rdi, qword [rsp + 0x30]
mov r8d, dword [rdi + 0x38]
bt r8d, 0xc
jb 0x1402d336b
xor r15d, r15d
bt r8d, 8
mov rcx, qword [rsp + 0x90]
jb 0x1402d337a
mov r9, qword [rdi + 0x20]
test r9, r9
je 0x1402d2f96
test byte [r9 + 0x64], 4
jne 0x1402d2f96
movzx eax, word [r9 + 0x60]
cmp byte [r9 + 0x62], 0
setne dl
test r8w, r8w
setns r10b
and r10b, dl
test ax, ax
je 0x1402d399f
movzx edx, word [r9 + 0x5e]
jmp 0x1402d3386
mov r12, qword [rsp + 0x68]
mov r13d, dword [rsp + 0x28]
jmp 0x1402d380d
mov r10b, 1
mov ax, 1
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x78], rdx
mov r13d, dword [rsp + 0x28]
lea rbx, [0x1403cba90]
mov qword [rsp + 0x50], r9
mov edx, 1
shl rdx, cl
mov qword [rsp + 0x98], rdx
movzx eax, ax
mov qword [rsp + 0xa0], rax
xor r12d, r12d
xor eax, eax
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x48], 0
xor r9d, r9d
movzx ecx, word [rdi + 0x18]
cmp r12, rcx
jae 0x1402d33e2
movzx eax, word [rdi + 0x3e]
cmp r12, rax
jae 0x1402d3476
mov r13d, r10d
mov dword [rsp + 0x44], r9d
xor eax, eax
mov r10, qword [rsp + 0x50]
test r10, r10
mov qword [rsp + 0x80], r15
je 0x1402d3455
mov rdx, qword [r10 + 8]
mov r8, qword [r10 + 0x18]
movzx edx, word [rdx + r12*2]
mov r9, qword [r10 + 0x38]
mov r9b, byte [r9 + r12]
and r9b, 1
mov dword [rsp + 0x4c], r9d
cmp dx, word [r8 + 0x34]
mov r9d, 0xffff
cmove edx, r9d
movsx r9d, dx
test r13b, r13b
je 0x1402d34a7
test dx, dx
js 0x1402d34b1
mov dl, 1
cmp r12, rcx
jb 0x1402d3472
mov rcx, qword [r8 + 8]
mov edx, r9d
lea rdx, [rdx + rdx*2]
test byte [rcx + rdx*8 + 8], 0xf
setne dl
jmp 0x1402d3472
mov dl, 1
mov r9d, 0xffffffff
mov dword [rsp + 0x4c], 0
test r13b, r13b
mov dword [rsp + 0x2c], 0
je 0x1402d34bc
mov ecx, edx
jmp 0x1402d34b8
mov rdx, qword [rdi + 0x48]
mov rax, qword [rdx + r12*8]
movzx r8d, word [rax + 0x14]
test dword [rsp + 0x5c], r8d
je 0x1402d3749
test r8d, 0x180
movzx r10d, r10b
mov eax, 0
cmovne r10d, eax
jmp 0x1402d3730
mov dword [rsp + 0x2c], 0
jmp 0x1402d34bc
cmp dx, 0xfffe
setne cl
mov dword [rsp + 0x2c], ecx
test al, al
jne 0x1402d37d4
mov r15b, 1
xor r13d, r13d
mov dword [rsp + 0x24], r9d
bt rbp, r13
jb 0x1402d365e
mov rax, r13
shl rax, 5
mov rdx, qword [r11 + rax + 8]
test rdx, rdx
je 0x1402d365e
lea rdi, [r11 + rax]
add rdi, 8
mov eax, dword [rdx + 4]
test eax, 0x82000
je 0x1402d3521
bt eax, 0x13
jb 0x1402d350c
add rdx, 0x10
jmp 0x1402d3514
mov rdx, qword [rdx + 0x20]
add rdx, 8
mov rdx, qword [rdx]
test rdx, rdx
jne 0x1402d34f6
jmp 0x1402d3659
mov eax, dword [rsp + 0x28]
and eax, 0xc0
movzx r15d, r15b
cmove r15d, eax
cmp r9d, 0xffffffff
jl 0x1402d35d4
movzx eax, byte [rdx]
cmp eax, 0x9c
je 0x1402d3551
cmp eax, 0x9a
jne 0x1402d3659
cmp dword [rdx + 0x2c], r14d
jne 0x1402d3659
movsx eax, word [rdx + 0x30]
cmp r9d, eax
jne 0x1402d3659
cmp r9d, 0xffffffff
je 0x1402d3684
mov rdx, qword [rdi]
mov rax, qword [rsp + 0x68]
mov rdi, qword [rax]
mov rcx, rdi
call fcn.140270d40
test rax, rax
jne 0x1402d3591
mov rax, qword [rdi]
mov rax, qword [rax + 0x10]
mov r10, qword [rsp + 0x50]
mov rcx, qword [r10 + 0x40]
mov rcx, qword [rcx + r12*8]
mov rax, qword [rax]
xor edx, edx
mov r11, qword [rsp + 0x38]
movzx r8d, byte [rax + rdx]
movzx r9d, byte [rcx + rdx]
cmp r8b, r9b
jne 0x1402d35c1
test r8, r8
jne 0x1402d35cf
jmp 0x1402d3684
mov r8b, byte [r8 + rbx]
cmp r8b, byte [r9 + rbx]
jne 0x1402d3678
inc rdx
jmp 0x1402d35a8
mov rax, qword [r10 + 0x50]
mov rcx, r12
shl rcx, 5
mov r8, qword [rax + rcx + 8]
test r8, r8
je 0x1402d360d
mov eax, dword [r8 + 4]
test eax, 0x82000
je 0x1402d3610
bt eax, 0x13
jb 0x1402d3600
add r8, 0x10
jmp 0x1402d3608
mov r8, qword [r8 + 0x20]
add r8, 8
mov r8, qword [r8]
jmp 0x1402d35e4
xor r8d, r8d
mov eax, dword [rdx + 4]
test eax, 0x82000
je 0x1402d3638
bt eax, 0x13
jb 0x1402d3626
add rdx, 0x10
jmp 0x1402d362e
mov rdx, qword [rdx + 0x20]
add rdx, 8
mov rdx, qword [rdx]
test rdx, rdx
jne 0x1402d3610
xor edx, edx
xor ecx, ecx
mov r9d, r14d
call fcn.1402aebd0
test eax, eax
mov r11, qword [rsp + 0x38]
mov r10, qword [rsp + 0x50]
mov r9d, dword [rsp + 0x24]
je 0x1402d3568
mov rdi, qword [rsp + 0x30]
test r15b, r15b
je 0x1402d37d4
inc r13
cmp r13, rsi
jb 0x1402d34cf
jmp 0x1402d37d4
mov rdi, qword [rsp + 0x30]
mov r9d, dword [rsp + 0x24]
jmp 0x1402d365e
mov ecx, dword [rsp + 0x28]
test cl, cl
mov rdi, qword [rsp + 0x30]
mov rax, qword [rsp + 0x80]
jns 0x1402d369f
inc eax
mov word [rdi + 0x1e], ax
test cl, 0x40
mov r8d, dword [rsp + 0x24]
jne 0x1402d36e1
cmp byte [rsp + 0x60], 0
je 0x1402d3787
mov r9d, dword [rsp + 0x4c]
xor r9b, byte [rsp + 0x48]
mov eax, r13d
mov rcx, rax
shl rcx, 5
mov cl, byte [r11 + rcx + 0x18]
and cl, 1
mov dl, 1
mov qword [rsp + 0x60], rdx
cmp r9b, cl
je 0x1402d36e4
jmp 0x1402d37d4
mov eax, r13d
mov rcx, rax
shl rcx, 5
test byte [r11 + rcx + 0x18], 2
je 0x1402d3704
movzx ecx, word [rdi + 0x18]
cmp r12, rcx
jne 0x1402d37d4
or byte [rdi + 0x3a], 8
cmp r8d, 0xffffffff
mov r9d, dword [rsp + 0x44]
movzx r9d, r9b
mov ecx, 1
cmove r9d, ecx
bts rbp, rax
mov r13d, dword [rsp + 0x28]
mov r15, qword [rsp + 0x80]
mov r10d, dword [rsp + 0x2c]
inc r12
inc r15d
cmp r12, qword [rsp + 0xa0]
jne 0x1402d33cc
jmp 0x1402d37ff
test r8b, 1
mov dword [rsp + 0x44], r9d
mov r13d, r10d
je 0x1402d33ea
mov r8, qword [rax]
lea r9d, [rcx - 1]
mov r10, r12
cmp r9, r10
je 0x1402d33ea
mov r11, qword [rdx + r10*8 + 8]
inc r10
mov al, 1
cmp qword [r11], r8
mov r11, qword [rsp + 0x38]
jne 0x1402d3765
jmp 0x1402d33ec
mov eax, r13d
mov rcx, rax
shl rcx, 5
mov cl, byte [r11 + rcx + 0x18]
and cl, 1
xor cl, byte [rsp + 0x4c]
mov dword [rsp + 0x48], ecx
mov cl, 1
je 0x1402d37c2
mov qword [rsp + 0x60], rcx
mov rcx, qword [rsp + 0x1f0]
mov rdx, qword [rsp + 0x98]
or qword [rcx], rdx
jmp 0x1402d36e4
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x48], 0
jmp 0x1402d36e4
movzx eax, word [rsp + 0x78]
cmp r12d, eax
mov r10d, dword [rsp + 0x2c]
movzx r10d, r10b
mov eax, 0
cmovb r10d, eax
test r12d, r12d
cmove r10d, r12d
mov r13d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x44]
or r9b, r10b
je 0x1402d39e5
mov r12, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
or rbx, qword [rdi + 8]
mov rax, rbx
mov qword [rsp + 0x88], rbx
not rbx
xor edi, edi
mov r14d, 1
mov ecx, edi
shl r14, cl
bt rbp, rdi
jb 0x1402d395d
mov rax, rdi
shl rax, 5
mov r15, qword [r11 + rax + 8]
test r15, r15
je 0x1402d38a1
mov eax, dword [r15 + 4]
cmp byte [r15], 0x9a
jne 0x1402d38a8
mov ecx, eax
and ecx, 0x20
jne 0x1402d38a8
mov edx, dword [r15 + 0x2c]
mov eax, 1
cmp dword [r12 + 0x260], edx
je 0x1402d394e
mov eax, dword [r12 + 0x25c]
cmp eax, 2
jl 0x1402d38af
dec rax
xor ecx, ecx
cmp dword [r12 + rcx*4 + 0x264], edx
je 0x1402d3944
inc rcx
cmp rax, rcx
jne 0x1402d3889
jmp 0x1402d38af
xor eax, eax
jmp 0x1402d394e
test eax, 0x810000
je 0x1402d3925
movaps xmmword [rsp + 0xf0], xmm6
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xe0], xmm6
mov word [rsp + 0xf4], 1
lea rax, [0x1402af6e0]
mov qword [rsp + 0xd8], rax
lea rax, [0x1402af860]
mov qword [rsp + 0xe0], rax
mov dword [rsp + 0xf8], 0
lea rcx, [rsp + 0xd0]
mov rdx, r15
call fcn.1402af870
cmp word [rsp + 0xf4], 0
je 0x1402d391e
xor eax, eax
mov r11, qword [rsp + 0x38]
jmp 0x1402d394e
mov r11, qword [rsp + 0x38]
jmp 0x1402d395d
mov rcx, qword [rsp + 0xc0]
mov rdx, r15
call fcn.1402ce720
mov r11, qword [rsp + 0x38]
test rax, rax
jne 0x1402d394e
jmp 0x1402d38af
inc cl
mov eax, 1
shl rax, cl
test rax, rbx
mov eax, 0
cmovne r14, rax
or rbp, r14
inc rdi
cmp rdi, rsi
jne 0x1402d3829
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x90]
mov r8, qword [rsp + 0xc8]
mov r9, qword [rsp + 0x30]
cmp rbp, qword [rsp + 0x70]
jae 0x1402d39d0
lea rax, [rdx + 1]
cmp rdx, rcx
mov rdx, rax
jb 0x1402d305b
jmp 0x1402d39d0
xor r9d, r9d
mov r13d, dword [rsp + 0x28]
jmp 0x1402d37ff
xor ebp, ebp
jmp 0x1402d39d0
and r13d, 0x280
cmp byte [r9 + 0x20], 0
mov rax, qword [rsp + 0x70]
cmove rax, rbp
cmp r13d, 0x80
cmovne rbp, rax
mov dil, 0xff
cmp rbp, qword [rsp + 0x70]
jne 0x1402d2f98
mov edi, esi
jmp 0x1402d2f98
cmp rbp, qword [rsp + 0x70]
je 0x1402d39de
not rbp
mov rdi, rsi
cmp rdi, 2
jl 0x1402d2f96
dec rdi
mov rax, 0xffffffffffffffff
mov ecx, edi
shl rax, cl
not rax
test rax, rbp
jne 0x1402d39f2
jmp 0x1402d2f98