Function at 0x1402d1e20
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, 0x158
mov rax, qword [0x1403e4018]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov rax, qword [rcx]
mov rdi, qword [rax]
mov r11, qword [rdi]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x148], rax
movaps xmm0, xmmword [0x1403bc150]
movups xmmword [rsp + 0x138], xmm0
movups xmmword [rsp + 0x128], xmm0
movups xmmword [rsp + 0x118], xmm0
movups xmmword [rsp + 0x108], xmm0
cmp dword [rdi + 0x30], 0
je 0x1402d1e95
mov edi, dword [rdi + 0x18]
jmp 0x1402d2d54
mov rsi, r8
mov r15, qword [rcx + 0x10]
mov eax, dword [r15 + 0x38]
mov dword [rsp + 0x48], eax
test al, 0x20
mov eax, 0x1bf
mov r8d, 0x18
cmove r8d, eax
mov eax, r8d
and eax, 0xffffff83
test byte [rsi + 0x64], 4
cmove eax, r8d
movzx r10d, word [r15 + 0x18]
movzx r8d, word [r15 + 0x1a]
mov word [rsp + 0x32], r8w
movzx r8d, word [r15 + 0x1c]
mov word [rsp + 0x30], r8w
movzx r8d, word [r15 + 0x3e]
mov word [rsp + 0x4e], r8w
movzx ebp, word [r15 + 0x3c]
mov r8, qword [r15]
mov qword [rsp + 0xb8], r8
movzx r8d, word [r15 + 0x16]
mov dword [rsp + 0x6c], r8d
mov qword [rsp + 0x60], rdx
mov r8d, dword [rdx + 0x44]
mov rdx, qword [rcx + 8]
mov qword [rsp + 0xe0], rdx
mov qword [rsp + 0xe8], rdx
movzx ebx, r10w
mov byte [rsp + 0x108], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xf0], xmm0
mov dword [rsp + 0x104], eax
mov word [rsp + 0x34], bp
movzx r14d, bp
mov dword [rsp + 0x100], 0
mov dword [rsp + 0x10c], r8d
mov word [rsp + 0x109], 0x101
mov edx, r10d
test rsi, rsi
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x50], rdi
mov word [rsp + 0x36], r10w
je 0x1402d200f
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x18]
movzx eax, word [rax + rbx*2]
mov dx, 0xffff
cmp ax, word [rcx + 0x34]
je 0x1402d200f
test ax, ax
js 0x1402d1fd2
movsx rdx, ax
mov rcx, qword [rcx + 8]
mov edx, edx
lea rdx, [rdx + rdx*2]
mov cl, byte [rcx + rdx*8 + 0xc]
mov byte [rsp + 0x108], cl
mov rcx, qword [rsi + 0x40]
mov rcx, qword [rcx + rbx*8]
mov qword [rsp + 0xf0], rcx
mov edx, eax
jmp 0x1402d200f
mov edx, eax
cmp ax, 0xfffe
jne 0x1402d200f
mov rax, qword [rsi + 0x50]
mov rcx, rbx
shl rcx, 5
mov rax, qword [rax + rcx + 8]
lea rcx, [rsp + 0xe0]
mov qword [rcx + 0x18], rax
mov rax, qword [rsi + 0x40]
mov rax, qword [rax + rbx*8]
mov qword [rcx + 0x10], rax
mov word [rcx + 0x58], 0xfffe
call fcn.1402cefc0
jmp 0x1402d2020
lea rcx, [rsp + 0xe0]
mov word [rcx + 0x58], dx
call fcn.1402cec90
mov r12, rax
mov word [r15 + 0x12], 0
mov rax, qword [rsi + 0x10]
movzx eax, word [rax]
xor edi, edi
mov r13d, 0
mov qword [rsp + 0x78], rax
cmp ax, 0xb
jl 0x1402d20ab
mov r13w, 0x28
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp ecx, 0x100
jb 0x1402d207a
mov r13w, 0x28
mov rcx, qword [rsp + 0x78]
mov rax, rcx
add r13d, 0x28
shr rax, 4
cmp rcx, 0xfff
mov rcx, rax
ja 0x1402d2066
cmp rax, 0x10
jb 0x1402d2095
mov rcx, rax
add r13d, 0xa
shr rcx, 1
cmp rax, 0x1f
mov rax, rcx
ja 0x1402d2083
jmp 0x1402d2098
mov rcx, rax
and ecx, 7
lea rax, [0x1403d4270]
add r13w, word [rax + rcx*2]
add r13d, 0xffffffd5
add r14d, 8
and r14d, 0xfffffff8
mov qword [rsp + 0xa8], r14
lea rax, [r14*8]
mov qword [rsp + 0xb0], rax
test r12, r12
je 0x1402d2c20
lea rax, [r15 + 0x58]
mov qword [rsp + 0xa0], rax
movzx ecx, r13w
mov rax, rcx
mov qword [rsp + 0xd8], rcx
movsx eax, cx
lea ecx, [r13 + 1]
mov dword [rsp + 0x90], ecx
lea ecx, [rax + 0x31]
mov dword [rsp + 0x94], ecx
mov qword [rsp + 0x70], rax
add eax, 0x1f
mov dword [rsp + 0x8c], eax
xor eax, eax
mov qword [rsp + 0x38], rax
xor eax, eax
mov qword [rsp + 0x28], rax
movzx r14d, word [r12 + 0x14]
cmp r14d, 0x100
je 0x1402d213b
test byte [r12 + 0x12], 0x80
je 0x1402d2170
mov rax, qword [rsi + 8]
movzx ecx, word [rax + rbx*2]
test cx, cx
js 0x1402d215d
mov rax, qword [rsi + 0x18]
mov rax, qword [rax + 8]
lea rcx, [rcx + rcx*2]
mov eax, dword [rax + rcx*8 + 8]
and eax, 0xf
jmp 0x1402d2166
xor eax, eax
cmp cx, 0xffff
sete al
xor edi, edi
test eax, eax
jne 0x1402d2a26
mov rax, qword [r15 + 8]
xor edi, edi
test qword [r12 + 0x28], rax
jne 0x1402d2a26
test byte [r12 + 0x13], 1
je 0x1402d2194
cmp r14w, 0x10
je 0x1402d2a26
mov rax, qword [rsp + 0x60]
mov al, byte [rax + 0x3c]
test al, 0x58
je 0x1402d21cf
mov rdx, qword [r12]
mov ecx, dword [rdx + 4]
test cl, 3
je 0x1402d2a26
mov edx, dword [rdx + 0x34]
mov r8, qword [rsp + 0x60]
cmp edx, dword [r8 + 0x44]
jne 0x1402d2a26
test al, 0x18
je 0x1402d21cf
and ecx, 2
jne 0x1402d2a26
cmp byte [rsi + 0x62], 0
je 0x1402d21e1
movzx ecx, word [rsi + 0x5e]
dec ecx
mov al, 2
cmp ecx, ebx
je 0x1402d21e3
mov al, 1
mov rdi, qword [rsp + 0x20]
or byte [rdi + 0x20], al
mov eax, dword [rsp + 0x48]
mov dword [r15 + 0x38], eax
movzx eax, word [rsp + 0x36]
mov word [r15 + 0x18], ax
movzx eax, word [rsp + 0x32]
mov word [r15 + 0x1a], ax
movzx eax, word [rsp + 0x30]
mov word [r15 + 0x1c], ax
movzx eax, word [rsp + 0x34]
mov word [r15 + 0x3c], ax
cmp ax, word [r15 + 0x40]
jae 0x1402d2228
mov rbp, qword [r15 + 0x48]
jmp 0x1402d229a
xor edi, edi
mov rcx, qword [rsp + 0x58]
cmp byte [rcx + 0x67], 0
jne 0x1402d2c20
mov rdx, qword [rsp + 0xb0]
call fcn.140239ff0
test rax, rax
je 0x1402d2c20
mov rbp, rax
mov rdx, qword [r15 + 0x48]
movzx r8d, word [r15 + 0x40]
shl r8, 3
mov rcx, rax
call fcn.14031b320
mov rdx, qword [r15 + 0x48]
cmp rdx, qword [rsp + 0xa0]
je 0x1402d227f
mov rcx, qword [rsp + 0x58]
call fcn.140239dc0
mov qword [r15 + 0x48], rbp
mov rax, qword [rsp + 0xa8]
mov word [r15 + 0x40], ax
movzx eax, word [r15 + 0x3c]
mov rdi, qword [rsp + 0x20]
mov r10, qword [rsp + 0x40]
lea ecx, [rax + 1]
mov word [r15 + 0x3c], cx
movzx eax, ax
mov qword [rbp + rax*8], r12
mov rax, qword [r12 + 0x28]
or rax, qword [rsp + 0xb8]
mov rcx, qword [r15 + 8]
not rcx
and rcx, rax
mov qword [r15], rcx
test r14b, 1
jne 0x1402d235b
test r14b, 0x82
je 0x1402d23de
mov rax, qword [rsi + 8]
movzx edx, word [rax + rbx*2]
mov eax, dword [r15 + 0x38]
mov ecx, eax
or ecx, 1
mov dword [r15 + 0x38], ecx
cmp dx, 0xffff
je 0x1402d2335
test r10w, r10w
jne 0x1402d2340
test dx, dx
js 0x1402d2340
movzx edx, word [rsi + 0x5e]
lea r8d, [rdx - 1]
cmp r8d, ebx
jne 0x1402d2340
test byte [rsi + 0x64], 8
jne 0x1402d2335
cmp dx, 1
jne 0x1402d2aca
cmp byte [rsi + 0x62], 0
je 0x1402d2aca
cmp r14w, 2
jne 0x1402d2aca
or eax, 0x1001
mov dword [r15 + 0x38], eax
mov ecx, eax
xor ebp, ebp
cmp byte [rsp + 0x109], 2
jb 0x1402d27a2
or ecx, 0x200000
jmp 0x1402d279e
mov rax, qword [r12]
test byte [rax + 5], 0x10
jne 0x1402d2399
mov rax, qword [rax + 0x20]
xor ebp, ebp
test rax, rax
je 0x1402d26df
movsxd rcx, dword [rax]
test rcx, rcx
je 0x1402d26df
cmp ecx, 8
jae 0x1402d2420
cmp ecx, 2
jae 0x1402d2695
xor eax, eax
jmp 0x1402d26dc
movzx ecx, word [r15 + 0x3c]
mov ebp, 0x2e
cmp rcx, 2
jb 0x1402d26df
dec ecx
mov rdx, qword [r15 + 0x48]
mov ebp, 0x2e
xor r8d, r8d
mov r9, qword [rdx + r8*8]
test r9, r9
je 0x1402d23d1
cmp qword [r9], rax
mov r9d, 0
cmove ebp, r9d
inc r8
cmp rcx, r8
jne 0x1402d23bb
jmp 0x1402d26df
bt r14d, 8
jb 0x1402d240e
mov rax, qword [r12]
mov rax, qword [rax + 0x10]
mov cl, byte [rax]
cmp cl, 0xa3
jne 0x1402d23f7
mov cl, byte [rax + 2]
cmp cl, 0x80
je 0x1402d244f
movzx edx, cl
mov ecx, 1
cmp edx, 0xa4
je 0x1402d2453
jmp 0x1402d245c
mov ecx, dword [r15 + 0x38]
or ecx, 8
mov dword [r15 + 0x38], ecx
xor ebp, ebp
jmp 0x1402d27a2
mov ax, 0x28
cmp ecx, 0x100
jb 0x1402d26ab
mov ax, 0x28
mov rdx, rcx
add eax, 0x28
shr rdx, 4
cmp rcx, 0xfff
mov rcx, rdx
ja 0x1402d2437
jmp 0x1402d26ae
mov rax, qword [rax + 0x20]
add rax, 0x20
mov rax, qword [rax]
mov ecx, dword [rax]
movzx edx, word [rsi + 0x60]
sub edx, ebx
cmp ecx, edx
cmovl edx, ecx
mov ebp, 1
cmp edx, 2
jl 0x1402d2ad9
mov rax, qword [rsp + 0x60]
mov r9d, dword [rax + 0x44]
mov dword [rsp + 0x84], edx
mov eax, edx
mov qword [rsp + 0xc0], rax
mov ebp, 1
mov dword [rsp + 0x88], r9d
mov rdx, qword [r12]
mov r8, qword [rdx + 0x18]
mov rax, rbp
shl rax, 5
lea rdi, [r8 + 0x20]
test byte [r8 + 5], 0x10
je 0x1402d24bd
mov rdi, qword [rdi]
add rdi, 0x20
mov rdx, qword [rdx + 0x10]
mov rdx, qword [rdx + 0x20]
mov rcx, qword [rdx + rax + 8]
cmp byte [rcx], 0x9a
jne 0x1402d2ad4
cmp dword [rcx + 0x2c], r9d
jne 0x1402d2ad4
movsx r8, word [rcx + 0x30]
mov rdx, qword [rsi + 8]
lea r11, [rbx + rbp]
cmp r8w, word [rdx + r11*2]
jne 0x1402d2ad4
mov qword [rsp + 0x38], r8
mov rdx, qword [rsi + 0x38]
mov r8b, byte [rdx + r11]
cmp r8b, byte [rdx + rbx]
jne 0x1402d2ad4
mov qword [rsp + 0x28], r11
mov qword [rsp + 0xd0], rbp
mov rdx, qword [rdi]
mov rbp, qword [rdx + rax + 8]
mov qword [rsp + 0xc8], rcx
call fcn.1402af140
mov edi, eax
mov qword [rsp + 0x98], rbp
mov rcx, rbp
call fcn.1402af140
cmp dil, 0x41
jl 0x1402d2564
cmp al, 0x41
jl 0x1402d2564
cmp al, 0x43
setae al
add al, al
or al, 0x41
cmp dil, 0x43
movzx eax, al
mov ecx, 0x43
cmovae eax, ecx
jmp 0x1402d2572
cmp al, 0x41
movzx ecx, dil
movzx eax, al
cmovl eax, ecx
or al, 0x40
mov r8, qword [rsp + 0x38]
mov cl, 0x44
test r8w, r8w
mov r10, qword [rsp + 0x40]
mov rbp, qword [rsp + 0xd0]
mov r9, qword [rsp + 0xc8]
js 0x1402d25ae
mov rdx, qword [rsi + 0x18]
cmp word [rdx + 0x36], r8w
jle 0x1402d25ae
mov rcx, qword [rdx + 8]
mov edx, r8d
lea rdx, [rdx + rdx*2]
mov cl, byte [rcx + rdx*8 + 0xc]
cmp al, cl
jne 0x1402d2ad4
test byte [r9 + 5], 2
jne 0x1402d2605
mov rdx, qword [rsp + 0x98]
test rdx, rdx
je 0x1402d25d0
test byte [rdx + 5], 2
jne 0x1402d260f
mov rcx, qword [rsp + 0x50]
mov rdx, r9
call fcn.140270d40
test rax, rax
mov rdi, qword [rsp + 0x20]
mov r10, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x28]
jne 0x1402d2631
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x98]
call fcn.140270d40
jmp 0x1402d261e
mov rcx, qword [rsp + 0x50]
mov rdx, r9
jmp 0x1402d2614
mov rcx, qword [rsp + 0x50]
call fcn.140270d40
mov rdi, qword [rsp + 0x20]
test rax, rax
mov r10, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x28]
je 0x1402d2ad9
mov rcx, qword [rsi + 0x40]
mov rcx, qword [rcx + rdx*8]
mov rax, qword [rax]
xor edx, edx
movzx r8d, byte [rax + rdx]
movzx r9d, byte [rcx + rdx]
cmp r8b, r9b
jne 0x1402d2654
test r8, r8
jne 0x1402d2669
jmp 0x1402d266e
lea r11, [0x1403cba90]
mov r8b, byte [r8 + r11]
cmp r8b, byte [r9 + r11]
jne 0x1402d2ad9
inc rdx
jmp 0x1402d263e
inc rbp
cmp rbp, qword [rsp + 0xc0]
mov r9d, dword [rsp + 0x88]
jne 0x1402d249c
mov eax, dword [rsp + 0x84]
mov ebp, eax
jmp 0x1402d2ad9
mov ax, 0x28
add eax, 0xfffffff6
lea r8, [rcx + rcx]
cmp rcx, 4
mov rcx, r8
jb 0x1402d2699
jmp 0x1402d26c9
mov rdx, rcx
mov r8, rdx
cmp rdx, 0x10
jb 0x1402d26c9
add eax, 0xa
mov r8, rdx
shr r8, 1
cmp rdx, 0x1f
mov rdx, r8
ja 0x1402d26b7
and r8d, 7
lea rcx, [0x1403d4270]
add ax, word [rcx + r8*2]
add eax, 0xfffffff6
movzx ebp, ax
test byte [rsi + 0x64], 0x80
je 0x1402d2797
cmp r13w, 0xa
jl 0x1402d2797
cmp bp, 0xb
jge 0x1402d26fe
xor eax, eax
jmp 0x1402d2755
movzx edx, bp
mov ax, 0x28
cmp edx, 0x100
jb 0x1402d2729
mov ax, 0x28
mov rcx, rdx
add eax, 0x28
shr rcx, 4
cmp rdx, 0xfff
mov rdx, rcx
ja 0x1402d2714
jmp 0x1402d272c
mov rcx, rdx
cmp rcx, 0x10
jb 0x1402d2744
add eax, 0xa
mov rdx, rcx
shr rdx, 1
cmp rcx, 0x1f
mov rcx, rdx
ja 0x1402d2732
and ecx, 7
lea rdx, [0x1403d4270]
add ax, word [rdx + rcx*2]
add eax, 0xffffffd5
mov rcx, qword [rsi + 0x10]
movzx ecx, word [rcx + rbx*2]
mov rdx, qword [rsp + 0xd8]
add edx, ebp
sub ecx, edx
add ecx, eax
add cx, 0xa
jns 0x1402d2797
xor edi, edi
cmp r10w, 1
jg 0x1402d2a26
mov rax, qword [rsp + 0x58]
test byte [rax + 0x62], 2
jne 0x1402d2a26
or byte [r15 + 0x3a], 0x10
mov rdi, qword [rsp + 0x20]
mov ecx, dword [r15 + 0x38]
or ecx, 4
mov dword [r15 + 0x38], ecx
test cl, 2
jne 0x1402d27e9
mov eax, dword [r15 + 0x18]
inc eax
mov word [r15 + 0x18], ax
movzx edx, word [r12 + 0x10]
test dx, dx
jle 0x1402d2812
movzx eax, ax
mov r8, qword [rsi + 0x10]
movzx edx, word [r8 + rax*2]
sub dx, word [r8 + rax*2 - 2]
add dx, word [r15 + 0x16]
mov word [r15 + 0x16], dx
bt r14d, 8
jae 0x1402d28cc
add edx, 0xa
jmp 0x1402d2825
movzx edx, word [r15 + 0x16]
mov r9, qword [rsp + 0x38]
test r9, r9
je 0x1402d2831
movzx r8d, word [r9 + 0x10]
test r8w, r8w
jle 0x1402d2840
lea r8d, [rdx - 0x14]
test byte [r9 + 0x12], 0x80
cmovne r8d, edx
jmp 0x1402d2843
mov r8, qword [rsi + 8]
cmp word [r8 + rbx*2], 0
js 0x1402d27bd
sub edx, ebp
add dx, word [r15 + 0x16]
mov eax, ecx
mov r12, qword [rsp + 0x28]
jmp 0x1402d28c0
mov eax, ecx
mov r12, qword [rsp + 0x28]
xor r9d, r9d
mov r8d, edx
jmp 0x1402d284a
add r8d, edx
mov eax, ecx
mov r12, qword [rsp + 0x28]
test r12, r12
je 0x1402d2870
movzx ecx, word [r12 + 0x10]
test cx, cx
jle 0x1402d286a
test byte [r12 + 0x12], 0x80
lea ecx, [r8 - 0x14]
cmovne ecx, r8d
jmp 0x1402d286d
add ecx, r8d
mov r8d, ecx
test r9, r9
je 0x1402d2894
test r12, r12
je 0x1402d2894
cmp word [r9 + 0x10], 0
jle 0x1402d2894
cmp word [r12 + 0x10], 0
lea ecx, [r8 - 0x14]
cmovle ecx, r8d
mov r8d, ecx
movsx edx, dx
cmp r12, 1
adc edx, 0xffffffff
mov qword [rsp + 0x38], r9
cmp r9, 1
adc edx, 0xffffffff
cmp r8w, 0xb
mov ecx, 0xa
cmovge ecx, r8d
movzx ecx, cx
cmp edx, ecx
cmovge edx, ecx
mov word [r15 + 0x16], dx
mov ecx, eax
mov qword [rsp + 0x28], r12
mov eax, dword [rsi + 0x64]
not eax
movzx r14d, dx
test al, 3
mov r12d, dword [rsp + 0x6c]
jne 0x1402d28e4
lea eax, [r14 + 0x10]
jmp 0x1402d2905
movsx eax, word [rsi + 0x5c]
lea eax, [rax + rax*4]
lea eax, [rax + rax*2]
mov rdx, qword [rsp + 0x60]
mov rdx, qword [rdx + 0x20]
movsx r8d, word [rdx + 0x3c]
cdq
idiv r8d
add eax, r14d
inc eax
movsx edx, ax
cmp r13w, dx
jge 0x1402d2924
cmp dword [rsp + 0x94], edx
jl 0x1402d2975
cmp dword [rsp + 0x8c], edx
jge 0x1402d295d
inc eax
jmp 0x1402d2975
lea r8d, [rdx + 0x31]
mov eax, r13d
cmp r8d, dword [rsp + 0x70]
jl 0x1402d2975
lea r8d, [rdx + 0x1f]
mov eax, dword [rsp + 0x90]
cmp r8d, dword [rsp + 0x70]
jl 0x1402d2975
mov rax, qword [rsp + 0x70]
sub eax, edx
cdqe
lea rdx, str._n_n_t_t_b_b_a_a_a
movzx eax, byte [rax + rdx]
add eax, r13d
jmp 0x1402d2975
mov eax, edx
sub eax, dword [rsp + 0x70]
cdqe
lea r8, str._n_n_t_t_b_b_a_a_a
movzx eax, byte [rax + r8]
add edx, eax
mov eax, edx
test ecx, 0x4000140
je 0x1402d2a4c
mov r8d, eax
add ebp, r10d
add r8d, ebp
mov word [r15 + 0x14], r8w
lea eax, [r14 + rbp]
mov word [r15 + 0x16], ax
mov rcx, qword [rdi + 8]
mov rdx, r15
mov r8, qword [rsp + 0x78]
call fcn.1402d1b80
mov rcx, rdi
mov rdx, r15
call fcn.1402d1190
mov edi, eax
mov eax, dword [r15 + 0x38]
test al, 2
cmovne r14d, r12d
mov word [r15 + 0x16], r14w
test al, 0x10
jne 0x1402d2a21
movzx eax, word [r15 + 0x18]
cmp ax, word [rsi + 0x60]
jae 0x1402d2a21
cmp ax, word [rsi + 0x5e]
jb 0x1402d29e5
mov ecx, dword [rsi + 0x64]
and ecx, 3
cmp ecx, 2
je 0x1402d2a21
cmp ax, 4
jb 0x1402d2a0c
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov eax, dword [rax + 0x188]
test eax, eax
je 0x1402d2a0c
mov rax, qword [rsp + 0x50]
inc dword [rax + 0x30]
mov dword [rax + 0x18], 9
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x60]
mov r8, rsi
mov r9d, ebp
call fcn.1402d1e20
mov word [r15 + 0x16], r12w
lea rcx, [rsp + 0xe0]
call fcn.1402cec90
test edi, edi
jne 0x1402d2c20
mov r12, rax
test rax, rax
jne 0x1402d2124
jmp 0x1402d2c20
lea r8d, [r14 + 0x10]
movsx ecx, ax
movsx edx, r8w
cmp cx, dx
jge 0x1402d2a77
lea eax, [rcx + 0x31]
cmp eax, edx
jl 0x1402d2984
lea eax, [rcx + 0x1f]
cmp eax, edx
jge 0x1402d2a94
lea r8d, [r14 + 0x11]
jmp 0x1402d2984
lea r8d, [rdx + 0x31]
cmp r8d, ecx
jl 0x1402d2981
lea r8d, [rdx + 0x1f]
cmp r8d, ecx
jge 0x1402d2aaf
inc eax
jmp 0x1402d2981
mov eax, edx
sub eax, ecx
cdqe
lea rcx, str._n_n_t_t_b_b_a_a_a
movzx eax, byte [rax + rcx]
add edx, eax
mov r8d, edx
jmp 0x1402d2984
mov eax, ecx
sub eax, edx
cdqe
lea rdx, str._n_n_t_t_b_b_a_a_a
movzx eax, byte [rax + rdx]
add ecx, eax
mov r8d, ecx
jmp 0x1402d2984
or eax, 0x10001
jmp 0x1402d233a
mov rdi, qword [rsp + 0x20]
mov ecx, dword [r15 + 0x38]
test r14b, 0x24
je 0x1402d2b05
or ecx, 0x22
mov dword [r15 + 0x38], ecx
mov word [r15 + 0x1a], bp
xor ebp, ebp
test byte [r12 + 0x13], 1
jne 0x1402d2b27
xor eax, eax
mov qword [rsp + 0x28], rax
jmp 0x1402d2c13
mov eax, ecx
or eax, 0x12
mov dword [r15 + 0x38], eax
mov word [r15 + 0x1c], bp
test cl, 0x20
jne 0x1402d2b3c
movzx edx, word [r15 + 0x16]
xor r9d, r9d
xor ebp, ebp
jmp 0x1402d283b
movzx eax, word [r15 + 0x3c]
cmp ax, word [r15 + 0x40]
jae 0x1402d2b60
mov r8, qword [r15 + 0x48]
jmp 0x1402d2be5
mov rcx, qword [r15 + 0x48]
movzx edx, word [r15 + 0x3c]
mov rcx, qword [rcx + rdx*8 - 0x10]
mov qword [rsp + 0x38], rcx
xor ebp, ebp
mov ecx, eax
mov rax, r12
mov qword [rsp + 0x28], r12
jmp 0x1402d27a2
xor edi, edi
mov rcx, qword [rsp + 0x58]
cmp byte [rcx + 0x67], 0
jne 0x1402d2c20
movzx eax, ax
add eax, 8
and eax, 0xfffffff8
mov qword [rsp + 0x28], rax
lea rdx, [rax*8]
call fcn.140239ff0
test rax, rax
je 0x1402d2c20
mov rdx, qword [r15 + 0x48]
movzx r8d, word [r15 + 0x40]
shl r8, 3
mov rdi, rax
mov rcx, rax
call fcn.14031b320
mov rdx, qword [r15 + 0x48]
cmp rdx, qword [rsp + 0xa0]
je 0x1402d2bc5
mov rcx, qword [rsp + 0x58]
call fcn.140239dc0
mov r8, rdi
mov qword [r15 + 0x48], rdi
mov rax, qword [rsp + 0x28]
mov word [r15 + 0x40], ax
movzx eax, word [r15 + 0x3c]
mov rdi, qword [rsp + 0x20]
mov r10, qword [rsp + 0x40]
lea rdx, [r12 + 0x38]
lea ecx, [rax + 1]
mov word [r15 + 0x3c], cx
movzx eax, ax
mov rcx, rdx
mov qword [rsp + 0x28], rdx
mov qword [r8 + rax*8], rdx
mov ecx, dword [r15 + 0x38]
or ecx, 0x10
mov dword [r15 + 0x38], ecx
mov word [r15 + 0x1c], 1
mov rax, r12
mov qword [rsp + 0x38], r12
jmp 0x1402d27a2
mov rax, qword [rsp + 0xb8]
mov qword [r15], rax
movzx ebp, word [rsp + 0x36]
mov word [r15 + 0x18], bp
movzx eax, word [rsp + 0x32]
mov word [r15 + 0x1a], ax
movzx eax, word [rsp + 0x30]
mov word [r15 + 0x1c], ax
movzx ecx, word [rsp + 0x4e]
mov word [r15 + 0x3e], cx
mov eax, dword [rsp + 0x48]
mov dword [r15 + 0x38], eax
mov r12d, dword [rsp + 0x6c]
mov word [r15 + 0x16], r12w
movzx edx, word [rsp + 0x34]
mov word [r15 + 0x3c], dx
cmp bp, cx
jne 0x1402d2d54
lea eax, [rbx + 1]
movzx ecx, word [rsi + 0x5e]
cmp eax, ecx
jae 0x1402d2d54
cmp bp, dx
jne 0x1402d2d54
mov eax, 0xc0
and eax, dword [rsi + 0x64]
cmp eax, 0x80
jne 0x1402d2d54
mov r13, qword [rsp + 0x58]
test byte [r13 + 0x61], 0x40
jne 0x1402d2d54
mov rax, qword [rsi + 0x10]
cmp word [rax + rbx*2 + 2], 0x2a
jl 0x1402d2d54
cmp bp, word [r15 + 0x40]
jae 0x1402d2d48
mov r14, qword [r15 + 0x48]
mov eax, ebp
mov r8d, ebp
mov edx, ebp
mov rcx, qword [rsp + 0x20]
inc edx
mov word [r15 + 0x18], dx
inc r8d
mov word [r15 + 0x3e], r8w
lea edx, [rax + 1]
mov word [r15 + 0x3c], dx
movzx eax, ax
mov qword [r14 + rax*8], 0
or byte [r15 + 0x39], 0x80
mov rax, qword [rsi + 0x10]
movzx edx, word [rax + rbx*2]
sub dx, word [rax + rbx*2 + 2]
sub word [r15 + 0x16], dx
mov rax, qword [rsp + 0x40]
lea r9d, [rax + rdx]
add r9d, 5
mov rdx, qword [rsp + 0x60]
mov r8, rsi
call fcn.1402d1e20
mov word [r15 + 0x16], r12w
mov word [r15 + 0x18], bp
mov word [r15 + 0x3e], bp
mov eax, dword [rsp + 0x48]
mov dword [r15 + 0x38], eax
xor edi, edi
jmp 0x1402d2d54
mov edi, 7
cmp byte [r13 + 0x67], 0
je 0x1402d2d7a
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.140319a10
mov eax, edi
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r13
mov rdx, qword [rsp + 0xb0]
call fcn.140239ff0
test rax, rax
je 0x1402d2d54
mov r14, rax
mov rdx, qword [r15 + 0x48]
movzx r8d, word [r15 + 0x40]
shl r8, 3
mov rcx, rax
call fcn.14031b320
mov rdx, qword [r15 + 0x48]
lea rax, [r15 + 0x58]
cmp rdx, rax
je 0x1402d2dbc
mov rcx, r13
call fcn.140239dc0
mov qword [r15 + 0x48], r14
mov rax, qword [rsp + 0xa8]
mov word [r15 + 0x40], ax
movzx edx, word [r15 + 0x18]
movzx eax, word [r15 + 0x3c]
movzx r8d, word [r15 + 0x3e]
jmp 0x1402d2cd5