Function at 0x140050420
Capabilities:
Inspect section memory permissions

Disassembly:
movzx eax, word [r8]
cmp ax, 8
je 0x14004df2b
cmp ax, 0x10
je 0x14004df26
cmp ax, 0x20
je 0x14004df21
cmp ax, 0x40
je 0x14004df1c
mov r10, qword [rcx]
test al, 0x70
je 0x14004df15
mov r9, r8
mov r8, rdx
mov edx, 4
jmp qword [r10 + 0x1a0]
jmp qword [r10 + 0x190]
jmp 0x14004f2c0
jmp 0x140050bf0
jmp 0x140050420
jmp 0x14004dfd0
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
movzx eax, word [rdx]
xor edi, edi
cmp byte [rdx + 2], 1
mov r9, rdx
mov r15, r8
mov r14, rdx
cmovne r9, rdi
mov rsi, rcx
add eax, 0xfffffffe
cmp eax, 0x7e
ja case.0x14004e02c.3
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x4e5ac]
mov ecx, dword [rdx + rax*4 + 0x4e598]
add rcx, rdx
jmp rcx
cmp byte [r8 + 2], 1
mov rax, r15
mov ebx, 9
cmovne rax, rdi
test rax, rax
je 0x14004e05d
mov ecx, dword [rax + 4]
mov eax, ecx
and eax, 0xe0000000
cmp eax, 0x40000000
jne 0x14004e05d
mov ebx, ecx
and ebx, 0xfffffff
mov rcx, qword [rsi + 0x68]
mov r8d, ebx
mov rdx, r14
call fcn.140064d60
mov rcx, qword [rsi + 0x68]
mov edx, eax
mov r8d, ebx
call fcn.14005bd10
mov rcx, qword [rsi + 0x68]
mov r9d, edi
mov r8d, ebx
mov dword [rsp + 0x20], ebx
mov edx, 1
call fcn.14004c400
mov edx, ebx
jmp 0x14004e570
test r9, r9
je 0x14004e0ba
mov r8d, dword [r9 + 4]
mov eax, r8d
and eax, 0xe0000000
cmp eax, 0x40000000
jne 0x14004e0ba
and r8d, 0xfffffff
jmp 0x14004e0cf
mov rcx, qword [rsi + 0x68]
mov r8d, 1
mov rdx, r14
call fcn.140064aa0
mov r8d, eax
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp - 0x29]
xor r9d, r9d
call fcn.1400457c0
mov rcx, qword [rsi + 0x68]
mov r8, r15
xor edx, edx
call fcn.140061680
mov rbx, qword [rsi + 0x68]
mov edi, dword [rbx + 0x24]
mov ecx, edi
cmp edi, dword [rbx + 0x44]
jge 0x14004e152
nop dword [rax + rax]
mov ecx, dword [rbx + 0x20]
lea eax, [rdi + 4]
cmp eax, ecx
jle 0x14004e134
mov eax, ecx
test ecx, ecx
jns 0x14004e113
lea eax, [rcx + 1]
sar eax, 1
mov r8, rbx
add eax, ecx
mov rcx, rbx
movsxd rdx, eax
mov dword [rbx + 0x20], eax
call fcn.14003c9a0
mov rcx, qword [rbx]
mov edi, dword [rbx + 0x24]
mov qword [rbx + 0x18], rcx
jmp 0x14004e138
mov rcx, qword [rbx + 0x18]
movsxd rax, edi
mov dword [rax + rcx], 0xd503201f
mov edi, dword [rbx + 0x24]
add edi, 4
mov dword [rbx + 0x24], edi
cmp edi, dword [rbx + 0x44]
jl 0x14004e100
mov ecx, edi
mov r8d, dword [rbx + 0x20]
lea eax, [rcx + 4]
cmp eax, r8d
jle 0x14004e187
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
lea ecx, [rax + r8]
mov r8, rbx
mov dword [rbx + 0x20], ecx
movsxd rdx, ecx
mov rcx, rbx
call fcn.14003c9a0
mov rdx, qword [rbx]
mov ecx, dword [rbx + 0x24]
mov qword [rbx + 0x18], rdx
jmp 0x14004e18b
mov rdx, qword [rbx + 0x18]
movsxd rax, ecx
mov r12d, 0x41
mov r13d, 0x45
mov dword [rbp - 0x41], edi
lea rcx, [rbp - 0x29]
mov dword [rbp - 0x39], 0xf
mov dword [rax + rdx], 0x14000000
add dword [rbx + 0x24], 4
cmp byte [rbx + 0x98], 0
mov rdx, qword [rsi + 0x68]
cmovne r12d, r13d
mov dword [rbp - 0x3d], r12d
call fcn.140059a00
mov rcx, qword [rsi + 0x68]
mov r8, r15
mov dl, 1
call fcn.140061680
mov rdx, qword [rsi + 0x68]
lea rcx, [rbp - 0x41]
call fcn.140059a00
jmp 0x14004e57c
mov rcx, qword [rsi + 0x68]
xor edx, edx
call fcn.140061680
jmp 0x14004e57c
mov rcx, qword [rsi + 0x68]
lea r9, str.Runtime::toBoolean
mov dword [rbp + 0x6f], 0x1b
xor r8d, r8d
mov dword [rbp + 0x73], 0x2a8
mov dl, 1
mov rax, qword [rbp + 0x6f]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
call fcn.1400408c0
mov rcx, qword [rsi + 0x68]
mov r8, r15
xor edx, edx
call fcn.140061570
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp + 0x7f]
mov r9, r14
mov r8d, 9
call fcn.140091520
mov rax, qword [rbp + 0x7f]
xor r8d, r8d
mov rcx, qword [rsi + 0x68]
mov qword [rbp + 0x6f], rax
shr rax, 0x20
add eax, 4
mov dword [rbp + 0x73], eax
mov eax, dword [rbp + 0x6f]
mov dword [rbp - 0x49], eax
mov rax, qword [rbp + 0x6f]
shr rax, 0x20
mov dword [rbp - 0x45], eax
mov rdx, qword [rbp - 0x49]
call fcn.140059ec0
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp - 0x41]
xor r9d, r9d
mov dword [rsp + 0x20], 0x34000
lea r8d, [r9 + 1]
call fcn.140044ed0
mov rax, qword [rbp + 0x7f]
xor r8d, r8d
mov rcx, qword [rsi + 0x68]
mov dword [rbp + 0x6f], eax
shr rax, 0x20
mov dword [rbp + 0x73], eax
mov rdx, qword [rbp + 0x6f]
call fcn.140059ec0
mov rbx, qword [rsi + 0x68]
mov edi, dword [rbx + 0x24]
mov edx, edi
cmp edi, dword [rbx + 0x44]
jge 0x14004e322
nop dword [rax + rax]
mov ecx, dword [rbx + 0x20]
lea eax, [rdi + 4]
cmp eax, ecx
jle 0x14004e304
mov eax, ecx
test ecx, ecx
jns 0x14004e2e3
lea eax, [rcx + 1]
sar eax, 1
mov r8, rbx
add eax, ecx
mov rcx, rbx
movsxd rdx, eax
mov dword [rbx + 0x20], eax
call fcn.14003c9a0
mov rcx, qword [rbx]
mov edi, dword [rbx + 0x24]
mov qword [rbx + 0x18], rcx
jmp 0x14004e308
mov rcx, qword [rbx + 0x18]
movsxd rax, edi
mov dword [rax + rcx], 0xd503201f
mov edi, dword [rbx + 0x24]
add edi, 4
mov dword [rbx + 0x24], edi
cmp edi, dword [rbx + 0x44]
jl 0x14004e2d0
mov edx, edi
mov ecx, dword [rbx + 0x20]
lea eax, [rdx + 4]
cmp eax, ecx
jle 0x14004e352
mov eax, ecx
mov r8, rbx
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [rbx + 0x20], ecx
movsxd rdx, ecx
mov rcx, rbx
call fcn.14003c9a0
mov rcx, qword [rbx]
mov edx, dword [rbx + 0x24]
mov qword [rbx + 0x18], rcx
jmp 0x14004e356
mov rcx, qword [rbx + 0x18]
movsxd rax, edx
mov r12d, 0x41
mov r13d, 0x45
mov dword [rbp - 0x29], edi
mov dword [rbp - 0x21], 0xf
mov dword [rax + rcx], 0x14000000
mov eax, r12d
add dword [rbx + 0x24], 4
lea rcx, [rbp - 0x41]
cmp byte [rbx + 0x98], 0
mov rdx, qword [rsi + 0x68]
cmovne eax, r13d
mov dword [rbp - 0x25], eax
call fcn.140059a00
mov rcx, qword [rsi + 0x68]
lea r8d, [r12 - 0x40]
xor r9d, r9d
mov dword [rsp + 0x20], 0x32000
lea rdx, [rbp - 0x11]
call fcn.140044ed0
mov rax, qword [rbp + 0x7f]
xor r8d, r8d
mov rcx, qword [rsi + 0x68]
mov dword [rbp + 0x6f], eax
shr rax, 0x20
mov dword [rbp + 0x73], eax
mov rdx, qword [rbp + 0x6f]
call fcn.140059ec0
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp + 7]
xor r9d, r9d
mov dword [rsp + 0x20], 0
xor r8d, r8d
call fcn.140044ed0
mov rcx, qword [rsi + 0x68]
lea edx, [r12 - 0x40]
xor r8d, r8d
call fcn.1400413b0
mov rbx, qword [rsi + 0x68]
mov edi, dword [rbx + 0x24]
mov edx, edi
cmp edi, dword [rbx + 0x44]
jge 0x14004e460
nop dword [rax]
mov ecx, dword [rbx + 0x20]
lea eax, [rdi + 4]
cmp eax, ecx
jle 0x14004e441
mov eax, ecx
test ecx, ecx
jns 0x14004e423
lea eax, [rcx + 1]
sar eax, 1
mov r8, rbx
add eax, ecx
mov rcx, rbx
movsxd rdx, eax
mov dword [rbx + 0x20], eax
call fcn.14003c9a0
mov rcx, qword [rbx]
mov qword [rbx + 0x18], rcx
jmp 0x14004e445
mov rcx, qword [rbx + 0x18]
movsxd rax, dword [rbx + 0x24]
mov dword [rax + rcx], 0xd503201f
mov edi, dword [rbx + 0x24]
add edi, 4
mov dword [rbx + 0x24], edi
cmp edi, dword [rbx + 0x44]
jl 0x14004e410
mov edx, edi
mov ecx, dword [rbx + 0x20]
lea eax, [rdx + 4]
cmp eax, ecx
jle 0x14004e490
mov eax, ecx
mov r8, rbx
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [rbx + 0x20], ecx
movsxd rdx, ecx
mov rcx, rbx
call fcn.14003c9a0
mov rcx, qword [rbx]
mov edx, dword [rbx + 0x24]
mov qword [rbx + 0x18], rcx
jmp 0x14004e494
mov rcx, qword [rbx + 0x18]
movsxd rax, edx
mov dword [rbp - 0x41], edi
mov dword [rbp - 0x39], 0xf
mov dword [rax + rcx], 0x14000000
lea rcx, [rbp - 0x11]
add dword [rbx + 0x24], 4
cmp byte [rbx + 0x98], 0
mov rdx, qword [rsi + 0x68]
cmovne r12d, r13d
mov dword [rbp - 0x3d], r12d
call fcn.140059a00
mov rdi, qword [rsi + 0x68]
mov rdx, r14
mov dword [rbp + 0x6f], 0x1b
mov rcx, rdi
mov dword [rbp + 0x73], 0x2a8
mov rax, qword [rbp + 0x6f]
mov qword [rbp - 0x49], rax
call fcn.140042510
mov ebx, dword [0x1400cd220]
lea rdx, [rbp + 0x6f]
mov r9, r14
mov dword [rsp + 0x20], 0
mov r8d, ebx
mov rcx, rdi
call fcn.140064640
mov r8d, dword [rbp + 0x6f]
mov r9d, ebx
mov edx, dword [rbp + 0x73]
mov rcx, rdi
call fcn.140043fd0
lea r8, [rbp - 0x49]
mov rcx, rdi
lea rdx, str.Runtime::toBoolean
call fcn.140047080
mov rcx, rdi
call fcn.14004c120
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.14005bd10
mov rdx, qword [rsi + 0x68]
lea rcx, [rbp + 7]
call fcn.140059a00
mov rdx, qword [rsi + 0x68]
lea rcx, [rbp - 0x41]
call fcn.140059a00
mov rdx, qword [rsi + 0x68]
lea rcx, [rbp - 0x29]
call fcn.140059a00
xor edx, edx
mov rcx, qword [rsi + 0x68]
mov r8, r15
call fcn.140061570
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x90
mov rsi, rcx
mov r14, r8
movzx ecx, word [rdx]
mov r15, rdx
cmp ecx, 0x10
ja 0x14004f33e
je 0x14004f2f9
cmp ecx, 2
je 0x14004f306
lea eax, [rcx - 4]
test eax, 0xfffffffb
jne 0x14004f354
mov rcx, rsi
call fcn.14004d9a0
jmp 0x14004f849
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp + 0x6f]
mov r9, r15
mov r8d, 9
call fcn.140091520
mov rcx, qword [rsi + 0x68]
xor r8d, r8d
mov rdx, qword [rax]
call fcn.14005a9c0
mov rcx, qword [rsi + 0x68]
mov r8, r14
xor edx, edx
call fcn.140061b40
jmp 0x14004f849
sub ecx, 0x20
je 0x14004f752
sub ecx, 0x60
je 0x14004f381
cmp ecx, 0x180
je 0x14004f381
test byte [r8], 0x70
mov rcx, rsi
mov rax, qword [rsi]
je 0x14004f376
mov r9, r14
mov r8, r15
mov edx, 4
call qword [rax + 0x1a0]
jmp 0x14004f849
call qword [rax + 0x190]
jmp 0x14004f849
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp + 0x6f]
mov r9, r15
mov qword [rsp + 0xd0], r12
mov r8d, 9
call fcn.140091520
mov eax, dword [rbp + 0x6f]
mov r8d, 9
add dword [rbp + 0x73], 4
mov rcx, qword [rsi + 0x68]
mov dword [rbp + 0x7f], eax
mov rax, qword [rbp + 0x6f]
shr rax, 0x20
mov dword [rbp + 0x83], eax
mov rdx, qword [rbp + 0x7f]
call fcn.140059ec0
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp - 0x29]
mov r9d, 9
mov dword [rsp + 0x20], 0x32000
lea r8d, [r9 - 8]
call fcn.140044ed0
mov r8, r14
mov rdx, r15
mov rcx, rsi
call fcn.14004d9a0
mov rbx, qword [rsi + 0x68]
mov edi, dword [rbx + 0x24]
mov ecx, edi
cmp edi, dword [rbx + 0x44]
jge 0x14004f457
mov ecx, dword [rbx + 0x20]
lea eax, [rdi + 4]
cmp eax, ecx
jle 0x14004f439
mov eax, ecx
test ecx, ecx
jns 0x14004f418
lea eax, [rcx + 1]
sar eax, 1
mov r8, rbx
add eax, ecx
mov rcx, rbx
movsxd rdx, eax
mov dword [rbx + 0x20], eax
call fcn.14003c9a0
mov rcx, qword [rbx]
mov edi, dword [rbx + 0x24]
mov qword [rbx + 0x18], rcx
jmp 0x14004f43d
mov rcx, qword [rbx + 0x18]
movsxd rax, edi
mov dword [rax + rcx], 0xd503201f
mov edi, dword [rbx + 0x24]
add edi, 4
mov dword [rbx + 0x24], edi
cmp edi, dword [rbx + 0x44]
jl 0x14004f405
mov ecx, edi
mov r8d, dword [rbx + 0x20]
lea eax, [rcx + 4]
cmp eax, r8d
jle 0x14004f48c
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
lea ecx, [rax + r8]
mov r8, rbx
mov dword [rbx + 0x20], ecx
movsxd rdx, ecx
mov rcx, rbx
call fcn.14003c9a0
mov rdx, qword [rbx]
mov ecx, dword [rbx + 0x24]
mov qword [rbx + 0x18], rdx
jmp 0x14004f490
mov rdx, qword [rbx + 0x18]
movsxd rax, ecx
mov r12d, 0x41
mov ecx, 0x45
mov dword [rbp - 0x11], edi
mov dword [rbp - 9], 0xf
mov dword [rax + rdx], 0x14000000
mov eax, r12d
add dword [rbx + 0x24], 4
cmp byte [rbx + 0x98], 0
mov rdx, qword [rsi + 0x68]
cmovne eax, ecx
lea rcx, [rbp - 0x29]
mov dword [rbp - 0xd], eax
call fcn.140059a00
mov rbx, qword [rsi + 0x68]
mov edx, dword [rbx + 0x24]
mov ecx, dword [rbx + 0x20]
lea eax, [rdx + 4]
cmp eax, ecx
jle 0x14004f507
mov eax, ecx
mov r8, rbx
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [rbx + 0x20], ecx
movsxd rdx, ecx
mov rcx, rbx
call fcn.14003c9a0
mov rcx, qword [rbx]
mov edx, dword [rbx + 0x24]
mov qword [rbx + 0x18], rcx
jmp 0x14004f50b
mov rcx, qword [rbx + 0x18]
movsxd rax, edx
xor r13d, r13d
lea rdx, [rbp + 7]
mov dword [rsp + 0x20], r13d
mov dword [rax + rcx], 0x13127d29
lea r9d, [r13 + 9]
add dword [rbx + 0x24], 4
lea r8d, [r13 + 1]
mov rcx, rbx
call fcn.140044ed0
mov rdi, qword [rsi + 0x68]
mov rdx, r15
mov dword [rbp + 0x7f], 0x1b
mov rcx, rdi
mov dword [rbp + 0x83], 0x2b0
mov rax, qword [rbp + 0x7f]
mov qword [rbp - 0x31], rax
call fcn.140042510
mov ebx, dword [0x1400cd220]
lea rdx, [rbp + 0x7f]
mov r9, r15
mov dword [rsp + 0x20], r13d
mov r8d, ebx
mov rcx, rdi
call fcn.140064640
mov r8d, dword [rbp + 0x7f]
mov r9d, ebx
mov edx, dword [rbp + 0x83]
mov rcx, rdi
call fcn.140043fd0
lea r8, [rbp - 0x31]
mov rcx, rdi
lea rdx, str.Runtime::toDouble
call fcn.140047080
mov rcx, rdi
call fcn.14004c120
mov rdx, r14
mov rcx, rdi
call fcn.1400624c0
mov rbx, qword [rsi + 0x68]
mov edi, dword [rbx + 0x24]
mov ecx, edi
cmp edi, dword [rbx + 0x44]
jge 0x14004f615
mov ecx, dword [rbx + 0x20]
lea eax, [rdi + 4]
cmp eax, ecx
jle 0x14004f5f7
mov eax, ecx
test ecx, ecx
jns 0x14004f5d6
lea eax, [rcx + 1]
sar eax, 1
mov r8, rbx
add eax, ecx
mov rcx, rbx
movsxd rdx, eax
mov dword [rbx + 0x20], eax
call fcn.14003c9a0
mov rcx, qword [rbx]
mov edi, dword [rbx + 0x24]
mov qword [rbx + 0x18], rcx
jmp 0x14004f5fb
mov rcx, qword [rbx + 0x18]
movsxd rax, edi
mov dword [rax + rcx], 0xd503201f
mov edi, dword [rbx + 0x24]
add edi, 4
mov dword [rbx + 0x24], edi
cmp edi, dword [rbx + 0x44]
jl 0x14004f5c3
mov ecx, edi
mov r8d, dword [rbx + 0x20]
lea eax, [rcx + 4]
cmp eax, r8d
jle 0x14004f64a
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
lea ecx, [rax + r8]
mov r8, rbx
mov dword [rbx + 0x20], ecx
movsxd rdx, ecx
mov rcx, rbx
call fcn.14003c9a0
mov rdx, qword [rbx]
mov ecx, dword [rbx + 0x24]
mov qword [rbx + 0x18], rdx
jmp 0x14004f64e
mov rdx, qword [rbx + 0x18]
movsxd rax, ecx
lea rcx, [rbp + 7]
mov dword [rbp - 0x29], edi
mov dword [rbp - 0x21], 0xf
mov dword [rax + rdx], 0x14000000
mov eax, 0x45
add dword [rbx + 0x24], 4
cmp byte [rbx + 0x98], r13b
mov rdx, qword [rsi + 0x68]
cmovne r12d, eax
mov dword [rbp - 0x25], r12d
call fcn.140059a00
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp - 0x39]
mov r9, r15
mov r8d, 9
call fcn.140091520
cmp byte [r14 + 2], 1
mov rax, r14
mov r12, qword [rsp + 0xd0]
cmovne rax, r13
test rax, rax
je 0x14004f6df
mov r8d, dword [rax + 4]
mov eax, r8d
and eax, 0xe0000000
cmp eax, 0x60000000
je 0x14004f6df
mov rdx, qword [rbp - 0x39]
and r8d, 0xfffffff
mov rcx, qword [rsi + 0x68]
call fcn.14005a9c0
jmp 0x14004f733
mov rax, qword [rbp - 0x39]
xor r8d, r8d
mov rbx, qword [rsi + 0x68]
mov dword [rbp + 0x7f], eax
mov rcx, rbx
shr rax, 0x20
mov dword [rbp + 0x83], eax
mov rdx, qword [rbp + 0x7f]
call fcn.14005ab10
mov r9, r14
lea rdx, [rbp - 0x31]
xor r8d, r8d
mov rcx, rbx
call fcn.140091520
xor edx, edx
mov rcx, rbx
mov rax, qword [rax]
mov dword [rbp + 0x7f], eax
shr rax, 0x20
mov dword [rbp + 0x83], eax
mov r8, qword [rbp + 0x7f]
call fcn.140061df0
mov rdx, qword [rsi + 0x68]
lea rcx, [rbp - 0x29]
call fcn.140059a00
mov rdx, qword [rsi + 0x68]
lea rcx, [rbp - 0x11]
call fcn.140059a00
jmp 0x14004f849
mov rcx, qword [rsi + 0x68]
mov r8d, 9
call fcn.140064d60
xor r13d, r13d
mov rcx, r14
cmp byte [r14 + 2], 1
cmovne rcx, r13
test rcx, rcx
je 0x14004f7a5
mov r8d, dword [rcx + 4]
mov ecx, r8d
and ecx, 0xe0000000
cmp ecx, 0x40000000
jne 0x14004f7a5
mov rcx, qword [rsi + 0x68]
lea r9d, [r13 + 9]
and r8d, 0xfffffff
mov edx, eax
call fcn.140051840
jmp 0x14004f849
mov rcx, qword [rsi + 0x68]
mov r8d, 9
mov rdx, r15
call fcn.140064ff0
mov rcx, qword [rsi + 0x68]
mov edx, eax
mov r9d, 9
xor r8d, r8d
call fcn.140051840
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp + 0x6f]
mov r9, r14
mov r8d, 9
call fcn.140091520
mov rdi, qword [rsi + 0x68]
mov rbx, qword [rax]
mov edx, dword [rdi + 0x24]
mov ecx, dword [rdi + 0x20]
lea eax, [rdx + 4]
cmp eax, ecx
jle 0x14004f81b
mov eax, ecx
mov r8, rdi
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [rdi + 0x20], ecx
movsxd rdx, ecx
mov rcx, rdi
call fcn.14003c9a0
mov rcx, qword [rdi]
mov edx, dword [rdi + 0x24]
mov qword [rdi + 0x18], rcx
jmp 0x14004f81f
mov rcx, qword [rdi + 0x18]
movsxd rax, edx
xor r8d, r8d
mov dword [rax + rcx], 0x9e660000
lea edx, [r8 + 0x1a]
add dword [rdi + 0x24], 4
mov rcx, rdi
call fcn.140069ac0
mov r8, rbx
xor edx, edx
mov rcx, rdi
call fcn.1400613c0
add rsp, 0x90
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push r14
sub rsp, 0x50
mov rsi, rcx
mov rbp, r8
movzx ecx, word [rdx]
mov r14, rdx
cmp cx, 0x20
ja 0x1400504df
je 0x1400504b5
lea eax, [rcx - 2]
mov edx, 0xfffd
test dx, ax
je 0x140050489
cmp cx, 8
jne 0x1400504f7
mov rcx, qword [rsi + 0x68]
xor r8d, r8d
mov rdx, r14
call fcn.140064d60
mov rcx, qword [rsi + 0x68]
mov edx, eax
mov r8, rbp
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop r14
pop rsi
pop rbp
jmp fcn.140062160
mov rcx, qword [rsi + 0x68]
xor r8d, r8d
xor edx, edx
call fcn.1400413b0
mov rcx, qword [rsi + 0x68]
mov r8, rbp
xor edx, edx
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop r14
pop rsi
pop rbp
jmp fcn.140062160
mov rcx, qword [rsi + 0x68]
xor r8d, r8d
call fcn.140064ff0
mov rcx, qword [rsi + 0x68]
mov edx, eax
mov r8, rbp
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop r14
pop rsi
pop rbp
jmp fcn.140062160
cmp cx, 0x40
je 0x1400505ab
mov eax, 0x200
cmp cx, ax
je 0x140050592
mov rcx, qword [rsi + 0x68]
lea rdx, [rsp + 0x88]
mov r9, r14
mov dword [rsp + 0x78], 0x1b
mov r8d, 9
mov dword [rsp + 0x7c], 0x2b8
call fcn.140091520
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rsi + 0x68]
mov r9d, dword [0x1400cd220]
mov rax, qword [rax]
mov rdx, rax
mov qword [rsp + 0x78], rcx
shr rdx, 0x20
mov r8d, eax
mov rcx, rbx
call fcn.140043fd0
lea r8, [rsp + 0x78]
mov rcx, rbx
lea rdx, str.Runtime::toInt
call fcn.140047080
mov rcx, rbx
call fcn.14004c120
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.14005bd10
mov rcx, qword [rsi + 0x68]
mov r8, rbp
xor edx, edx
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop r14
pop rsi
pop rbp
jmp fcn.140062160
mov rcx, qword [rsi + 0x68]
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop r14
pop rsi
pop rbp
jmp 0x140051a30
mov rcx, qword [rsi + 0x68]
xor r8d, r8d
mov qword [rsp + 0x70], rdi
call fcn.140064aa0
mov rcx, qword [rsi + 0x68]
lea rdx, [rsp + 0x30]
mov r8d, eax
mov dword [rsp + 0x20], 1
xor r9d, r9d
call fcn.140046490
mov rdi, qword [rsi + 0x68]
mov rdx, r14
mov dword [rsp + 0x78], 0x1b
mov rcx, rdi
mov dword [rsp + 0x7c], 0x2c0
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x88], rax
call fcn.140042510
mov ebx, dword [0x1400cd220]
lea rdx, [rsp + 0x78]
mov r9, r14
mov dword [rsp + 0x20], 0
mov r8d, ebx
mov rcx, rdi
call fcn.140064640
mov r8d, dword [rsp + 0x78]
mov r9d, ebx
mov edx, dword [rsp + 0x7c]
mov rcx, rdi
call fcn.140043fd0
lea r8, [rsp + 0x88]
mov rcx, rdi
lea rdx, str.Runtime::doubleToInt
call fcn.140047080
mov rcx, rdi
call fcn.14004c120
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.14005bd10
mov rdx, qword [rsi + 0x68]
lea rcx, [rsp + 0x30]
call fcn.140059a00
mov rcx, qword [rsi + 0x68]
mov r8, rbp
xor edx, edx
mov rdi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop r14
pop rsi
pop rbp
jmp fcn.140062160
push rbp
push rsi
push r14
push r15
mov rbp, rsp
sub rsp, 0x78
movzx r9d, word [rdx]
mov r15, r8
mov r14, rdx
mov rsi, rcx
cmp r9d, 0x10
ja 0x140050c4e
je 0x140050c28
lea eax, [r9 - 2]
test eax, 0xfffffffd
je 0x140050c3b
cmp r9d, 8
jne 0x140050f3f
mov rcx, qword [rcx + 0x68]
xor r8d, r8d
call fcn.140064d60
mov edx, eax
jmp 0x140050f33
mov rcx, qword [rcx + 0x68]
xor r8d, r8d
xor edx, edx
call fcn.1400413b0
jmp 0x140050f31
sub r9d, 0x40
je 0x140050ecc
sub r9d, 0x40
je 0x140050e99
cmp r9d, 0x180
jne 0x140050f3f
mov rcx, qword [rcx + 0x68]
lea rdx, [rbp + 0x30]
mov qword [rsp + 0xa0], rbx
mov r9, r14
mov r8d, 9
mov qword [rsp + 0x70], rdi
call fcn.140091520
mov eax, dword [rbp + 0x30]
mov r8d, 9
add dword [rbp + 0x34], 4
mov rcx, qword [rsi + 0x68]
mov dword [rbp + 0x40], eax
mov rax, qword [rbp + 0x30]
shr rax, 0x20
mov dword [rbp + 0x44], eax
mov rdx, qword [rbp + 0x40]
call fcn.140059ec0
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp - 0x20]
mov r9d, 9
mov dword [rsp + 0x20], 0x32000
lea r8d, [r9 - 8]
call fcn.140044ed0
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp - 0x48]
mov r9, r14
mov r8d, 9
call fcn.140091520
mov rax, qword [rbp - 0x48]
mov r8d, 9
mov rcx, qword [rsi + 0x68]
mov dword [rbp + 0x40], eax
shr rax, 0x20
mov dword [rbp + 0x44], eax
mov rdx, qword [rbp + 0x40]
call fcn.140059ec0
mov rcx, qword [rsi + 0x68]
mov r8, r15
mov edx, 9
call fcn.140062a60
mov rbx, qword [rsi + 0x68]
mov edi, dword [rbx + 0x24]
mov edx, edi
cmp edi, dword [rbx + 0x44]
jge 0x140050d82
nop
mov ecx, dword [rbx + 0x20]
lea eax, [rdi + 4]
cmp eax, ecx
jle 0x140050d64
mov eax, ecx
test ecx, ecx
jns 0x140050d43
lea eax, [rcx + 1]
sar eax, 1
mov r8, rbx
add eax, ecx
mov rcx, rbx
movsxd rdx, eax
mov dword [rbx + 0x20], eax
call fcn.14003c9a0
mov rcx, qword [rbx]
mov edi, dword [rbx + 0x24]
mov qword [rbx + 0x18], rcx
jmp 0x140050d68
mov rcx, qword [rbx + 0x18]
movsxd rax, edi
mov dword [rax + rcx], 0xd503201f
mov edi, dword [rbx + 0x24]
add edi, 4
mov dword [rbx + 0x24], edi
cmp edi, dword [rbx + 0x44]
jl 0x140050d30
mov edx, edi
mov ecx, dword [rbx + 0x20]
lea eax, [rdx + 4]
cmp eax, ecx
jle 0x140050db2
mov eax, ecx
mov r8, rbx
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [rbx + 0x20], ecx
movsxd rdx, ecx
mov rcx, rbx
call fcn.14003c9a0
mov rcx, qword [rbx]
mov edx, dword [rbx + 0x24]
mov qword [rbx + 0x18], rcx
jmp 0x140050db6
mov rcx, qword [rbx + 0x18]
movsxd rax, edx
mov dword [rbp - 0x38], edi
mov dword [rbp - 0x30], 0xf
mov dword [rax + rcx], 0x14000000
mov eax, 0x41
add dword [rbx + 0x24], 4
mov ecx, 0x45
cmp byte [rbx + 0x98], 0
mov rdx, qword [rsi + 0x68]
cmovne eax, ecx
lea rcx, [rbp - 0x20]
mov dword [rbp - 0x34], eax
call fcn.140059a00
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp - 0x40]
mov r9, r14
mov dword [rbp + 0x40], 0x1b
mov r8d, 9
mov dword [rbp + 0x44], 0x2c8
call fcn.140091520
mov rcx, qword [rbp + 0x40]
mov rbx, qword [rsi + 0x68]
mov r9d, dword [0x1400cd220]
mov rax, qword [rax]
mov rdx, rax
mov qword [rbp + 0x40], rcx
shr rdx, 0x20
mov r8d, eax
mov rcx, rbx
call fcn.140043fd0
lea r8, [rbp + 0x40]
mov rcx, rbx
lea rdx, str.Runtime::toUInt
call fcn.140047080
mov rcx, rbx
call fcn.14004c120
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.14005bd10
mov rcx, qword [rsi + 0x68]
mov r8, r15
xor edx, edx
call fcn.140062160
mov rdx, qword [rsi + 0x68]
lea rcx, [rbp - 0x38]
call fcn.140059a00
mov rdi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0xa0]
add rsp, 0x78
pop r15
pop r14
pop rsi
pop rbp
ret
mov rcx, qword [rcx + 0x68]
lea r9, str.Runtime::toUInt
mov dword [rbp + 0x30], 0x1b
xor r8d, r8d
mov dword [rbp + 0x34], 0x2c8
mov dl, 1
mov rax, qword [rbp + 0x30]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
call fcn.1400408c0
jmp 0x140050f31
mov rcx, qword [rcx + 0x68]
xor r8d, r8d
call fcn.140064aa0
mov rcx, qword [rsi + 0x68]
lea rdx, [rbp - 0x20]
xor r9d, r9d
mov dword [rsp + 0x20], 1
mov r8d, eax
call fcn.1400466d0
mov rcx, qword [rsi + 0x68]
lea r9, str.Runtime::doubleToUInt
mov dword [rbp + 0x30], 0x1b
xor r8d, r8d
mov dword [rbp + 0x34], 0x2d0
mov dl, 1
mov rax, qword [rbp + 0x30]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
call fcn.1400408c0
mov rdx, qword [rsi + 0x68]
lea rcx, [rbp - 0x20]
call fcn.140059a00
xor edx, edx
mov rcx, qword [rsi + 0x68]
mov r8, r15
call fcn.140062a60
add rsp, 0x78
pop r15
pop r14
pop rsi
pop rbp
ret
push rbp
push rbx
push rsi
push rdi
push r14
mov rbp, rsp
sub rsp, 0x80
mov rdi, r8
mov rsi, rdx
mov r9, rdx
mov r8d, 9
lea rdx, [rbp + 0x48]
mov rbx, rcx
call fcn.140091520
mov rax, qword [rbp + 0x48]
mov r8d, 9
mov dword [rbp + 0x30], eax
mov rcx, rbx
shr rax, 0x20
mov dword [rbp + 0x34], eax
mov rdx, qword [rbp + 0x30]
call fcn.14005a4e0
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 9]
call fcn.14005bd10
mov edx, 0x30
mov rcx, rbx
lea r8d, [rdx - 0x27]
call fcn.140066100
mov r9d, 9
mov dword [rsp + 0x20], 3
xor r8d, r8d
lea rdx, [rbp - 0x38]
mov rcx, rbx
call fcn.140044ed0
mov edx, 0xffffffe2
mov r8d, 9
mov rcx, rbx
call fcn.140066100
xor r14d, r14d
lea rdx, [rbp - 0x50]
mov rcx, rbx
mov dword [rsp + 0x20], r14d
lea r9d, [r14 + 9]
lea r8d, [r14 + 0xc]
call fcn.140044ed0
xor r8d, r8d
lea edx, [r14 + 0x1a]
mov rcx, rbx
call fcn.140069ac0
mov edx, dword [rbx + 0x24]
mov ecx, dword [rbx + 0x20]
lea eax, [rdx + 4]
cmp eax, ecx
jle 0x140051b2a
mov eax, ecx
mov r8, rbx
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [rbx + 0x20], ecx
movsxd rdx, ecx
mov rcx, rbx
call fcn.14003c9a0
mov rcx, qword [rbx]
mov edx, dword [rbx + 0x24]
mov qword [rbx + 0x18], rcx
jmp 0x140051b2e
mov rcx, qword [rbx + 0x18]
movsxd rax, edx
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 1
lea rdx, [rbp - 0x20]
mov dword [rax + rcx], 0x9e670000
mov rcx, rbx
add dword [rbx + 0x24], 4
call fcn.140046490
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.140059a00
mov r9, rsi
mov dword [rbp + 0x30], 0x1b
mov r8d, 9
mov dword [rbp + 0x34], 0x2b8
lea rdx, [rbp + 0x40]
mov rcx, rbx
call fcn.140091520
mov rcx, qword [rbp + 0x30]
mov r9d, dword [0x1400cd220]
mov qword [rbp + 0x30], rcx
mov rcx, rbx
mov rax, qword [rax]
mov rdx, rax
mov r8d, eax
shr rdx, 0x20
call fcn.140043fd0
lea r8, [rbp + 0x30]
mov rcx, rbx
lea rdx, str.Runtime::toInt
call fcn.140047080
mov rcx, rbx
call fcn.14004c120
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.14005bd10
mov rdx, rbx
lea rcx, [rbp - 0x38]
call fcn.140059a00
mov rdx, rbx
lea rcx, [rbp - 0x20]
call fcn.140059a00
cmp byte [rdi + 2], 1
mov rax, rdi
cmovne rax, r14
test rax, rax
je 0x140051c23
mov eax, dword [rax + 4]
and eax, 0xe0000000
cmp eax, 0x60000000
je 0x140051c23
mov r8, rdi
xor edx, edx
mov rcx, rbx
call fcn.140062160
add rsp, 0x80
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov r9, rdi
lea rdx, [rbp + 0x30]
mov r8d, 9
mov rcx, rbx
call fcn.140091520
mov eax, dword [rbp + 0x30]
xor edx, edx
mov dword [rbp + 0x40], eax
mov rcx, rbx
mov rax, qword [rbp + 0x30]
shr rax, 0x20
mov dword [rbp + 0x44], eax
mov r8, qword [rbp + 0x40]
call fcn.140060c50
mov eax, dword [rbp + 0x30]
mov edx, 0x32000
add dword [rbp + 0x34], 4
mov rcx, rbx
mov r8d, dword [rbx + 0x60]
mov dword [rbp + 0x40], eax
mov rax, qword [rbp + 0x30]
shr rax, 0x20
mov dword [rbp + 0x44], eax
call fcn.1400413b0
mov rcx, qword [rbx + 0x58]
mov edx, 0x10
mov eax, dword [rbx + 0x70]
mov r8, qword [rbp + 0x40]
mov qword [rbx + 0x68], 0x32000
or dword [rcx + 0x50], eax
mov rcx, rbx
call fcn.140060c50
add rsp, 0x80
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret