Function at 0x14002e5c0
Capabilities:
Hash data using djb2

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x11aa0
call fcn.140189f50
sub rsp, rax
lea rbp, [rsp + 0x90]
and rbp, 0xffffffffffffffc0
mov rax, qword [0x1402376b8]
xor rax, rsp
mov qword [rbp + 0x11a00], rax
movzx eax, byte [rdx + 0x198]
mov rsi, rdx
movzx r12d, byte [rdx + 0x19a]
mov r15, rcx
imul r13, rax, 0x748
lea rax, [0x1432aad50]
add r13, rax
test byte [r13 + 1], 2
je 0x14002e928
cmp dword [0x1432ae9b0], 0
je 0x14002e71a
mov r8d, 0x10770
lea rcx, [rbp + 0x50]
call fcn.14018ad02
mov ebx, dword [rbp + r12*4 + 0x1ec]
lea rdx, [rbp + 0x10]
mov r8d, 0x10
lea rcx, [rbp + 0x134]
call qword [0x14018c478]
mov ecx, eax
shl rcx, 0x20
add rcx, rbx
mov qword [rbp + 0x107c0], rcx
test ebx, ebx
jne 0x14002e688
lea rcx, [rbp + 0x134]
call fcn.14004c170
jmp 0x14002e6e2
mov r8, qword [0x1432bf858]
mov rdx, r8
mov rax, qword [r8 + 8]
cmp byte [rax + 0x19], 0
jne 0x14002e6b8
nop dword [rax]
cmp qword [rax + 0x20], rcx
jae 0x14002e6ac
mov rax, qword [rax + 0x10]
jmp 0x14002e6b2
mov rdx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x14002e6a0
cmp byte [rdx + 0x19], 0
jne 0x14002e6ea
cmp rcx, qword [rdx + 0x20]
jb 0x14002e6ea
cmp rdx, r8
je 0x14002e6ea
lea rdx, [rbp + 0x107c0]
call fcn.14004cbd0
movups xmm0, xmmword [rax + 0x20]
psrldq xmm0, 0xc
movd eax, xmm0
test eax, eax
jne 0x14002f730
lea rdx, [rbp + 0x50]
mov rcx, r13
call fcn.14003c240
test eax, eax
je 0x14002ee9b
mov edx, dword [rbp + r12*4 + 0x1ec]
lea rcx, [rbp + 0x50]
call fcn.14004be60
inc dword [0x1432ae988]
jmp 0x14002f730
cmp dword [0x1432ae9b4], 0
je 0x14002e928
mov r8d, 0x10770
lea rcx, [rbp + 0x50]
call fcn.14018ad02
movzx r15d, byte [rbp + 0x1ea]
lea rcx, [rbp + 0xbc]
add rcx, qword [0x1432ae8e8]
xorps xmm0, xmm0
mov edx, 0x20
sub rdx, qword [0x1432ae8e8]
mov eax, dword [rbp + r15*4 + 0x1ec]
mov dword [rbp + 0xc8], eax
movups xmmword [rbp + 0x107c0], xmm0
call fcn.140044610
mov edx, 0xac0
mov ecx, 1
mov r14, rax
call qword [0x14018c4e8]
mov rsi, rax
test rax, rax
je 0x14002e90f
test r14, r14
je 0x14002e90f
xor edi, edi
lea rbx, [rbp + 0x10250]
movzx r8d, byte [rbx]
lea ecx, [rdi + rdi]
add rcx, rsi
lea rdx, [0x140218548]
call fcn.140021430
inc edi
lea rbx, [rbx + 1]
cmp edi, 0x543
jb 0x14002e7a6
mov r8d, dword [rbp + 0xb4]
lea rdx, [0x140217de0]
bswap r8d
lea rcx, [rbp + 0x107c0]
call fcn.140021430
mov eax, dword [0x1432ae988]
lea r9, [r13 + 0x288]
add eax, 0xa
lea r8, [0x140217df0]
mov dword [rsp + 0x40], eax
lea rcx, [rbp + 0x10a00]
mov qword [rsp + 0x38], rsi
lea rax, [rbp + 0x107c0]
mov qword [rsp + 0x30], r14
mov edx, 0x1000
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x13c]
mov qword [rsp + 0x20], rax
call fcn.140029200
mov rcx, rsi
call qword [0x14018c510]
mov rcx, r14
call qword [0x14018c510]
lea rcx, [rbp + 0x10]
call qword [0x14018c050]
mov eax, dword [rbp + 0x10]
mov ecx, dword [rbp + 0x14]
shl rcx, 0x20
or rcx, rax
movabs rax, 0xcccccccccccccccd
mul rcx
movabs rax, 0x295e9648864000
mov rcx, rdx
shr rcx, 3
sub rcx, rax
movabs rax, 0x431bde82d7b634db
mul rcx
shr rdx, 0x12
imul eax, edx, 0xf4240
mov dword [0x1432ae998], edx
lea rdx, [rbp + 0x10a00]
sub ecx, eax
mov dword [0x1432ae99c], ecx
lea rcx, [0x1432ae7a0]
call fcn.140044c50
test eax, eax
jne 0x14002e8db
lea r8, [0x140217e38]
xor ecx, ecx
lea rdx, [0x140217298]
call fcn.1400432a0
inc dword [0x1432ae988]
jmp 0x14002f730
movsd xmm0, qword [rbp + r15*8 + 0x1f8]
lea rcx, [rbp + 0x50]
mov edx, dword [rbp + r12*4 + 0x1ec]
inc dword [0x1432ae988]
movsd qword [0x1432ae8d8], xmm0
call fcn.14004be60
inc dword [0x1432ae988]
jmp 0x14002f730
lea rdx, [0x140217dc0]
xor ecx, ecx
call fcn.1400432a0
inc dword [0x1432ae988]
jmp 0x14002f730
xor edi, edi
cmp dword [0x1432ae790], edi
jne 0x14002e94c
mov eax, dword [rdx + 0x1d0]
test eax, eax
je 0x14002e94c
cmp eax, dword [0x1432aeb90]
jae 0x14002e94c
lea ebx, [rdi + 1]
jmp 0x14002e9df
cmp dword [0x1432aab84], edi
mov ebx, edi
jne 0x14002e9b6
cmp dword [0x140238244], ebx
je 0x14002e9b6
xor edx, edx
lea rcx, [rbp + 0x50]
mov r8d, 0x10770
call fcn.14018ad08
lea rdx, [rbp + 0x50]
mov rcx, r15
call fcn.140031080
test eax, eax
je 0x14002e9b6
mov r8d, dword [rsi + 0x1d0]
test r8d, r8d
je 0x14002e9b6
cmp r8d, dword [rbp + 0x220]
jae 0x14002e9b6
cmp dword [0x1432bf3a8], ebx
je 0x14002f730
lea rdx, [0x1401c6418]
mov ecx, 1
call fcn.1400432a0
jmp 0x14002f730
mov eax, dword [0x1402382b4]
cmp eax, 0x4f
jne 0x14002e9df
cmp dword [0x1432aab84], ebx
jne 0x14002e9df
lea rcx, [rsi + 4]
lea r8d, [rax - 0xb]
lea rdx, [0x1432ae9c4]
call fcn.14018ad26
mov ebx, eax
cmp dword [0x1432ae790], edi
jne 0x14002ea0d
test ebx, ebx
je 0x14002ea0d
cmp dword [0x1432bf3a8], edi
je 0x14002f730
lea rdx, [0x1401c6438]
mov ecx, 1
call fcn.1400432a0
jmp 0x14002f730
test byte [r13 + 1], 2
je 0x14002eea6
mov eax, dword [rsi + r12*4 + 0x19c]
mov dword [rbp + 4], eax
movsxd rax, dword [0x1402382b4]
mov qword [rbp + 0x18], r12
mov word [rbp + 8], di
cmp eax, 0x4f
ja case.0x14002ea52.3
lea r15, [0x140000000]
movzx eax, byte [r15 + rax + 0x2f778]
mov ecx, dword [r15 + rax*4 + 0x2f760]
add rcx, r15
jmp rcx
mov dword [0x140237724], 1
mov ecx, dword [rsi + 0x44]
mov eax, ecx
shr eax, 8
mov byte [rbp + 1], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 2], al
mov byte [rbp], cl
shr ecx, 0x18
mov byte [rbp + 3], cl
mov ecx, dword [rsi + 0x4c]
mov eax, ecx
shr eax, 8
mov byte [rbp + 5], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 4], cl
shr ecx, 0x18
mov byte [rbp + 6], al
mov byte [rbp + 7], cl
mov ecx, 9
call qword [0x14018c518]
mov r15, rax
test rax, rax
jne 0x14002eba1
mov r15, rdi
jmp 0x14002ebd1
mov ecx, dword [rsi + 0x88]
movzx eax, word [rsi + 0x64]
mov byte [rbp + 9], al
shr ax, 8
mov byte [rbp + 8], al
mov eax, ecx
shr eax, 8
mov byte [rbp + 2], al
mov eax, ecx
mov byte [rbp + 3], cl
shr eax, 0x10
shr ecx, 0x18
mov byte [rbp], cl
mov ecx, dword [rsi + 0x8c]
mov byte [rbp + 1], al
mov eax, ecx
shr eax, 8
mov byte [rbp + 6], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 7], cl
shr ecx, 0x18
mov byte [rbp + 4], cl
mov byte [rbp + 5], al
jmp 0x14002ea96
mov ecx, dword [rsi + 0x44]
mov eax, ecx
shr eax, 8
mov byte [rbp + 1], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 2], al
mov byte [rbp], cl
shr ecx, 0x18
mov byte [rbp + 3], cl
mov ecx, dword [rsi + 0x4c]
mov eax, ecx
shr eax, 8
mov byte [rbp + 5], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 6], al
movzx eax, word [rsi + 0x50]
mov byte [rbp + 4], cl
shr ecx, 0x18
mov byte [rbp + 9], al
shr ax, 8
mov byte [rbp + 8], al
jmp 0x14002ea93
mov ecx, dword [rsi + 0x64]
mov eax, ecx
shr eax, 8
mov byte [rbp + 1], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp], cl
shr ecx, 0x18
mov byte [rbp + 3], cl
mov dword [0x140237724], 1
mov byte [rbp + 2], al
jmp 0x14002ea96
mov ecx, dword [rsi + 0x44]
mov eax, ecx
shr eax, 8
mov byte [rbp + 2], al
mov eax, ecx
mov byte [rbp + 3], cl
shr eax, 0x10
shr ecx, 0x18
mov byte [rbp], cl
mov ecx, dword [rsi + 0x4c]
mov dword [0x140237724], 1
jmp 0x14002eae5
mov ebx, edi
lea r14, [rbp + 4]
nop word [rax + rax]
movzx r8d, byte [r14]
lea ecx, [rbx + rbx]
add rcx, r15
lea rdx, [0x140218548]
call fcn.140021430
inc ebx
lea r14, [r14 + 1]
cmp ebx, 4
jb 0x14002ebb0
cmp dword [0x140237724], edi
je 0x14002ec0e
mov edx, dword [rbp + 4]
lea rcx, [rsi + 0xe4]
call fcn.14004bda0
test eax, eax
je 0x14002ec0e
xor ecx, ecx
call qword [0x14018c788]
mov rcx, r15
call qword [0x14018c510]
mov qword [0x1432bf3a0], rdi
call fcn.1400333b0
jmp 0x14002f730
mov ecx, 9
call qword [0x14018c518]
mov r12, rax
test rax, rax
jne 0x14002ec26
mov r12, rdi
jmp 0x14002ec51
mov ebx, edi
lea r14, [rbp]
nop dword [rax]
movzx r8d, byte [r14]
lea ecx, [rbx + rbx]
add rcx, r12
lea rdx, [0x140218548]
call fcn.140021430
inc ebx
lea r14, [r14 + 1]
cmp ebx, 4
jb 0x14002ec30
mov eax, dword [0x1402382b4]
cmp eax, 0xa
jne 0x14002ec6c
mov rdx, qword [0x1432ae8e8]
lea rcx, [rsi + 0x90]
jmp 0x14002ec7a
mov rdx, qword [rsi + 0x168]
lea rcx, [rsi + 0x170]
call fcn.140044610
movsd xmm1, qword [0x1432bf518]
mov rbx, rax
mov qword [rbp + 0x10], rax
xorps xmm0, xmm0
ucomisd xmm1, xmm0
mov rax, qword [rbp + 0x18]
movsd xmm2, qword [rsi + rax*8 + 0x1a8]
movsd qword [0x1432ae8d8], xmm2
jp 0x14002ecae
je 0x14002ecdc
comisd xmm2, xmm1
jbe 0x14002ecdc
cmp dword [0x1432bf3a8], edi
jne 0x14002ecc4
cmp dword [0x1432bf464], edi
je 0x14002ed08
movq r8, xmm2
lea rdx, [0x1401c6458]
mov ecx, 3
call fcn.1400432a0
jmp 0x14002ed08
cmp dword [0x1432bf464], edi
je 0x14002ed08
movsd xmm3, qword [rsi + rax*8 + 0x1b8]
lea rdx, [0x1401c6488]
movq r9, xmm3
movq r8, xmm2
mov ecx, 4
call fcn.1400432a0
cmp word [0x140238254], di
je 0x14002eda5
mov ecx, 5
call qword [0x14018c518]
mov r14, rax
test rax, rax
je 0x14002ed58
lea rbx, [rbp + 8]
nop dword [rax]
movzx r8d, byte [rbx]
lea ecx, [rdi + rdi]
add rcx, r14
lea rdx, [0x140218548]
call fcn.140021430
inc edi
lea rbx, [rbx + 1]
cmp edi, 2
jb 0x14002ed30
mov rbx, qword [rbp + 0x10]
mov rdi, r14
mov eax, dword [0x1432ae988]
lea r9, [rsi + 0xec]
add eax, 0xa
lea r8, [r13 + 0x288]
mov dword [rsp + 0x40], eax
lea rdx, [0x1401c64f0]
mov qword [rsp + 0x38], rdi
lea rcx, [rbp + 0x10800]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rbx
call fcn.140021430
mov rcx, rdi
call qword [0x14018c510]
jmp 0x14002ede2
mov eax, dword [0x1432ae988]
lea r9, [rsi + 0xec]
add eax, 0xa
lea r8, [r13 + 0x288]
mov dword [rsp + 0x38], eax
lea rdx, [0x1401c6580]
mov qword [rsp + 0x30], r15
lea rcx, [rbp + 0x10800]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rbx
call fcn.140021430
mov rcx, rbx
call qword [0x14018c510]
mov rcx, r12
call qword [0x14018c510]
mov rcx, r15
call qword [0x14018c510]
lea rcx, [rbp + 0x107c0]
call qword [0x14018c050]
mov eax, dword [rbp + 0x107c0]
mov ecx, dword [rbp + 0x107c4]
shl rcx, 0x20
or rcx, rax
movabs rax, 0xcccccccccccccccd
mul rcx
movabs rax, 0x295e9648864000
mov rcx, rdx
shr rcx, 3
sub rcx, rax
movabs rax, 0x431bde82d7b634db
mul rcx
shr rdx, 0x12
imul eax, edx, 0xf4240
mov dword [0x1432ae998], edx
lea rdx, [rbp + 0x10800]
sub ecx, eax
mov dword [0x1432ae99c], ecx
lea rcx, [0x1432ae7a0]
call fcn.140044c50
test eax, eax
je 0x14002f34d
cmp dword [0x140237724], 0
jne 0x14002ee90
cmp dword [0x1402382ac], 0
je 0x14002ee9b
mov edx, dword [rbp + 4]
mov rcx, rsi
call fcn.14004be60
inc dword [0x1432ae988]
jmp 0x14002f730
cmp qword [rsi + 0x101f0], rdi
je 0x14002f499
mov r8d, edi
lea rdx, [rsi + 6]
nop word [rax + rax]
mov ecx, dword [rdx - 6]
mov eax, ecx
mov byte [rdx - 3], cl
shr eax, 8
mov byte [rdx - 4], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx - 5], al
shr ecx, 0x18
mov byte [rdx - 6], cl
mov ecx, dword [rdx - 2]
mov eax, ecx
mov byte [rdx + 1], cl
shr eax, 8
mov byte [rdx], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx - 1], al
shr ecx, 0x18
mov byte [rdx - 2], cl
mov ecx, dword [rdx + 2]
mov eax, ecx
mov byte [rdx + 5], cl
shr eax, 8
mov byte [rdx + 4], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 3], al
shr ecx, 0x18
mov byte [rdx + 2], cl
mov ecx, dword [rdx + 6]
mov eax, ecx
mov byte [rdx + 9], cl
shr eax, 8
mov byte [rdx + 8], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 7], al
shr ecx, 0x18
mov byte [rdx + 6], cl
mov ecx, dword [rdx + 0xa]
mov eax, ecx
mov byte [rdx + 0xd], cl
shr eax, 8
mov byte [rdx + 0xc], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 0xb], al
shr ecx, 0x18
mov byte [rdx + 0xa], cl
mov ecx, dword [rdx + 0xe]
mov eax, ecx
mov byte [rdx + 0x11], cl
shr eax, 8
mov byte [rdx + 0x10], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 0xf], al
shr ecx, 0x18
mov byte [rdx + 0xe], cl
mov ecx, dword [rdx + 0x12]
mov eax, ecx
mov byte [rdx + 0x15], cl
shr eax, 8
mov byte [rdx + 0x14], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 0x13], al
shr ecx, 0x18
mov byte [rdx + 0x12], cl
mov ecx, dword [rdx + 0x16]
mov eax, ecx
mov byte [rdx + 0x19], cl
shr eax, 8
mov byte [rdx + 0x18], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rdx + 0x17], al
mov byte [rdx + 0x16], cl
mov ecx, dword [rdx + 0x1a]
mov byte [rdx + 0x1d], cl
mov eax, ecx
shr eax, 8
mov byte [rdx + 0x1c], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 0x1b], al
shr ecx, 0x18
mov byte [rdx + 0x1a], cl
mov ecx, dword [rdx + 0x1e]
mov eax, ecx
mov byte [rdx + 0x21], cl
shr eax, 8
mov byte [rdx + 0x20], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 0x1f], al
shr ecx, 0x18
mov byte [rdx + 0x1e], cl
mov ecx, dword [rdx + 0x22]
mov eax, ecx
mov byte [rdx + 0x25], cl
shr eax, 8
mov byte [rdx + 0x24], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 0x23], al
shr ecx, 0x18
mov byte [rdx + 0x22], cl
mov ecx, dword [rdx + 0x26]
mov eax, ecx
mov byte [rdx + 0x29], cl
shr eax, 8
mov byte [rdx + 0x28], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 0x27], al
shr ecx, 0x18
mov byte [rdx + 0x26], cl
mov ecx, dword [rdx + 0x2a]
mov eax, ecx
mov byte [rdx + 0x2d], cl
shr eax, 8
mov byte [rdx + 0x2c], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 0x2b], al
shr ecx, 0x18
mov byte [rdx + 0x2a], cl
mov ecx, dword [rdx + 0x2e]
mov eax, ecx
mov byte [rdx + 0x31], cl
shr eax, 8
mov byte [rdx + 0x30], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 0x2f], al
shr ecx, 0x18
mov byte [rdx + 0x2e], cl
mov ecx, dword [rdx + 0x32]
mov eax, ecx
mov byte [rdx + 0x35], cl
shr eax, 8
mov byte [rdx + 0x34], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 0x33], al
shr ecx, 0x18
mov byte [rdx + 0x32], cl
mov ecx, dword [rdx + 0x36]
mov eax, ecx
mov byte [rdx + 0x39], cl
shr eax, 8
mov byte [rdx + 0x38], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 0x37], al
shr ecx, 0x18
mov byte [rdx + 0x36], cl
mov ecx, dword [rdx + 0x3a]
mov byte [rdx + 0x3d], cl
mov eax, ecx
lea rdx, [rdx + 0x60]
shr eax, 8
add r8d, 0x18
mov byte [rdx - 0x24], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx - 0x25], al
shr ecx, 0x18
mov byte [rdx - 0x26], cl
mov ecx, dword [rdx - 0x22]
mov eax, ecx
mov byte [rdx - 0x1f], cl
shr eax, 8
mov byte [rdx - 0x20], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx - 0x21], al
shr ecx, 0x18
mov byte [rdx - 0x22], cl
mov ecx, dword [rdx - 0x1e]
mov eax, ecx
mov byte [rdx - 0x1b], cl
shr eax, 8
mov byte [rdx - 0x1c], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx - 0x1d], al
shr ecx, 0x18
mov byte [rdx - 0x1e], cl
mov ecx, dword [rdx - 0x1a]
mov eax, ecx
mov byte [rdx - 0x17], cl
shr eax, 8
mov byte [rdx - 0x18], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx - 0x19], al
shr ecx, 0x18
mov byte [rdx - 0x1a], cl
mov ecx, dword [rdx - 0x16]
mov eax, ecx
mov byte [rdx - 0x13], cl
shr eax, 8
mov byte [rdx - 0x14], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx - 0x15], al
shr ecx, 0x18
mov byte [rdx - 0x16], cl
mov ecx, dword [rdx - 0x12]
mov eax, ecx
mov byte [rdx - 0xf], cl
shr eax, 8
mov byte [rdx - 0x10], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx - 0x11], al
shr ecx, 0x18
mov byte [rdx - 0x12], cl
mov ecx, dword [rdx - 0xe]
mov eax, ecx
mov byte [rdx - 0xb], cl
shr eax, 8
mov byte [rdx - 0xc], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx - 0xd], al
shr ecx, 0x18
mov byte [rdx - 0xe], cl
mov ecx, dword [rdx - 0xa]
mov eax, ecx
mov byte [rdx - 7], cl
shr eax, 8
mov byte [rdx - 8], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rdx - 9], al
cmp r8d, 0x30
mov byte [rdx - 0xa], cl
jb 0x14002eec0
mov ebx, edi
mov r14, rsi
nop word [rax + rax]
movzx r8d, byte [r14]
lea rax, [rbp + 0x10a00]
lea ecx, [rbx + rbx]
add rcx, rax
lea rdx, [0x140218548]
call fcn.140021430
inc ebx
lea r14, [r14 + 1]
cmp ebx, 0x50
jb 0x14002f180
cmp qword [rsi + 0x101f8], rdi
je 0x14002f2c8
call fcn.14002c1e0
mov rbx, qword [rsi + 0x101f8]
mov r14, rax
test rbx, rbx
je 0x14002f1e2
mov rcx, rbx
call fcn.14002c0f0
test eax, eax
je 0x14002f1e2
mov rcx, rbx
call fcn.14002c5a0
mov rbx, rax
jmp 0x14002f1e5
mov rbx, rdi
lea rcx, [0x1401c5c2c]
call fcn.14002c0f0
test eax, eax
je 0x14002f209
mov r8, rbx
lea rdx, [0x1401c5c2c]
mov rcx, r14
call fcn.14002c2c0
jmp 0x14002f22a
test rbx, rbx
je 0x14002f22a
mov rax, qword [rbx + 8]
cmp rax, 0xffffffffffffffff
je 0x14002f22a
sub rax, 1
mov qword [rbx + 8], rax
jne 0x14002f22a
mov rcx, rbx
call fcn.14002c610
xor edx, edx
mov rcx, r14
call fcn.14002a020
mov rbx, rax
test r14, r14
je 0x14002f258
mov rcx, qword [r14 + 8]
cmp rcx, 0xffffffffffffffff
je 0x14002f258
sub rcx, 1
mov qword [r14 + 8], rcx
jne 0x14002f258
mov rcx, r14
call fcn.14002c610
mov rdx, qword [rsi + 0x101f0]
mov rax, 0xffffffffffffffff
mov rcx, rax
nop dword [rax]
inc rcx
cmp byte [rdx + rcx], dil
jne 0x14002f270
nop dword [rax]
inc rax
cmp byte [rbx + rax], dil
jne 0x14002f280
add rax, 0x120
add rcx, rax
call qword [0x14018c518]
mov r9, qword [rsi + 0x101f0]
lea r8, [rbp + 0x10a00]
mov rcx, rax
mov qword [rsp + 0x20], rbx
lea rdx, [0x1401c64a8]
mov r14, rax
call fcn.140021430
mov rcx, rbx
call qword [0x14018c510]
jmp 0x14002f318
mov rcx, qword [rsi + 0x101f0]
mov rax, 0xffffffffffffffff
nop word [rax + rax]
cmp byte [rcx + rax + 1], dil
lea rax, [rax + 1]
jne 0x14002f2e0
lea rcx, [rax + 0x120]
call qword [0x14018c518]
mov r9, qword [rsi + 0x101f0]
lea r8, [rbp + 0x10a00]
mov rcx, rax
lea rdx, [0x1401c6548]
mov r14, rax
call fcn.140021430
xor r9d, r9d
mov qword [rsp + 0x28], rdi
mov r8, r14
mov rdx, r13
mov rcx, r15
call fcn.140044330
mov rcx, r14
mov r13, rax
call qword [0x14018c510]
test r13, r13
jne 0x14002f354
lea rdx, [0x1401c65d0]
xor ecx, ecx
call fcn.1400432a0
xor eax, eax
jmp 0x14002f735
cmp dword [r13], edi
jne 0x14002f443
lea rcx, [r13 + 0x10]
mov ebx, 0x1505
lea rax, [0x1401c5c4c]
mov r14d, 0x72
nop dword [rax]
nop dword [rax + rax]
imul rbx, rbx, 0x21
lea rax, [rax + 1]
add rbx, r14
movsx r14, byte [rax]
test r14, r14
jne 0x14002f380
mov r9, qword [rcx + 0x10]
lea r15, [0x140000000]
xor edx, edx
lea r8, [0x1401c5c4c]
mov rax, rbx
div qword [r15 + r9*8 + 0x1c5670]
mov r9, rbx
shl rdx, 4
add rdx, qword [rcx + 8]
call fcn.14002a1c0
mov r8, rdi
test rax, rax
je 0x14002f3cf
mov r8, qword [rax + 0x18]
test r8, r8
je 0x14002f446
mov eax, dword [r8]
test eax, eax
jne 0x14002f439
mov rax, qword [r8 + 0x30]
lea rdx, [r8 + 0x28]
cmp rax, rdx
je 0x14002f406
test rax, rax
je 0x14002f406
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x14002f3fb
cmp dword [rcx], 7
je 0x14002f401
mov rax, qword [rax + 8]
jmp 0x14002f3e3
mov edi, 1
xor edx, edx
mov rcx, r8
call fcn.14002a020
movzx edx, byte [rsi + 0x198]
mov r9, rax
movsd xmm2, qword [rsi + r12*8 + 0x1a8]
mov ecx, edi
mov rbx, rax
call fcn.14002e260
mov rcx, rbx
call qword [0x14018c510]
jmp 0x14002f470
cmp eax, 7
jne 0x14002f446
lea ecx, [rax - 6]
jmp 0x14002f44d
mov r8, rdi
mov ecx, edi
test r8, r8
je 0x14002f457
cmp dword [r8], 2
jne 0x14002f457
mov rdi, qword [r8 + 0x10]
movzx edx, byte [rsi + 0x198]
mov r9, rdi
movsd xmm2, qword [rsi + r12*8 + 0x1a8]
call fcn.14002e260
mov rax, qword [r13 + 8]
cmp rax, 0xffffffffffffffff
je 0x14002f730
sub rax, 1
mov qword [r13 + 8], rax
jne 0x14002f730
mov rcx, r13
call fcn.14002c610
jmp 0x14002f730
mov eax, dword [0x1402382b4]
cmp eax, 0x4f
jne 0x14002f4ad
lea edx, [rax - 0x3b]
lea r9d, [rax + 1]
jmp 0x14002f4ca
mov eax, dword [0x1402382b4]
mov edx, 0x20
lea r9d, [rdx + 0x60]
cmp eax, 0xa
jne 0x14002f4ca
lea edx, [rax + 0x23]
mov r9d, 0xc0
mov eax, dword [0x1402382b4]
cmp eax, 0x11
je 0x14002f51b
mov eax, dword [0x1402382b4]
cmp eax, 0x1f
je 0x14002f51b
lea r8, [rsi + 2]
nop dword [rax]
nop dword [rax + rax]
mov ecx, dword [r8 - 2]
mov eax, ecx
shr eax, 8
mov byte [r8 - 1], al
mov eax, ecx
mov byte [r8 - 2], cl
lea r8, [r8 + 4]
shr eax, 0x10
shr ecx, 0x18
mov byte [r8 - 4], al
mov byte [r8 - 3], cl
sub rdx, 1
jne 0x14002f4f0
mov rdx, r9
mov rcx, rsi
call fcn.140044610
mov qword [rbp + 0x18], rax
test rax, rax
jne 0x14002f544
lea rdx, [0x1401c6600]
xor ecx, ecx
call fcn.1400432a0
xor eax, eax
jmp 0x14002f735
mov r8, rax
lea rdx, [0x1401c6620]
lea rcx, [rbp + 0x10800]
call fcn.140021430
lea rcx, [r13 + 0x348]
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp byte [rcx + rax], dil
jne 0x14002f570
neg rax
mov qword [rsp + 0x28], rcx
lea r9, [r13 + 0x288]
mov edx, 0x200
sbb eax, eax
lea r8, [0x1402184b0]
and eax, 0x3a
lea rcx, [rbp + 0x10a00]
mov dword [rsp + 0x20], eax
call fcn.140029200
mov qword [rsp + 0x38], rdi
lea rdx, [r13 + 0x48]
mov dword [rsp + 0x30], edi
lea r9, [rbp + 0x10800]
mov dword [rsp + 0x28], edi
lea r8, [rbp + 0x10a00]
mov rcx, r15
mov dword [rsp + 0x20], edi
call fcn.1400439e0
mov r13, rax
test rax, rax
jne 0x14002f5f1
lea rdx, [0x1401c6658]
xor ecx, ecx
call fcn.1400432a0
xor eax, eax
jmp 0x14002f735
cmp dword [rax], edi
jne 0x14002f6c5
mov ebx, 0x1505
lea rax, [0x1401c5c74]
mov r14d, 0x72
mov r9d, ebx
mov ecx, r14d
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x14002f611
mov r10, qword [r13 + 0x20]
lea r15, [0x140000000]
xor edx, edx
lea r8, [0x1401c5c74]
mov rax, r9
lea rcx, [r13 + 0x10]
div qword [r15 + r10*8 + 0x1c5670]
shl rdx, 4
add rdx, qword [r13 + 0x18]
call fcn.14002a1c0
mov r12, rdi
test rax, rax
je 0x14002f661
mov r12, qword [rax + 0x18]
lea rcx, [r13 + 0x10]
lea rax, [0x1401c6688]
nop dword [rax]
imul rbx, rbx, 0x21
lea rax, [rax + 1]
add rbx, r14
movsx r14, byte [rax]
test r14, r14
jne 0x14002f670
mov r10, qword [rcx + 0x10]
lea r8, [0x1401c6688]
xor edx, edx
mov rax, rbx
mov r9, rbx
div qword [r15 + r10*8 + 0x1c5670]
shl rdx, 4
add rdx, qword [rcx + 8]
call fcn.14002a1c0
test rax, rax
je 0x14002f6c8
mov rax, qword [rax + 0x18]
test rax, rax
je 0x14002f6c8
cmp dword [rax], 2
jne 0x14002f6c8
mov r9, qword [rax + 0x10]
jmp 0x14002f6cb
mov r12, rdi
mov r9, rdi
test r12, r12
je 0x14002f6dc
cmp dword [r12], 5
jne 0x14002f6dc
mov edi, 1
movzx edx, byte [rsi + 0x198]
mov ecx, edi
movsd xmm2, qword [rsi + 0x1a8]
call fcn.14002e260
test eax, eax
jne 0x14002f70a
cmp dword [0x140237724], eax
je 0x14002f70a
lea rcx, [rsi + 0xe4]
call fcn.14004c7f0
mov rax, qword [r13 + 8]
cmp rax, 0xffffffffffffffff
je 0x14002f726
sub rax, 1
mov qword [r13 + 8], rax
jne 0x14002f726
mov rcx, r13
call fcn.14002c610
mov rcx, qword [rbp + 0x18]
call qword [0x14018c510]
mov eax, 1
mov rcx, qword [rbp + 0x11a00]
xor rcx, rsp
call fcn.140189f20
mov rbx, qword [rsp + 0x11af0]
add rsp, 0x11aa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret