Function at 0x15037f8e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov rax, qword [0x150012098]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov r13d, r9d
mov r14, rcx
mov rdi, qword [rsp + 0xe0]
mov r12, qword [rsp + 0xe8]
xor esi, esi
cmp byte [rcx + 9], sil
je 0x150380982
cmp byte [rcx + 0xb], sil
je 0x15037fecc
cmp dword [rcx + 0xc], esi
je 0x150380e0e
jmp 0x15037f94f
sub edi, dword [r12]
movsxd rdi, edi
mov rcx, r12
call fcn.15035c5a4
add rdi, rax
cmp rdi, qword [r12]
jb 0x15037f961
cmp byte [r12 + 0x38], sil
je 0x15037f93d
lea rdi, [r12 + 0x10]
shl r13d, 3
or r13d, 2
mov byte [rdi], r13b
lea rcx, [rdi + 1]
mov ebp, 0x80
lea r15d, [rbp - 0x7f]
cmp r13d, ebp
jb 0x15037f9a6
mov al, r13b
or al, bpl
mov byte [rdi], al
shr r13d, 7
mov byte [rcx], r13b
lea rcx, [rdi + 2]
jmp 0x15037f9a1
or byte [rcx - 1], bpl
shr r13d, 7
mov byte [rcx], r13b
add rcx, r15
cmp r13d, ebp
jae 0x15037f993
movsxd rdx, dword [r14 + 0xc]
mov byte [rcx], dl
lea rdi, [rcx + 1]
cmp rdx, rbp
jb 0x15037f9da
mov al, dl
or al, bpl
mov byte [rcx], al
shr rdx, 7
mov byte [rdi], dl
lea rdi, [rcx + 2]
jmp 0x15037f9d5
or byte [rdi - 1], bpl
shr rdx, 7
mov byte [rdi], dl
add rdi, r15
cmp rdx, rbp
jae 0x15037f9c8
movzx ecx, byte [r14 + 8]
cmp ecx, 0xa
ja 0x15037fc9b
je 0x15037fa37
sub ecx, r15d
je 0x15037fc5b
sub ecx, r15d
je 0x15037fc1c
sub ecx, r15d
je 0x15037fbdc
sub ecx, r15d
je 0x15037fb9c
sub ecx, r15d
je 0x15037fb5d
sub ecx, r15d
je 0x15037fb1d
sub ecx, r15d
je 0x15037fade
sub ecx, r15d
je 0x15037fa97
cmp ecx, r15d
jne 0x150380e0e
mov dword [rsp + 0x40], 3
lea rax, [0x150266300]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x50], 0x707
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
movdqa xmm1, xmmword [0x150270450]
movdqu xmmword [rsp + 0x68], xmm1
mov byte [rsp + 0x58], sil
lea rdx, [0x150266398]
lea rcx, [rsp + 0x40]
call fcn.150365258
mov rdx, rax
call fcn.150365534
nop
lea rcx, [rsp + 0x40]
call fcn.15036544c
jmp 0x150380e0e
mov ebx, esi
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, ebx
mov rcx, qword [r14]
call fcn.15037666c
mov ecx, esi
cmp byte [rax], sil
setne cl
mov rdx, r8
call fcn.15035bad4
mov rdi, rax
add ebx, r15d
mov rax, qword [r14]
cmp ebx, dword [rax]
jl 0x15037faa4
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376910
mov rdx, r8
mov ecx, dword [rax]
call fcn.1503667ac
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fae9
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376c28
mov rdx, r8
mov rcx, qword [rax]
call fcn.1503667b4
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fb28
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376910
mov rdx, r8
mov ecx, dword [rax]
call fcn.150366768
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fb68
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376c28
mov rdx, r8
mov rcx, qword [rax]
call fcn.15036672c
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fba7
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376c28
mov rdx, r8
mov rcx, qword [rax]
call fcn.15036672c
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fbe7
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376910
mov rdx, r8
mov ecx, dword [rax]
call fcn.1503667ac
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fc27
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376c28
mov rdx, r8
mov rcx, qword [rax]
call fcn.1503667b4
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fc66
jmp 0x150380e0e
sub ecx, 0xb
je 0x15037fa37
sub ecx, r15d
je 0x15037fa37
sub ecx, r15d
je 0x15037fe66
sub ecx, r15d
je 0x15037fe24
sub ecx, r15d
je 0x15037fde5
sub ecx, r15d
je 0x15037fda5
sub ecx, r15d
je 0x15037fd5b
cmp ecx, r15d
jne 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rbx, rsi
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov rcx, qword [r14]
mov rdx, qword [rcx + 8]
mov rcx, qword [rbx + rdx]
mov rdx, rcx
sar rdx, 0x3f
add rcx, rcx
xor rdx, rcx
mov byte [rax], dl
lea rdi, [rax + 1]
cmp rdx, rbp
jb 0x15037fd48
mov al, dl
or al, bpl
mov byte [r8], al
shr rdx, 7
mov byte [rdi], dl
lea rdi, [r8 + 2]
jmp 0x15037fd43
or byte [rdi - 1], bpl
shr rdx, 7
mov byte [rdi], dl
add rdi, r15
cmp rdx, rbp
jae 0x15037fd36
add esi, r15d
add rbx, 8
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fcf1
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rbx, rsi
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov rcx, qword [r14]
mov rdx, qword [rcx + 8]
mov edx, dword [rbx + rdx]
mov ecx, edx
sar ecx, 0x1f
add edx, edx
xor ecx, edx
mov rdx, rax
call fcn.15035bad4
mov rdi, rax
add esi, r15d
lea rbx, [rbx + 4]
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fd69
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376c28
mov rdx, r8
mov rcx, qword [rax]
call fcn.1503667b4
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fdb0
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rbx, rsi
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov rdi, rax
mov rax, qword [r14]
mov rcx, qword [rax + 8]
mov eax, dword [rbx + rcx]
mov dword [rdi], eax
add rdi, 4
add esi, r15d
lea rbx, [rbx + 4]
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fdf3
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rbx, rsi
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov rcx, qword [r14]
mov rdx, qword [rcx + 8]
movsxd rcx, dword [rbx + rdx]
mov rdx, rax
call fcn.15036672c
mov rdi, rax
add esi, r15d
lea rbx, [rbx + 4]
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fe32
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov rbx, rsi
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov rcx, qword [r14]
mov rdx, qword [rcx + 8]
mov ecx, dword [rbx + rdx]
mov byte [rax], cl
lea rdi, [rax + 1]
cmp ecx, ebp
jb 0x15037feb9
mov al, cl
or al, bpl
mov byte [r8], al
shr ecx, 7
mov byte [rdi], cl
lea rdi, [r8 + 2]
jmp 0x15037feb5
or byte [rdi - 1], bpl
shr ecx, 7
mov byte [rdi], cl
add rdi, r15
cmp ecx, ebp
jae 0x15037fea9
add esi, r15d
add rbx, 4
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15037fe74
jmp 0x150380e0e
movzx ecx, byte [rcx + 8]
cmp ecx, 0xa
ja 0x150380392
je 0x15038030f
sub ecx, 1
je 0x1503802ac
sub ecx, 1
je 0x15038024a
sub ecx, 1
je 0x1503801ed
sub ecx, 1
je 0x150380190
sub ecx, 1
je 0x150380133
sub ecx, 1
je 0x1503800d3
sub ecx, 1
je 0x150380073
sub ecx, 1
je 0x15038000f
cmp ecx, 1
jne 0x150380e0e
mov rax, qword [r14]
cmp dword [rax + 8], esi
jle 0x150380e0e
lea ebp, [rcx + 0x7f]
mov r15d, ecx
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r9, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376580
mov r10, rax
mov rdi, qword [rax + 0x10]
cmp rdi, rbp
jge 0x15037ffea
lea r8d, [r13*8]
mov ecx, r8d
call fcn.150359d5c
movsxd rcx, eax
mov rdx, qword [r12]
sub rdx, r9
sub rdx, rcx
add rdx, 0xf
cmp rdx, rdi
jl 0x15037ffea
or r8d, 2
mov byte [r9], r8b
lea rbx, [r9 + 1]
cmp r8d, ebp
jb 0x15037ffc9
mov al, r8b
or al, bpl
mov byte [r9], al
shr r8d, 7
mov byte [rbx], r8b
lea rbx, [r9 + 2]
jmp 0x15037ffc4
or byte [rbx - 1], bpl
shr r8d, 7
mov byte [rbx], r8b
add rbx, r15
cmp r8d, ebp
jae 0x15037ffb6
mov byte [rbx], dil
add rbx, r15
mov rcx, r10
call fcn.1502a9580
mov rdx, rax
mov r8, rdi
mov rcx, rbx
call fcn.15040d600
add rdi, rbx
jmp 0x15037fffb
mov r8, r10
mov edx, r13d
mov rcx, r12
call fcn.15035c798
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax + 8]
jl 0x15037ff42
jmp 0x150380e0e
mov ebx, esi
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
xor edx, edx
mov ecx, r13d
call fcn.1503667bc
mov ebp, eax
lea r15d, [rdx + 1]
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, ebx
mov rcx, qword [r14]
call fcn.15037666c
mov r10b, byte [rax]
mov rdx, r8
mov ecx, ebp
call fcn.15035bad4
mov ecx, esi
test r10b, r10b
setne cl
mov rdx, rax
call fcn.15035bad4
mov rdi, rax
add ebx, r15d
mov rax, qword [r14]
cmp ebx, dword [rax]
jl 0x15038002c
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov edx, 5
mov ecx, r13d
call fcn.1503667bc
mov ebx, eax
lea r15d, [rdx - 4]
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376910
mov r10d, dword [rax]
mov rdx, r8
mov ecx, ebx
call fcn.15035bad4
mov rdx, rax
mov ecx, r10d
call fcn.1503667ac
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x150380091
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov r15d, 1
mov edx, r15d
mov ecx, r13d
call fcn.1503667bc
mov ebx, eax
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376c28
mov r10, qword [rax]
mov rdx, r8
mov ecx, ebx
call fcn.15035bad4
mov rdx, rax
mov rcx, r10
call fcn.1503667b4
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x1503800f1
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
xor edx, edx
mov ecx, r13d
call fcn.1503667bc
mov ebx, eax
lea r15d, [rdx + 1]
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376910
mov r10d, dword [rax]
mov rdx, r8
mov ecx, ebx
call fcn.15035bad4
mov rdx, rax
mov ecx, r10d
call fcn.150366768
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x15038014e
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
xor edx, edx
mov ecx, r13d
call fcn.1503667bc
mov ebx, eax
lea r15d, [rdx + 1]
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376c28
mov r10, qword [rax]
mov rdx, r8
mov ecx, ebx
call fcn.15035bad4
mov rdx, rax
mov rcx, r10
call fcn.15036672c
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x1503801ab
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
xor edx, edx
mov ecx, r13d
call fcn.1503667bc
mov ebx, eax
lea r15d, [rdx + 1]
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376c28
mov r10, qword [rax]
mov rdx, r8
mov ecx, ebx
call fcn.15035bad4
mov rdx, rax
mov rcx, r10
call fcn.15036672c
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x150380208
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov edx, 5
mov ecx, r13d
call fcn.1503667bc
mov ebx, eax
lea r15d, [rdx - 4]
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376910
movss xmm0, dword [rax]
mov rdx, r8
mov ecx, ebx
call fcn.15035bad4
mov rdx, rax
movd ecx, xmm0
call fcn.1503667ac
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x150380268
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
mov r15d, 1
mov edx, r15d
mov ecx, r13d
call fcn.1503667bc
mov ebx, eax
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov edx, esi
mov rcx, qword [r14]
call fcn.150376c28
movsd xmm0, qword [rax]
mov rdx, r8
mov ecx, ebx
call fcn.15035bad4
mov rdx, rax
movq rcx, xmm0
call fcn.1503667b4
mov rdi, rax
add esi, r15d
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x1503802ca
jmp 0x150380e0e
mov ebp, esi
mov rax, qword [r14]
cmp dword [rax + 8], esi
jle 0x150380e0e
mov rbx, rsi
mov qword [rsp + 0x30], rbx
mov r15d, 1
cmp rdi, qword [r12]
jb 0x15038035c
jmp 0x15038034b
sub edi, dword [r12]
movsxd rdi, edi
mov rcx, r12
call fcn.15035c5a4
add rdi, rax
cmp rdi, qword [r12]
jb 0x150380357
cmp byte [r12 + 0x38], sil
je 0x150380333
lea rdi, [r12 + 0x10]
mov rbx, qword [rsp + 0x30]
mov rax, qword [r14]
mov rcx, qword [rax + 0x10]
mov r9, r12
mov r8, rdi
mov rdx, qword [rcx + rbx + 8]
mov ecx, r13d
call fcn.1503adbc0
mov rdi, rax
add ebp, r15d
add rbx, 8
mov qword [rsp + 0x30], rbx
mov rax, qword [r14]
cmp ebp, dword [rax + 8]
jl 0x15038032b
jmp 0x150380e0e
sub ecx, 0xb
je 0x15038092e
sub ecx, 1
je 0x15038081b
sub ecx, 1
je 0x150380734
sub ecx, 1
je 0x150380685
sub ecx, 1
je 0x1503805c8
sub ecx, 1
je 0x150380545
sub ecx, 1
je 0x150380491
cmp ecx, 1
jne 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
shl r13d, 3
mov rbx, rsi
lea ebp, [rcx + 0x7f]
mov r15d, ecx
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov rcx, qword [r14]
mov rdx, qword [rcx + 8]
mov r9, qword [rbx + rdx]
mov ecx, r13d
mov byte [rax], cl
lea rdx, [rax + 1]
cmp r13d, ebp
jb 0x15038043c
mov al, cl
or al, bpl
mov byte [r8], al
shr ecx, 7
mov byte [rdx], cl
lea rdx, [r8 + 2]
jmp 0x150380438
or byte [rdx - 1], bpl
shr ecx, 7
mov byte [rdx], cl
add rdx, r15
cmp ecx, ebp
jae 0x15038042c
mov rcx, r9
sar rcx, 0x3f
lea rax, [r9 + r9]
xor rcx, rax
mov byte [rdx], cl
lea rdi, [rdx + 1]
cmp rcx, rbp
jb 0x15038047a
mov al, cl
or al, bpl
mov byte [rdx], al
shr rcx, 7
mov byte [rdi], cl
lea rdi, [rdx + 2]
jmp 0x150380475
or byte [rdi - 1], bpl
shr rcx, 7
mov byte [rdi], cl
add rdi, r15
cmp rcx, rbp
jae 0x150380468
add esi, r15d
add rbx, 8
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x1503803f2
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
shl r13d, 3
mov rbx, rsi
mov ebp, 0x80
lea r15d, [rbp - 0x7f]
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov rcx, qword [r14]
mov rdx, qword [rcx + 8]
mov r9d, dword [rbx + rdx]
mov ecx, r13d
mov byte [rax], cl
lea rdx, [rax + 1]
cmp r13d, ebp
jb 0x1503804f6
mov al, cl
or al, bpl
mov byte [r8], al
shr ecx, 7
mov byte [rdx], cl
lea rdx, [r8 + 2]
jmp 0x1503804f2
or byte [rdx - 1], bpl
shr ecx, 7
mov byte [rdx], cl
add rdx, r15
cmp ecx, ebp
jae 0x1503804e6
mov ecx, r9d
sar ecx, 0x1f
lea eax, [r9 + r9]
xor ecx, eax
mov byte [rdx], cl
lea rdi, [rdx + 1]
cmp ecx, ebp
jb 0x15038052e
mov al, cl
or al, bpl
mov byte [rdx], al
shr ecx, 7
mov byte [rdi], cl
lea rdi, [rdx + 2]
jmp 0x15038052a
or byte [rdi - 1], bpl
shr ecx, 7
mov byte [rdi], cl
add rdi, r15
cmp ecx, ebp
jae 0x15038051e
add esi, r15d
add rbx, 4
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x1503804ac
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
shl r13d, 3
mov r15d, 1
or r13d, r15d
mov rbx, rsi
lea ebp, [r15 + 0x7f]
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov rcx, qword [r14]
mov rdx, qword [rcx + 8]
mov r9, qword [rbx + rdx]
mov ecx, r13d
mov byte [rax], cl
lea rdi, [rax + 1]
cmp r13d, ebp
jb 0x1503805ae
mov al, cl
or al, bpl
mov byte [r8], al
shr ecx, 7
mov byte [rdi], cl
lea rdi, [r8 + 2]
jmp 0x1503805aa
or byte [rdi - 1], bpl
shr ecx, 7
mov byte [rdi], cl
add rdi, r15
cmp ecx, ebp
jae 0x15038059e
mov qword [rdi], r9
add rdi, 8
add esi, r15d
add rbx, 8
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x150380564
jmp 0x150380e0e
mov r8d, esi
mov dword [rsp + 0x38], esi
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
lea eax, [r9*8]
or eax, 5
mov dword [rsp + 0x30], eax
mov r13, rsi
mov ebp, 0x80
lea r15d, [rbp - 0x7f]
cmp rdi, qword [r12]
jb 0x150380626
jmp 0x150380615
sub edi, dword [r12]
movsxd rdi, edi
mov rcx, r12
call fcn.15035c5a4
add rdi, rax
cmp rdi, qword [r12]
jb 0x150380621
cmp byte [r12 + 0x38], sil
je 0x1503805fd
lea rdi, [r12 + 0x10]
mov r8d, dword [rsp + 0x38]
mov rax, qword [r14]
mov rcx, qword [rax + 8]
mov r9d, dword [rcx + r13]
mov edx, dword [rsp + 0x30]
mov byte [rdi], dl
lea rcx, [rdi + 1]
cmp edx, ebp
jb 0x150380661
mov al, dl
or al, bpl
mov byte [rdi], al
shr edx, 7
mov byte [rcx], dl
lea rcx, [rdi + 2]
jmp 0x15038065d
or byte [rcx - 1], bpl
shr edx, 7
mov byte [rcx], dl
add rcx, r15
cmp edx, ebp
jae 0x150380651
mov dword [rcx], r9d
lea rdi, [rcx + 4]
add r8d, r15d
mov dword [rsp + 0x38], r8d
add r13, 4
mov rax, qword [r14]
cmp r8d, dword [rax]
jl 0x1503805f5
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
shl r13d, 3
mov rbx, rsi
mov ebp, 0x80
lea r15d, [rbp - 0x7f]
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov rcx, qword [r14]
mov rdx, qword [rcx + 8]
movsxd r9, dword [rbx + rdx]
mov edx, r13d
mov byte [rax], dl
lea rcx, [rax + 1]
cmp r13d, ebp
jb 0x1503806ea
mov al, dl
or al, bpl
mov byte [r8], al
shr edx, 7
mov byte [rcx], dl
lea rcx, [r8 + 2]
jmp 0x1503806e6
or byte [rcx - 1], bpl
shr edx, 7
mov byte [rcx], dl
add rcx, r15
cmp edx, ebp
jae 0x1503806da
mov rdx, r9
mov byte [rcx], dl
lea rdi, [rcx + 1]
cmp r9, rbp
jb 0x15038071d
mov al, dl
or al, bpl
mov byte [rcx], al
shr rdx, 7
mov byte [rdi], dl
lea rdi, [rcx + 2]
jmp 0x150380718
or byte [rdi - 1], bpl
shr rdx, 7
mov byte [rdi], dl
add rdi, r15
cmp rdx, rbp
jae 0x15038070b
add esi, r15d
add rbx, 4
mov rax, qword [r14]
cmp esi, dword [rax]
jl 0x1503806a0
jmp 0x150380e0e
mov r9d, esi
mov dword [rsp + 0x38], esi
mov rax, qword [r14]
cmp dword [rax], esi
jle 0x150380e0e
lea eax, [r13*8]
mov dword [rsp + 0x30], eax
mov r13, rsi
mov ebp, 0x80
lea r15d, [rbp - 0x7f]
cmp rdi, qword [r12]
jb 0x15038078f
jmp 0x15038077e
sub edi, dword [r12]
movsxd rdi, edi
mov rcx, r12
call fcn.15035c5a4
add rdi, rax
cmp rdi, qword [r12]
jb 0x15038078a
cmp byte [r12 + 0x38], sil
je 0x150380766
lea rdi, [r12 + 0x10]
mov r9d, dword [rsp + 0x38]
mov rax, qword [r14]
mov rcx, qword [rax + 8]
mov r8d, dword [rcx + r13]
mov edx, dword [rsp + 0x30]
mov byte [rdi], dl
lea rcx, [rdi + 1]
cmp edx, ebp
jb 0x1503807ca
mov al, dl
or al, bpl
mov byte [rdi], al
shr edx, 7
mov byte [rcx], dl
lea rcx, [rdi + 2]
jmp 0x1503807c6
or byte [rcx - 1], bpl
shr edx, 7
mov byte [rcx], dl
add rcx, r15
cmp edx, ebp
jae 0x1503807ba
mov byte [rcx], r8b
lea rdi, [rcx + 1]
cmp r8d, ebp
jb 0x1503807fe
mov al, r8b
or al, bpl
mov byte [rcx], al
shr r8d, 7
mov byte [rdi], r8b
lea rdi, [rcx + 2]
jmp 0x1503807f9
or byte [rdi - 1], bpl
shr r8d, 7
mov byte [rdi], r8b
add rdi, r15
cmp r8d, ebp
jae 0x1503807eb
add r9d, r15d
mov dword [rsp + 0x38], r9d
add r13, 4
mov rax, qword [r14]
cmp r9d, dword [rax]
jl 0x15038075e
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax + 8], esi
jle 0x150380e0e
mov qword [rsp + 0x30], rsi
mov ebx, 2
lea ebp, [rbx + 0x7e]
lea r15d, [rbx - 1]
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r9, rax
mov rcx, qword [r14]
mov rdx, qword [rcx + 0x10]
mov r10, qword [rsp + 0x30]
mov r10, qword [rdx + r10 + 8]
mov rdi, qword [r10 + 0x10]
cmp rdi, rbp
jge 0x150380903
lea edx, [r13*8]
cmp edx, 0x10000000
sbb rcx, rcx
add rcx, 5
cmp edx, 0x200000
mov eax, 3
cmovb rcx, rax
cmp edx, 0x4000
cmovb rcx, rbx
cmp edx, ebp
cmovb rcx, r15
mov rax, qword [r12]
sub rax, rcx
sub rax, r9
add rax, 0xf
cmp rax, rdi
jl 0x150380903
or edx, ebx
mov byte [r9], dl
lea rbx, [r9 + 1]
cmp edx, ebp
jb 0x1503808db
mov al, dl
or al, bpl
mov byte [r9], al
shr edx, 7
mov byte [rbx], dl
lea rbx, [r9 + 2]
jmp 0x1503808d7
or byte [rbx - 1], bpl
shr edx, 7
mov byte [rbx], dl
add rbx, r15
cmp edx, ebp
jae 0x1503808cb
mov byte [rbx], dil
add rbx, r15
cmp qword [r10 + 0x18], 0x10
jb 0x1503808eb
mov r10, qword [r10]
mov r8, rdi
mov rdx, r10
mov rcx, rbx
call fcn.15040d600
add rdi, rbx
mov ebx, 2
jmp 0x150380914
mov r8, r10
mov edx, r13d
mov rcx, r12
call fcn.15035c798
mov rdi, rax
add esi, r15d
add qword [rsp + 0x30], 8
mov rax, qword [r14]
cmp esi, dword [rax + 8]
jl 0x150380838
jmp 0x150380e0e
mov rax, qword [r14]
cmp dword [rax + 8], esi
jle 0x150380e0e
mov rbp, rsi
mov r15d, 1
mov rax, qword [rax + 0x10]
mov rbx, qword [rax + rbp + 8]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x40]
mov r8d, eax
mov qword [rsp + 0x20], r12
mov r9, rdi
mov rdx, rbx
mov ecx, r13d
call fcn.1503adcb0
mov rdi, rax
add esi, r15d
lea rbp, [rbp + 8]
mov rax, qword [r14]
cmp esi, dword [rax + 8]
jl 0x150380943
jmp 0x150380e0e
test byte [rcx + 0xa], 0xf
jne 0x150380e0e
movzx ecx, byte [rcx + 8]
cmp ecx, 0xa
ja 0x150380c4a
je 0x150380c29
sub ecx, 1
je 0x150380bf5
sub ecx, 1
je 0x150380bc2
sub ecx, 1
je 0x150380b8d
sub ecx, 1
je 0x150380b8d
sub ecx, 1
je 0x150380b58
sub ecx, 1
je 0x150380b20
sub ecx, 1
je 0x150380ae8
sub ecx, 1
je 0x150380aad
cmp ecx, 1
jne 0x150380e0e
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r9, rax
mov r10, qword [r14]
mov rdi, qword [r10 + 0x10]
mov ebp, 0x80
cmp rdi, rbp
jge 0x150380a9a
lea r8d, [r13*8]
mov ecx, r8d
call fcn.150359d5c
movsxd rcx, eax
mov rdx, qword [r12]
sub rdx, r9
sub rdx, rcx
add rdx, 0xf
cmp rdx, rdi
jl 0x150380a9a
or r8d, 2
mov byte [r9], r8b
lea rbx, [r9 + 1]
lea r15d, [rbp - 0x7f]
cmp r8d, ebp
jb 0x150380a76
mov al, r8b
or al, bpl
mov byte [r9], al
shr r8d, 7
mov byte [rbx], r8b
lea rbx, [r9 + 2]
jmp 0x150380a71
or byte [rbx - 1], bpl
shr r8d, 7
mov byte [rbx], r8b
add rbx, r15
cmp r8d, ebp
jae 0x150380a63
mov byte [rbx], dil
add rbx, r15
mov rcx, r10
call fcn.1502a9580
mov rdx, rax
mov r8, rdi
mov rcx, rbx
call fcn.15040d600
add rdi, rbx
jmp 0x150380e0e
mov r8, r10
mov edx, r13d
mov rcx, r12
call fcn.15035c798
jmp 0x150380e0b
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov r10b, byte [r14]
xor edx, edx
mov ecx, r13d
call fcn.1503667bc
mov ecx, eax
mov rdx, r8
call fcn.15035bad4
test r10b, r10b
setne sil
mov ecx, esi
mov rdx, rax
call fcn.15035bad4
jmp 0x150380e0b
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov r10d, dword [r14]
mov edx, 5
mov ecx, r13d
call fcn.1503667bc
mov ecx, eax
mov rdx, r8
call fcn.15035bad4
mov ecx, r10d
mov rdx, rax
call fcn.1503667ac
jmp 0x150380e0b
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov r10, qword [r14]
mov edx, 1
mov ecx, r13d
call fcn.1503667bc
mov ecx, eax
mov rdx, r8
call fcn.15035bad4
mov rcx, r10
mov rdx, rax
call fcn.1503667b4
jmp 0x150380e0b
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov r10d, dword [r14]
xor edx, edx
mov ecx, r13d
call fcn.1503667bc
mov ecx, eax
mov rdx, r8
call fcn.15035bad4
mov rdx, rax
mov ecx, r10d
call fcn.150366768
jmp 0x150380e0b
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov r10, qword [r14]
xor edx, edx
mov ecx, r13d
call fcn.1503667bc
mov ecx, eax
mov rdx, r8
call fcn.15035bad4
mov rdx, rax
mov rcx, r10
call fcn.15036672c
jmp 0x150380e0b
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
movss xmm0, dword [r14]
mov edx, 5
mov ecx, r13d
call fcn.1503667bc
mov ecx, eax
mov rdx, r8
call fcn.15035bad4
movd ecx, xmm0
jmp 0x150380b13
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
movsd xmm0, qword [r14]
mov edx, 1
mov ecx, r13d
call fcn.1503667bc
mov ecx, eax
mov rdx, r8
call fcn.15035bad4
movq rcx, xmm0
jmp 0x150380b4b
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r9, r12
mov r8, rax
mov rdx, qword [r14]
mov ecx, r13d
call fcn.1503adbc0
jmp 0x150380e0b
sub ecx, 0xb
je 0x150380dbd
sub ecx, 1
je 0x150380d2a
sub ecx, 1
je 0x150380cfd
sub ecx, 1
je 0x150380b58
sub ecx, 1
je 0x150380ae8
sub ecx, 1
je 0x150380b20
sub ecx, 1
je 0x150380cc6
cmp ecx, 1
jne 0x150380e0e
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov r10, qword [r14]
xor edx, edx
mov ecx, r13d
call fcn.1503667bc
mov ecx, eax
mov rdx, r8
call fcn.15035bad4
mov rdx, rax
mov rcx, r10
call fcn.1503667d4
mov rcx, rax
jmp 0x150380bb8
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov r10d, dword [r14]
xor edx, edx
mov ecx, r13d
call fcn.1503667bc
mov ecx, eax
mov rdx, r8
call fcn.15035bad4
mov rdx, rax
mov ecx, r10d
call fcn.1503667c8
mov ecx, eax
jmp 0x150380ade
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r8, rax
mov r10d, dword [r14]
xor edx, edx
mov ecx, r13d
call fcn.1503667bc
mov ecx, eax
mov rdx, r8
call fcn.15035bad4
mov ecx, r10d
jmp 0x150380adb
mov rdx, rdi
mov rcx, r12
call fcn.15035b9ec
mov r9, rax
mov r10, qword [r14]
mov rdi, qword [r10 + 0x10]
mov ebp, 0x80
cmp rdi, rbp
jge 0x150380a9a
lea r8d, [r13*8]
mov ecx, r8d
call fcn.150359d5c
movsxd rcx, eax
mov rdx, qword [r12]
sub rdx, r9
sub rdx, rcx
add rdx, 0xf
cmp rdx, rdi
jl 0x150380a9a
or r8d, 2
mov byte [r9], r8b
lea rbx, [r9 + 1]
lea r15d, [rbp - 0x7f]
cmp r8d, ebp
jb 0x150380a76
mov al, r8b
or al, bpl
mov byte [r9], al
shr r8d, 7
mov byte [rbx], r8b
lea rbx, [r9 + 2]
jmp 0x150380db3
or byte [rbx - 1], bpl
shr r8d, 7
mov byte [rbx], r8b
add rbx, r15
cmp r8d, ebp
jae 0x150380da5
jmp 0x150380a76
test byte [r14 + 0xa], 0xf0
je 0x150380dec
mov r8d, r13d
call fcn.150380e3c
mov rcx, qword [r14]
mov rdx, qword [rcx]
mov r10, qword [rdx + 0x80]
mov qword [rsp + 0x20], r12
mov r9, rdi
mov r8d, r13d
mov rdx, rax
call r10
jmp 0x150380e0b
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov qword [rsp + 0x20], r12
mov r9, rdi
mov r8d, eax
mov rdx, qword [r14]
mov ecx, r13d
call fcn.1503adcb0
mov rdi, rax
mov rax, rdi
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.15040aca0
mov rbx, qword [rsp + 0xd0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret