Function at 0x1400a2560
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe0
mov rax, qword [rsp + 0x148]
xor r15d, r15d
mov r11d, dword [rsp + 0x140]
mov r12, rdx
dec r11d
movzx r10d, cl
mov qword [rsp + 0x30], r15
mov edi, r15d
mov rbx, qword [rax]
mov esi, r15d
lea rax, [0x140000000]
mov qword [rsp + 0xd8], rbx
mov ecx, dword [rax + r11*4 + 0x1c1790]
mov eax, 0xcccccccd
imul ecx, dword [r9 + 0x20]
mov dword [rsp + 0x130], r15d
mov dword [rsp + 0x138], r15d
mul ecx
mov eax, dword [r8]
shr edx, 3
mov r14d, edx
sar r14d, 0x1f
add r14d, edx
lea edx, [r15 + 1]
shr r14d, 0xb
inc r14d
shr r14d, 1
inc r14d
and r14d, 0xfffffffe
mov dword [rsp + 0x44], r14d
cmp eax, 0x10200001
je 0x1400a27a4
cmp eax, 0x20200001
je 0x1400a26f0
cmp eax, 0x30100001
je 0x1400a26d4
cmp eax, 0x30200001
jne 0x1400a26d9
mov ecx, r10d
test r10b, r10b
je 0x1400a26a2
sub ecx, edx
je 0x1400a2671
cmp ecx, edx
jne 0x1400a26be
mov rax, qword [r8 + 0x38]
lea edi, [r14*2 + 2]
mov qword [rsp + 0x30], rax
mov esi, edx
mov eax, dword [r8 + 0x30]
mov r13d, eax
mov rbp, qword [rsp + 0x30]
mov dword [rsp + 0x138], eax
shr edi, 1
mov dword [rsp + 0x20], edx
jmp 0x1400a27ce
mov rax, qword [r8 + 0x28]
lea edi, [r14*2 + 2]
mov qword [rsp + 0x30], rax
mov esi, edx
mov eax, dword [r8 + 0x20]
mov r13d, eax
mov rbp, qword [rsp + 0x30]
mov dword [rsp + 0x138], eax
shr edi, 1
mov dword [rsp + 0x20], edx
jmp 0x1400a27ce
mov rax, qword [r8 + 0x18]
lea edi, [r14*2 + 1]
mov qword [rsp + 0x30], rax
mov eax, dword [r8 + 0x10]
mov dword [rsp + 0x138], eax
mov r13d, dword [rsp + 0x138]
mov rbp, qword [rsp + 0x30]
mov dword [rsp + 0x20], esi
jmp 0x1400a27ce
test r10b, r10b
je 0x1400a26e3
mov eax, 0xfffffffa
jmp 0x1400a37e6
mov rbp, qword [r8 + 0x18]
mov r13d, dword [r8 + 0x10]
jmp 0x1400a27b4
mov ecx, r10d
test r10b, r10b
je 0x1400a2769
sub ecx, edx
je 0x1400a2738
cmp ecx, edx
jne 0x1400a2796
mov rbp, qword [r8 + 0x38]
lea eax, [r14 + r14]
mov r13d, dword [r8 + 0x30]
lea ecx, [rax + 2]
shr ecx, 1
lea edi, [rax + 1]
mov dword [rsp + 0x130], ecx
mov esi, edx
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x138], r13d
mov dword [rsp + 0x20], r15d
jmp 0x1400a27d7
mov rbp, qword [r8 + 0x28]
lea eax, [r14 + r14]
mov r13d, dword [r8 + 0x20]
lea ecx, [rax + 2]
shr ecx, 1
lea edi, [rax + 1]
mov dword [rsp + 0x130], ecx
mov esi, edx
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x138], r13d
mov dword [rsp + 0x20], r15d
jmp 0x1400a27d7
mov rbp, qword [r8 + 0x18]
lea edi, [r14*2 + 1]
mov r13d, dword [r8 + 0x10]
mov ecx, edi
mov dword [rsp + 0x130], ecx
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x138], r13d
mov dword [rsp + 0x20], r15d
jmp 0x1400a27d7
mov ecx, esi
mov dword [rsp + 0x20], r15d
mov r13d, ecx
mov ebp, ecx
jmp 0x1400a27d7
mov rax, r10
add rax, rax
mov rbp, qword [r8 + rax*8 + 0x18]
mov r13d, dword [r8 + rax*8 + 0x10]
mov dword [rsp + 0x20], r15d
lea edi, [r14*2 + 1]
mov dword [rsp + 0x138], r13d
mov qword [rsp + 0x30], rbp
mov ecx, edi
mov dword [rsp + 0x130], ecx
mov r15d, dword [r9 + 0x1c]
lea r8, [0x140000000]
mov rax, qword [r8 + r11*8 + 0x1c1b90]
and r15d, 0xfffffffe
mov edx, r14d
imul rax, rdx
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0x90], rax
mov rax, qword [r8 + r11*8 + 0x1c2390]
imul rax, rdx
mov qword [rsp + 0x88], rax
mov rax, qword [r8 + r11*8 + 0x1c2b90]
imul rax, rdx
mov edx, ecx
mov rcx, r12
mov qword [rsp + 0x80], rax
mov eax, dword [r9 + 0x18]
inc eax
imul edx, edi
and eax, 0xfffffffc
mov dword [rsp + 0x54], eax
mov rax, qword [r12]
call qword [rax + 8]
mov qword [rsp + 0x58], rax
mov r12, rax
test rax, rax
je 0x1400a2919
test rbx, rbx
jne 0x1400a2923
mov rcx, qword [rsp + 0x128]
lea eax, [r14 + 1]
lea ebx, [r14 + 1]
imul ebx, eax
mov rax, qword [rcx]
shl ebx, 2
mov edx, ebx
call qword [rax + 8]
mov rcx, qword [rsp + 0x148]
mov edx, ebx
mov rbx, qword [rsp + 0x128]
mov qword [rcx], rax
mov rcx, rbx
mov rax, qword [rsp + 0x128]
mov rax, qword [rax]
call qword [rax + 8]
mov rcx, qword [rsp + 0x150]
mov qword [rcx], rax
mov rcx, qword [rsp + 0x148]
mov rdx, qword [rcx]
test rdx, rdx
je 0x1400a28c7
test rax, rax
jne 0x1400a2923
test rax, rax
je 0x1400a28f5
mov r8, qword [rbx]
mov rdx, rax
mov rcx, rbx
call qword [r8 + 0x10]
mov rax, qword [rsp + 0x150]
mov rdi, qword [rsp + 0x148]
mov qword [rax], 0
mov rdx, qword [rdi]
jmp 0x1400a28f8
mov rdi, rcx
test rdx, rdx
je 0x1400a290d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov qword [rdi], 0
mov rax, qword [rbx]
mov rdx, r12
mov rcx, rbx
call qword [rax + 0x10]
mov eax, 0xfffffffd
jmp 0x1400a37e6
mov r11d, dword [rsp + 0x20]
sub r15d, r14d
mov r10d, dword [rsp + 0x54]
mov eax, r15d
sub r10d, r14d
mov edx, esi
mov ecx, r11d
movsxd rbx, r10d
sar eax, cl
imul eax, r13d
mov ecx, esi
sar rbx, cl
mov dword [rsp + 0x140], r10d
mov qword [rsp + 0x48], rdx
add rax, rbp
mov rbp, r12
add rbx, rax
test edi, edi
je 0x1400a29a0
mov r14d, dword [rsp + 0x130]
mov r12d, r13d
nop
mov r8, r14
mov rdx, rbx
mov rcx, rbp
call fcn.1400fd5d8
add rbp, r14
add rbx, r12
sub edi, 1
jne 0x1400a2970
mov r12, qword [rsp + 0x58]
mov r14d, dword [rsp + 0x44]
mov r10d, dword [rsp + 0x140]
mov r11d, dword [rsp + 0x20]
mov r8d, 1
lea edx, [r15 + 1]
mov r13d, r8d
mov dword [rsp + 0x50], edx
sub r13d, r14d
mov eax, r8d
mov ecx, esi
mov dword [rsp + 0x40], r13d
rol eax, cl
mov dword [rsp + 0x2c], eax
test r13d, r13d
jns 0x1400a3463
mov rbp, qword [rsp + 0x90]
mov eax, r8d
mov ecx, r11d
mov ebx, r14d
rol eax, cl
mov r8d, r14d
mov dword [rsp + 0x38], eax
mov eax, r14d
neg eax
shl ebx, 0xc
mov dword [rsp + 0x98], eax
mov ecx, ebx
mov rax, qword [rsp + 0xb8]
neg rax
sar ecx, 9
mov qword [rsp + 0xd0], rax
mov eax, ebx
sar eax, 0xc
mov dword [rsp + 0x9c], eax
imul rbp, rbp
lea eax, [rax*8]
mov dword [rsp + 0x24], ebx
sub ecx, eax
mov qword [rsp + 0x70], rbp
mov dword [rsp + 0xa0], ecx
mov ecx, esi
sar r8d, cl
shl r8d, 0xc
mov eax, r8d
sar r8d, 9
sar eax, 0xc
mov dword [rsp + 0xa4], eax
lea eax, [rax*8]
sub r8d, eax
mov eax, r14d
not eax
mov dword [rsp + 0xa8], r8d
mov dword [rsp + 0xac], eax
imul eax, r13d
mov dword [rsp + 0x60], eax
jmp 0x1400a2a85
mov r11d, dword [rsp + 0x20]
mov esi, dword [rsp + 0x98]
xor r15d, r15d
cdqe
mov edi, r10d
mov dword [rsp + 0x3c], r15d
mov dword [rsp + 0x28], edi
lea rcx, [rax*4]
mov rax, qword [rsp + 0x148]
mov r8, qword [rax]
mov rax, qword [rsp + 0x150]
add r8, rcx
mov qword [rsp + 0xb0], r8
mov r9, qword [rax]
mov eax, edx
add r9, rcx
mov ecx, r11d
shr eax, cl
imul eax, dword [rsp + 0x138]
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0x68], r9
mov r11d, eax
add r11, qword [rsp + 0x30]
mov qword [rsp + 0x78], r11
test esi, esi
jns 0x1400a2d44
mov ebp, r13d
mov edx, r14d
imul ebp, r13d
imul edx, r14d
nop dword [rax + rax]
mov eax, esi
imul eax, esi
add eax, ebp
cmp eax, edx
jle 0x1400a2b2e
inc edi
inc rcx
add esi, 1
mov dword [rsp + 0x28], edi
js 0x1400a2b10
jmp 0x1400a2d3f
mov eax, esi
mov r14, r9
neg eax
mov r15, r8
mov dword [rsp + 0x3c], eax
lea rax, [rcx*4]
sub r14, rax
sub r15, r9
nop word [rax + rax]
cmp qword [rsp + 0xd8], 0
jne 0x1400a2c48
mov eax, esi
xor ecx, ecx
imul eax, esi
add eax, ebp
movsxd r9, eax
shl r9, 0x18
cmp r9, 1
jl 0x1400a2bac
movabs r10, 0x4000000000000000
nop
mov rdx, rcx
mov r8, r9
sar rcx, 1
or rdx, r10
mov rax, rcx
or rcx, r10
cmp r9, rdx
cmovl rcx, rax
sub r9, rdx
shr r10, 2
cmp r8, rdx
cmovl r9, r8
test r10, r10
jne 0x1400a2b80
mov r10, qword [rsp + 0x70]
mov rax, rcx
sub rax, qword [rsp + 0x80]
xor r9d, r9d
imul rax, rax
sub r10, rax
cmp r10, 1
jl 0x1400a2c14
movabs r11, 0x4000000000000000
nop word [rax + rax]
mov rdx, r9
mov r8, r10
sar r9, 1
or rdx, r11
mov rax, r9
mov r9, r11
or r9, rax
cmp r10, rdx
cmovl r9, rax
sub r10, rdx
shr r11, 2
cmp r8, rdx
cmovl r10, r8
test r11, r11
jne 0x1400a2be0
mov r11, qword [rsp + 0x78]
mov rax, qword [rsp + 0x88]
sub rax, r9
shl rax, 0xc
cqo
idiv rcx
mov ecx, 0x1000
cmp rax, rcx
cmovl ecx, eax
mov eax, esi
mov r8d, ecx
imul r8d, r13d
imul eax, ecx
mov dword [r15 + r14], r8d
mov dword [r14], eax
jmp 0x1400a2c4f
mov r8d, dword [r15 + r14]
mov eax, dword [r14]
mov rcx, qword [rsp + 0x48]
add eax, ebx
cdq
shr rdi, cl
idiv dword [rsp + 0x2c]
add rdi, r11
sub r14, 4
mov r10d, eax
lea eax, [rbx + r8]
cdq
mov ecx, r10d
idiv dword [rsp + 0x38]
sar ecx, 0xc
mov r9d, eax
sar r10d, 9
mov ebx, eax
sar r9d, 0xc
sar ebx, 9
mov r8d, r9d
imul r8d, dword [rsp + 0x130]
lea eax, [rcx*8]
sub r10d, eax
add r8d, ecx
movsxd rax, r8d
movzx edx, byte [rax + r12]
movzx ecx, byte [rax + r12 + 1]
mov eax, dword [rsp + 0x130]
sub ecx, edx
add eax, r8d
imul ecx, r10d
mov r11d, ecx
sar r11d, 0x1f
add r11d, ecx
movsxd rcx, eax
sar r11d, 2
lea eax, [r9*8]
sub ebx, eax
inc r11d
sar r11d, 1
movzx r8d, byte [rcx + r12]
add r11d, edx
movzx edx, byte [rcx + r12 + 1]
sub edx, r8d
imul edx, r10d
mov eax, edx
sar eax, 0x1f
add eax, edx
sar eax, 2
inc eax
sar eax, 1
sub eax, r11d
add eax, r8d
imul ebx, eax
mov eax, ebx
sar eax, 0x1f
add eax, ebx
mov ebx, dword [rsp + 0x24]
sar eax, 2
inc eax
sar eax, 1
add al, r11b
mov r11, qword [rsp + 0x78]
mov byte [rdi], al
mov edi, dword [rsp + 0x28]
inc edi
add esi, 1
mov dword [rsp + 0x28], edi
js 0x1400a2b50
mov r15d, dword [rsp + 0x3c]
mov rbp, qword [rsp + 0x70]
mov eax, r13d
xor r8d, r8d
imul eax, r13d
movabs r11, 0x4000000000000000
movsxd rsi, eax
shl rsi, 0x18
mov qword [rsp + 0xc0], rsi
cmp rsi, 1
jl 0x1400a2dac
mov r9, r11
mov r10, rsi
nop dword [rax]
nop word [rax + rax]
mov rcx, r8
mov rdx, r10
sar r8, 1
or rcx, r9
mov rax, r8
or r8, r9
cmp r10, rcx
cmovl r8, rax
sub r10, rcx
shr r9, 2
cmp rdx, rcx
cmovl r10, rdx
test r9, r9
jne 0x1400a2d80
mov rax, r8
mov r10, rbp
sub rax, qword [rsp + 0x80]
xor r9d, r9d
imul rax, rax
sub r10, rax
cmp r10, 1
jl 0x1400a2dff
nop word [rax + rax]
mov rcx, r9
mov rdx, r10
sar r9, 1
or rcx, r11
mov rax, r9
mov r9, r11
or r9, rax
cmp r10, rcx
cmovl r9, rax
sub r10, rcx
shr r11, 2
cmp rdx, rcx
cmovl r10, rdx
test r11, r11
jne 0x1400a2dd0
mov rax, qword [rsp + 0x88]
sub rax, r9
mov ebp, dword [rsp + 0x130]
cmp r8, rax
movsxd rcx, r13d
movsxd r13, r15d
cmovl rax, r8
mov qword [rsp + 0xc8], r13
imul rax, rcx
mov rcx, qword [rsp + 0x48]
shl rax, 0xc
cqo
idiv r8
lea r11d, [rbx + rax]
mov ebx, edi
shr rbx, cl
mov r9d, r11d
add rbx, qword [rsp + 0x78]
inc edi
sar r9d, 0xc
sar r11d, 9
mov r8d, r9d
imul r8d, ebp
mov dword [rsp + 0x28], edi
add r8d, dword [rsp + 0x9c]
movsxd rax, r8d
movzx edx, byte [rax + r12]
movzx ecx, byte [rax + r12 + 1]
lea eax, [r8 + rbp]
sub ecx, edx
imul ecx, dword [rsp + 0xa0]
mov r10d, ecx
sar r10d, 0x1f
add r10d, ecx
movsxd rcx, eax
sar r10d, 2
lea eax, [r9*8]
sub r11d, eax
inc r10d
sar r10d, 1
movzx r8d, byte [rcx + r12]
add r10d, edx
movzx edx, byte [rcx + r12 + 1]
mov r12d, 1
sub edx, r8d
imul edx, dword [rsp + 0xa0]
lea r14, [r12 - 2]
mov eax, edx
sar eax, 0x1f
add eax, edx
sar eax, 2
inc eax
sar eax, 1
sub eax, r10d
add eax, r8d
imul r11d, eax
mov eax, r11d
sar eax, 0x1f
add eax, r11d
sar eax, 2
inc eax
sar eax, 1
add al, r10b
mov byte [rbx], al
cmp r13, r12
jl 0x1400a3028
mov rax, qword [rsp + 0xb0]
mov r15, r13
mov rbp, qword [rsp + 0x68]
mov r12, qword [rsp + 0x58]
sub rbp, rax
inc dword [rsp + 0x3c]
mov r13d, dword [rsp + 0x130]
lea r14, [rax + 4]
mov rsi, qword [rsp + 0x78]
nop dword [rax + rax]
mov eax, dword [rsp + 0x24]
sub eax, dword [r14 + rbp]
lea r14, [r14 + 4]
mov rcx, qword [rsp + 0x48]
cdq
idiv dword [rsp + 0x2c]
shr rdi, cl
mov r11d, eax
mov eax, dword [r14 - 4]
add eax, dword [rsp + 0x24]
mov ecx, r11d
cdq
sar ecx, 0xc
idiv dword [rsp + 0x38]
sar r11d, 9
mov r9d, eax
mov ebx, eax
lea eax, [rcx*8]
sar r9d, 0xc
sub r11d, eax
sar ebx, 9
mov r8d, r9d
imul r8d, r13d
add r8d, ecx
movsxd rax, r8d
movzx edx, byte [rax + r12]
movzx ecx, byte [rax + r12 + 1]
lea eax, [r8 + r13]
sub ecx, edx
imul ecx, r11d
mov r10d, ecx
sar r10d, 0x1f
add r10d, ecx
movsxd rcx, eax
sar r10d, 2
lea eax, [r9*8]
sub ebx, eax
inc r10d
sar r10d, 1
movzx r8d, byte [rcx + r12]
add r10d, edx
movzx edx, byte [rcx + r12 + 1]
sub edx, r8d
imul edx, r11d
mov eax, edx
sar eax, 0x1f
add eax, edx
sar eax, 2
inc eax
sar eax, 1
sub eax, r10d
add eax, r8d
imul ebx, eax
mov eax, ebx
sar eax, 0x1f
add eax, ebx
sar eax, 2
inc eax
sar eax, 1
add al, r10b
mov byte [rdi + rsi], al
mov edi, dword [rsp + 0x28]
inc edi
mov dword [rsp + 0x28], edi
sub r15, 1
jne 0x1400a2f30
mov r14, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xc0]
not r14
mov r12d, dword [rsp + 0x3c]
mov r13d, dword [rsp + 0x50]
mov ebx, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x20]
mov ebp, dword [rsp + 0x54]
sub ebp, r12d
lea eax, [rbx + rbx]
inc ebp
sub r13d, eax
shr r13d, cl
imul r13d, dword [rsp + 0x138]
add r13, qword [rsp + 0x30]
add r14, 1
jns 0x1400a317f
mov r15, qword [rsp + 0xb0]
lea rax, [r14*4]
mov r12, qword [rsp + 0x68]
sub r15, rax
sub r12, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0x58]
neg r14
nop word [rax + rax]
mov eax, dword [r15 + r12]
lea r15, [r15 - 4]
add eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x48]
cdq
idiv dword [rsp + 0x2c]
mov edi, ebp
inc ebp
mov r11d, eax
shr rdi, cl
mov eax, dword [rsp + 0x24]
mov ecx, r11d
sub eax, dword [r15 + 4]
cdq
sar ecx, 0xc
idiv dword [rsp + 0x38]
sar r11d, 9
mov r9d, eax
mov ebx, eax
lea eax, [rcx*8]
sar r9d, 0xc
sub r11d, eax
sar ebx, 9
mov r8d, r9d
imul r8d, dword [rsp + 0x130]
add r8d, ecx
movsxd rax, r8d
movzx edx, byte [rax + rsi]
movzx ecx, byte [rax + rsi + 1]
mov eax, dword [rsp + 0x130]
sub ecx, edx
add eax, r8d
imul ecx, r11d
mov r10d, ecx
sar r10d, 0x1f
add r10d, ecx
movsxd rcx, eax
sar r10d, 2
lea eax, [r9*8]
sub ebx, eax
inc r10d
sar r10d, 1
movzx r8d, byte [rcx + rsi]
add r10d, edx
movzx edx, byte [rcx + rsi + 1]
sub edx, r8d
imul edx, r11d
mov eax, edx
sar eax, 0x1f
add eax, edx
sar eax, 2
inc eax
sar eax, 1
sub eax, r10d
add eax, r8d
imul ebx, eax
mov eax, ebx
sar eax, 0x1f
add eax, ebx
sar eax, 2
inc eax
sar eax, 1
add al, r10b
mov byte [rdi + r13], al
sub r14, 1
jne 0x1400a3090
mov rsi, qword [rsp + 0xc0]
mov ebx, dword [rsp + 0x40]
xor r8d, r8d
movabs r11, 0x4000000000000000
cmp rsi, 1
jl 0x1400a31cc
mov r9, r11
nop word [rax + rax]
mov rcx, r8
mov rdx, rsi
sar r8, 1
or rcx, r9
mov rax, r8
or r8, r9
cmp rsi, rcx
cmovl r8, rax
sub rsi, rcx
shr r9, 2
cmp rdx, rcx
cmovl rsi, rdx
test r9, r9
jne 0x1400a31a0
mov r10, qword [rsp + 0x70]
mov rax, r8
sub rax, qword [rsp + 0x80]
xor r9d, r9d
imul rax, rax
sub r10, rax
cmp r10, 1
jl 0x1400a321f
nop dword [rax]
mov rcx, r9
mov rdx, r10
sar r9, 1
or rcx, r11
mov rax, r9
mov r9, r11
or r9, rax
cmp r10, rcx
cmovl r9, rax
sub r10, rcx
shr r11, 2
cmp rdx, rcx
cmovl r10, rdx
test r11, r11
jne 0x1400a31f0
mov rax, qword [rsp + 0x88]
sub rax, r9
mov r12, qword [rsp + 0x58]
cmp r8, rax
mov edi, dword [rsp + 0x24]
mov r15d, dword [rsp + 0x130]
cmovl rax, r8
mov r14, qword [rsp + 0xc8]
movsxd rcx, ebx
imul rax, rcx
mov ecx, edi
mov ebx, ebp
shl rax, 0xc
inc ebp
cqo
idiv r8
sub ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x48]
cdq
shr rbx, cl
idiv dword [rsp + 0x38]
mov r9d, eax
mov r11d, eax
sar r9d, 0xc
sar r11d, 9
mov r8d, r9d
imul r8d, r15d
add r8d, dword [rsp + 0xa4]
movsxd rcx, r8d
movzx edx, byte [rcx + r12]
movzx eax, byte [rcx + r12 + 1]
sub eax, edx
imul eax, dword [rsp + 0xa8]
mov r10d, eax
sar r10d, 0x1f
add r10d, eax
lea eax, [r8 + r15]
movsxd rcx, eax
lea eax, [r9*8]
sub r11d, eax
sar r10d, 2
inc r10d
sar r10d, 1
movzx r8d, byte [rcx + r12]
add r10d, edx
movzx edx, byte [rcx + r12 + 1]
sub edx, r8d
imul edx, dword [rsp + 0xa8]
mov eax, edx
sar eax, 0x1f
add eax, edx
sar eax, 2
inc eax
sar eax, 1
sub eax, r10d
add eax, r8d
imul r11d, eax
mov eax, r11d
sar eax, 0x1f
add eax, r11d
sar eax, 2
inc eax
sar eax, 1
add al, r10b
mov byte [rbx + r13], al
cmp r14, 1
jl 0x1400a341e
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x68]
sub rcx, rax
mov qword [rsp + 0x68], rcx
lea rsi, [rax + 4]
nop word [rax + rax]
mov eax, edi
sub eax, dword [rsi + rcx]
lea rsi, [rsi + 4]
mov rcx, qword [rsp + 0x48]
cdq
idiv dword [rsp + 0x2c]
mov r11d, eax
mov eax, edi
sub eax, dword [rsi - 4]
cdq
mov edi, ebp
idiv dword [rsp + 0x38]
shr rdi, cl
inc ebp
mov r9d, eax
mov ebx, eax
mov ecx, r11d
sar r9d, 0xc
sar ecx, 0xc
mov r8d, r9d
imul r8d, r15d
sar r11d, 9
sar ebx, 9
lea eax, [rcx*8]
sub r11d, eax
add r8d, ecx
movsxd rax, r8d
movzx edx, byte [rax + r12]
movzx ecx, byte [rax + r12 + 1]
lea eax, [r8 + r15]
sub ecx, edx
imul ecx, r11d
mov r10d, ecx
sar r10d, 0x1f
add r10d, ecx
movsxd rcx, eax
sar r10d, 2
lea eax, [r9*8]
sub ebx, eax
inc r10d
sar r10d, 1
movzx r8d, byte [rcx + r12]
add r10d, edx
movzx edx, byte [rcx + r12 + 1]
mov rcx, qword [rsp + 0x68]
sub edx, r8d
imul edx, r11d
mov eax, edx
sar eax, 0x1f
add eax, edx
sar eax, 2
inc eax
sar eax, 1
sub eax, r10d
add eax, r8d
imul ebx, eax
mov eax, ebx
sar eax, 0x1f
add eax, ebx
sar eax, 2
inc eax
sar eax, 1
add al, r10b
mov byte [rdi + r13], al
mov edi, dword [rsp + 0x24]
sub r14, 1
jne 0x1400a3340
mov r13d, dword [rsp + 0x40]
mov eax, dword [rsp + 0x60]
inc r13d
mov edx, dword [rsp + 0x50]
add eax, dword [rsp + 0xac]
inc edx
mov r14d, dword [rsp + 0x44]
mov ebx, dword [rsp + 0x24]
mov rbp, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x140]
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x50], edx
test r13d, r13d
js 0x1400a2a80
mov rax, qword [rsp + 0x150]
mov ecx, dword [rsp + 0x20]
mov r13, qword [rsp + 0x58]
shr edx, cl
mov r12, qword [rax]
mov eax, r14d
imul edx, dword [rsp + 0x138]
mov qword [rsp + 0x148], r12
mov esi, edx
add rsi, qword [rsp + 0x30]
neg eax
jns 0x1400a36b3
mov r11, qword [rsp + 0x90]
mov edi, r14d
mov ebx, dword [rsp + 0x140]
mov r15d, r14d
sub ebx, dword [rsp + 0x54]
mov r14, r12
mov r12d, dword [rsp + 0x130]
sar edi, cl
shl edi, 0xc
movsxd rdx, eax
mov eax, edi
sar eax, 0xc
mov ebp, eax
sar edi, 9
imul ebp, dword [rsp + 0x130]
imul r11, r11
lea eax, [rax*8]
shl r15d, 0xc
sub edi, eax
mov qword [rsp + 0x90], r11
lea rax, [rdx*4]
sub r14, rax
nop dword [rax]
mov eax, ebx
xor r8d, r8d
imul eax, ebx
movsxd r9, eax
shl r9, 0x18
cmp r9, 1
jl 0x1400a354f
movabs r10, 0x4000000000000000
nop
mov rcx, r8
mov rdx, r9
sar r8, 1
or rcx, r10
mov rax, r8
mov r8, r10
or r8, rax
cmp r9, rcx
cmovl r8, rax
sub r9, rcx
shr r10, 2
cmp rdx, rcx
cmovl r9, rdx
test r10, r10
jne 0x1400a3520
mov rax, r8
mov r10, r11
sub rax, qword [rsp + 0x80]
xor r9d, r9d
imul rax, rax
sub r10, rax
cmp r10, 1
jl 0x1400a35af
movabs r11, 0x4000000000000000
nop word [rax + rax]
mov rcx, r9
mov rdx, r10
sar r9, 1
or rcx, r11
mov rax, r9
mov r9, r11
or r9, rax
cmp r10, rcx
cmovl r9, rax
sub r10, rcx
shr r11, 2
cmp rdx, rcx
cmovl r10, rdx
test r11, r11
jne 0x1400a3580
mov rax, qword [rsp + 0x88]
sub rax, r9
mov r11d, dword [rsp + 0x140]
cmp r8, rax
movsxd rcx, ebx
cmovl rax, r8
imul rax, rcx
shl rax, 0xc
cqo
idiv r8
mov ecx, eax
add eax, r15d
neg ecx
cdq
idiv dword [rsp + 0x2c]
mov dword [r14], ecx
sub r14, 4
mov rcx, qword [rsp + 0x48]
mov edx, eax
shr r11, cl
mov r9d, eax
sar edx, 0xc
sar r9d, 9
lea r8d, [rdx + rbp]
movsxd rax, r8d
lea ecx, [rdx*8]
sub r9d, ecx
movzx edx, byte [rax + r13]
movzx ecx, byte [rax + r13 + 1]
lea eax, [r8 + r12]
mov r8d, dword [rsp + 0x140]
sub ecx, edx
imul ecx, r9d
inc r8d
mov dword [rsp + 0x140], r8d
mov r10d, ecx
sar r10d, 0x1f
add r10d, ecx
movsxd rcx, eax
sar r10d, 2
inc r10d
sar r10d, 1
movzx eax, byte [rcx + r13 + 1]
add r10d, edx
movzx edx, byte [rcx + r13]
sub eax, edx
imul eax, r9d
mov ecx, eax
sar ecx, 0x1f
add ecx, eax
sar ecx, 2
inc ecx
sar ecx, 1
sub ecx, r10d
add ecx, edx
imul ecx, edi
mov eax, ecx
sar eax, 0x1f
add eax, ecx
sar eax, 2
inc eax
sar eax, 1
add al, r10b
add ebx, 1
mov byte [r11 + rsi], al
mov r11, qword [rsp + 0x90]
js 0x1400a3500
mov r12, qword [rsp + 0x148]
mov r14d, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x20]
jmp 0x1400a36bb
mov r8d, dword [rsp + 0x140]
inc r8d
cmp qword [rsp + 0xb8], 1
mov dword [rsp + 0x140], r8d
jbe 0x1400a37d3
mov ebp, dword [rsp + 0x130]
mov ebx, r14d
sar r14d, cl
mov r15d, 1
shl r14d, 0xc
mov eax, r14d
shl ebx, 0xc
sar eax, 0xc
mov edi, eax
sar r14d, 9
imul edi, ebp
lea eax, [rax*8]
sub r14d, eax
nop dword [rax + rax]
mov eax, dword [r12 + r15*4]
inc r15
mov rcx, qword [rsp + 0x48]
add eax, ebx
cdq
mov r11d, r8d
idiv dword [rsp + 0x2c]
shr r11, cl
mov edx, eax
mov r9d, eax
sar edx, 0xc
sar r9d, 9
lea r8d, [rdx + rdi]
movsxd rax, r8d
lea ecx, [rdx*8]
sub r9d, ecx
movzx edx, byte [rax + r13]
movzx ecx, byte [rax + r13 + 1]
lea eax, [r8 + rbp]
mov r8d, dword [rsp + 0x140]
sub ecx, edx
imul ecx, r9d
inc r8d
mov dword [rsp + 0x140], r8d
mov r10d, ecx
sar r10d, 0x1f
add r10d, ecx
movsxd rcx, eax
sar r10d, 2
inc r10d
sar r10d, 1
movzx eax, byte [rcx + r13 + 1]
add r10d, edx
movzx edx, byte [rcx + r13]
sub eax, edx
imul eax, r9d
mov ecx, eax
sar ecx, 0x1f
add ecx, eax
sar ecx, 2
inc ecx
sar ecx, 1
sub ecx, r10d
add ecx, edx
imul ecx, r14d
mov eax, ecx
sar eax, 0x1f
add eax, ecx
sar eax, 2
inc eax
sar eax, 1
add al, r10b
mov byte [r11 + rsi], al
cmp r15, qword [rsp + 0xb8]
jl 0x1400a3710
mov rcx, qword [rsp + 0x128]
mov rdx, r13
mov rax, qword [rcx]
call qword [rax + 0x10]
xor eax, eax
mov rbx, qword [rsp + 0x120]
add rsp, 0xe0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret